summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore7
-rwxr-xr-xbuild.sh554
-rw-r--r--dist/dist_gitref.dist9
-rw-r--r--dist/dist_zipdist.dist55
-rw-r--r--etc/LICENCE2
-rw-r--r--etc/README.md2116
-rw-r--r--etc/build.msgs.en9
-rw-r--r--etc/build.theme65
-rw-r--r--etc/build.trans.theme104
-rw-r--r--etc/build.usage16
-rw-r--r--etc/build.usage.short9
-rw-r--r--etc/package.spec5
-rw-r--r--etc/pkgtool.msgs.en55
-rw-r--r--etc/pkgtool.theme56
-rw-r--r--etc/pkgtool.usage19
l---------etc/pkgtool.usage.short1
-rw-r--r--[l---------]etc/rtl.msgs.C36
-rw-r--r--etc/rtl.msgs.en2
-rwxr-xr-xfiles/autoconf_2_69_host/bin/%[FNAME]-2.6917
-rw-r--r--files/libiconv/lib/pkgconfig/iconv.pc13
-rw-r--r--files/pkgconf_host/bin/%[_target]-pkg-config2
-rw-r--r--groups.d/000.host_tools.d/autoconf_2_64_host.package24
-rw-r--r--groups.d/000.host_tools.d/autoconf_2_69_host.package24
-rw-r--r--groups.d/000.host_tools.d/autoconf_host.package8
-rw-r--r--groups.d/000.host_tools.d/automake_1_11_6_host.package15
-rw-r--r--groups.d/000.host_tools.d/automake_host.package8
-rw-r--r--groups.d/000.host_tools.d/gettext_tiny_host.package10
-rw-r--r--groups.d/000.host_tools.d/install_strip_host.package9
-rw-r--r--groups.d/000.host_tools.d/libtool_host.package9
-rw-r--r--groups.d/000.host_tools.d/m4_host.package8
-rw-r--r--groups.d/000.host_tools.d/pkgconf_host.package13
-rw-r--r--groups.d/000.host_tools.d/slibtool_host.package6
-rw-r--r--groups.d/000.host_tools.d/tpax_host.package6
-rw-r--r--groups.d/000.host_tools.group12
-rw-r--r--groups.d/010.host_deps.d/binutils_build.package14
-rw-r--r--groups.d/010.host_deps.d/bison_host.package9
-rw-r--r--groups.d/010.host_deps.d/bmake_host.package10
-rw-r--r--groups.d/010.host_deps.d/bzip2_host.package10
-rw-r--r--groups.d/010.host_deps.d/ca_certificates_host.package11
-rw-r--r--groups.d/010.host_deps.d/chainport_host.package10
-rw-r--r--groups.d/010.host_deps.d/clzip_host.package9
-rw-r--r--groups.d/010.host_deps.d/cmake_host.package14
-rw-r--r--groups.d/010.host_deps.d/expat_host.package10
-rw-r--r--groups.d/010.host_deps.d/file_host.package8
-rw-r--r--groups.d/010.host_deps.d/flex_host.package9
-rw-r--r--groups.d/010.host_deps.d/gdb_host.package17
-rw-r--r--groups.d/010.host_deps.d/gdbm_host.package10
-rw-r--r--groups.d/010.host_deps.d/glib_host.package14
-rw-r--r--groups.d/010.host_deps.d/gperf_host.package7
-rw-r--r--groups.d/010.host_deps.d/infounzip_host.package6
-rw-r--r--groups.d/010.host_deps.d/infozip_host.package6
-rw-r--r--groups.d/010.host_deps.d/intltool_host.package7
-rw-r--r--groups.d/010.host_deps.d/libffi_host.package11
-rw-r--r--groups.d/010.host_deps.d/libressl_host.package8
-rw-r--r--groups.d/010.host_deps.d/libz_host.package8
-rw-r--r--groups.d/010.host_deps.d/libzip_host.package11
-rw-r--r--groups.d/010.host_deps.d/mdso_host.package10
-rw-r--r--groups.d/010.host_deps.d/mpackage_host.package11
-rw-r--r--groups.d/010.host_deps.d/musl_fts_host.package7
-rw-r--r--groups.d/010.host_deps.d/ncurses_host.package11
-rw-r--r--groups.d/010.host_deps.d/ncursestw_host.package8
-rw-r--r--groups.d/010.host_deps.d/ncursesw_host.package9
-rw-r--r--groups.d/010.host_deps.d/pcre_host.package9
-rw-r--r--groups.d/010.host_deps.d/perk_host.package9
-rw-r--r--groups.d/010.host_deps.d/python2_host.package17
-rw-r--r--groups.d/010.host_deps.d/python3_host.package17
-rw-r--r--groups.d/010.host_deps.d/re2c_host.package8
-rw-r--r--groups.d/010.host_deps.d/readline_host.package11
-rw-r--r--groups.d/010.host_deps.d/ruby_host.package12
-rw-r--r--groups.d/010.host_deps.d/sbsigntools_host.package10
-rw-r--r--groups.d/010.host_deps.d/sqlite3_host.package8
-rw-r--r--groups.d/010.host_deps.d/texinfo_host.package12
-rw-r--r--groups.d/010.host_deps.d/tzdb_host.package10
-rw-r--r--groups.d/010.host_deps.d/util_linux_host.package9
-rw-r--r--groups.d/010.host_deps.d/xz_host.package7
-rw-r--r--groups.d/010.host_deps.group18
-rw-r--r--groups.d/020.host_deps_rpm.d/libarchive_host.package9
-rw-r--r--groups.d/020.host_deps_rpm.d/popt_host.package7
-rw-r--r--groups.d/020.host_deps_rpm.d/rpm_host.package16
-rw-r--r--groups.d/020.host_deps_rpm.group18
-rw-r--r--groups.d/030.cross_toolchain.d/binutils_cross.package20
-rw-r--r--groups.d/030.cross_toolchain.d/binutils_cross_mingw32.package15
-rw-r--r--groups.d/030.cross_toolchain.d/gcc_full_cross.package12
-rw-r--r--groups.d/030.cross_toolchain.d/gcc_libstdcpp_v3_cross.package11
-rw-r--r--groups.d/030.cross_toolchain.d/gcc_runtime_cross.package11
-rw-r--r--groups.d/030.cross_toolchain.d/gcc_stage1_cross.package12
-rw-r--r--groups.d/030.cross_toolchain.d/gcc_stage1_cross_mingw32.package14
-rw-r--r--groups.d/030.cross_toolchain.d/gmp_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/ldso_cross.package13
-rw-r--r--groups.d/030.cross_toolchain.d/mdso_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/mpc_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/mpfr_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/musl_full_cross.package17
-rw-r--r--groups.d/030.cross_toolchain.d/musl_no_complex_cross.package18
-rw-r--r--groups.d/030.cross_toolchain.d/nasm_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/perk_cross.package9
-rw-r--r--groups.d/030.cross_toolchain.d/psxstub_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.d/psxtypes_cross.package10
-rw-r--r--groups.d/030.cross_toolchain.group14
-rw-r--r--groups.d/040.host_toolchain.d/binutils_host.package19
-rw-r--r--groups.d/040.host_toolchain.d/binutils_host_mingw32.package15
-rw-r--r--groups.d/040.host_toolchain.d/gcc_full_host.package12
-rw-r--r--groups.d/040.host_toolchain.d/gcc_libstdcpp_v3_host.package11
-rw-r--r--groups.d/040.host_toolchain.d/gcc_runtime_host.package11
-rw-r--r--groups.d/040.host_toolchain.d/gcc_stage1_host.package12
-rw-r--r--groups.d/040.host_toolchain.d/gcc_stage1_host_mingw32.package14
-rw-r--r--groups.d/040.host_toolchain.d/gmp_host.package10
-rw-r--r--groups.d/040.host_toolchain.d/ldso_host.package13
-rw-r--r--groups.d/040.host_toolchain.d/mpc_host.package10
-rw-r--r--groups.d/040.host_toolchain.d/mpfr_host.package10
-rw-r--r--groups.d/040.host_toolchain.d/musl_full_host.package17
-rw-r--r--groups.d/040.host_toolchain.d/musl_no_complex_host.package18
-rw-r--r--groups.d/040.host_toolchain.d/nasm_host.package10
-rw-r--r--groups.d/040.host_toolchain.d/psxstub_host.package10
-rw-r--r--groups.d/040.host_toolchain.d/psxtypes_host.package10
-rw-r--r--groups.d/040.host_toolchain.group14
-rw-r--r--groups.d/100.native_tools.d/mdso.package10
-rw-r--r--groups.d/100.native_tools.d/perk.package9
-rw-r--r--groups.d/100.native_tools.d/pkgconf.package11
-rw-r--r--groups.d/100.native_tools.d/slibtool.package6
-rw-r--r--groups.d/100.native_tools.d/tpax.package6
-rw-r--r--groups.d/100.native_tools.group12
-rw-r--r--groups.d/110.native_toolchain.d/binutils.package18
-rw-r--r--groups.d/110.native_toolchain.d/binutils_mingw32.package13
-rw-r--r--groups.d/110.native_toolchain.d/gcc_full.package10
-rw-r--r--groups.d/110.native_toolchain.d/gcc_stage1_native_mingw32.package13
-rw-r--r--groups.d/110.native_toolchain.d/gmp.package9
-rw-r--r--groups.d/110.native_toolchain.d/mpc.package9
-rw-r--r--groups.d/110.native_toolchain.d/mpfr.package9
-rw-r--r--groups.d/110.native_toolchain.d/musl_full.package16
-rw-r--r--groups.d/110.native_toolchain.group10
-rw-r--r--groups.d/120.native_runtime.d/dalist.package7
-rw-r--r--groups.d/120.native_runtime.d/ldso.package13
-rw-r--r--groups.d/120.native_runtime.d/ntapi.package7
-rw-r--r--groups.d/120.native_runtime.d/ntcon.package7
-rw-r--r--groups.d/120.native_runtime.d/ntctty.package8
-rw-r--r--groups.d/120.native_runtime.d/ntux.package8
-rw-r--r--groups.d/120.native_runtime.d/pemagine.package8
-rw-r--r--groups.d/120.native_runtime.d/psxscl.package17
-rw-r--r--groups.d/120.native_runtime.d/psxtypes.package7
-rw-r--r--groups.d/120.native_runtime.d/ptycon.package8
-rw-r--r--groups.d/120.native_runtime.d/sltdl.package8
-rw-r--r--groups.d/120.native_runtime.d/toksvc.package7
-rw-r--r--groups.d/120.native_runtime.d/u16ports.package8
-rw-r--r--groups.d/120.native_runtime.group14
-rw-r--r--groups.d/200.native_packages.group (renamed from groups/200.native_packages.group)9
-rw-r--r--groups.d/211.native_packages_cmdline.d/bas.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/bash.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/bc.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/busybox.package13
-rw-r--r--groups.d/211.native_packages_cmdline.d/cabextract.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/calcurse.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/clipboard_utils.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/coreutils.package13
-rw-r--r--groups.d/211.native_packages_cmdline.d/cpio.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/dash.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/datamash.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/dos2unix.package14
-rw-r--r--groups.d/211.native_packages_cmdline.d/ed.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/exif.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/figlet.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/findutils.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/gawk.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/gcal.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/grep.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/html_xml_utils.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/jush.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/lcab.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/lzop.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/mawk.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/mc.package12
-rw-r--r--groups.d/211.native_packages_cmdline.d/mksh.package16
-rw-r--r--groups.d/211.native_packages_cmdline.d/moe.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/moon_buggy.package11
-rw-r--r--groups.d/211.native_packages_cmdline.d/mp3splt.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/mpg123.package11
-rw-r--r--groups.d/211.native_packages_cmdline.d/nano.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/ninvaders.package15
-rw-r--r--groups.d/211.native_packages_cmdline.d/openbsd_baseutils.package13
-rw-r--r--groups.d/211.native_packages_cmdline.d/pixz.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/profanity.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/pv.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/rc.package14
-rw-r--r--groups.d/211.native_packages_cmdline.d/sash.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/sbase.package11
-rw-r--r--groups.d/211.native_packages_cmdline.d/screen.package11
-rw-r--r--groups.d/211.native_packages_cmdline.d/sed.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/sharutils.package12
-rw-r--r--groups.d/211.native_packages_cmdline.d/sloccount.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/tar.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/tcsh.package8
-rw-r--r--groups.d/211.native_packages_cmdline.d/terminally_tetris.package14
-rw-r--r--groups.d/211.native_packages_cmdline.d/the_silver_searcher.package9
-rw-r--r--groups.d/211.native_packages_cmdline.d/toilet.package6
-rw-r--r--groups.d/211.native_packages_cmdline.d/tree.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/ubase.package10
-rw-r--r--groups.d/211.native_packages_cmdline.d/which.package7
-rw-r--r--groups.d/211.native_packages_cmdline.d/zsh.package11
-rw-r--r--groups.d/221.native_packages_dev.d/algol68g.package9
-rw-r--r--groups.d/221.native_packages_dev.d/autoconf.package12
-rw-r--r--groups.d/221.native_packages_dev.d/automake.package7
-rw-r--r--groups.d/221.native_packages_dev.d/bison.package11
-rw-r--r--groups.d/221.native_packages_dev.d/cdecl.package10
-rw-r--r--groups.d/221.native_packages_dev.d/chicken.package14
-rw-r--r--groups.d/221.native_packages_dev.d/cparser.package10
-rw-r--r--groups.d/221.native_packages_dev.d/cssc.package9
-rw-r--r--groups.d/221.native_packages_dev.d/diffutils.package8
-rw-r--r--groups.d/221.native_packages_dev.d/flex.package9
-rw-r--r--groups.d/221.native_packages_dev.d/gdb.package17
-rw-r--r--groups.d/221.native_packages_dev.d/gengetopt.package7
-rw-r--r--groups.d/221.native_packages_dev.d/gnucobol.package10
-rw-r--r--groups.d/221.native_packages_dev.d/indent.package8
-rw-r--r--groups.d/221.native_packages_dev.d/lua.package16
-rw-r--r--groups.d/221.native_packages_dev.d/lunix.package10
-rw-r--r--groups.d/221.native_packages_dev.d/m4.package9
-rw-r--r--groups.d/221.native_packages_dev.d/make.package10
-rw-r--r--groups.d/221.native_packages_dev.d/mandoc.package12
-rw-r--r--groups.d/221.native_packages_dev.d/nasm.package8
-rw-r--r--groups.d/221.native_packages_dev.d/p2c.package9
-rw-r--r--groups.d/221.native_packages_dev.d/patch.package10
-rw-r--r--groups.d/221.native_packages_dev.d/perl.package17
-rw-r--r--groups.d/221.native_packages_dev.d/posix_cc.package9
-rw-r--r--groups.d/221.native_packages_dev.d/python2.package16
-rw-r--r--groups.d/221.native_packages_dev.d/python3.package17
-rw-r--r--groups.d/221.native_packages_dev.d/ruby.package10
-rw-r--r--groups.d/221.native_packages_dev.d/sbsigntools.package8
-rw-r--r--groups.d/221.native_packages_dev.d/tk.package11
-rw-r--r--groups.d/231.native_packages_etc.d/apr.package18
-rw-r--r--groups.d/231.native_packages_etc.d/bdwgc.package7
-rw-r--r--groups.d/231.native_packages_etc.d/bmake.package10
-rw-r--r--groups.d/231.native_packages_etc.d/bochs.package15
-rw-r--r--groups.d/231.native_packages_etc.d/bzip2.package17
-rw-r--r--groups.d/231.native_packages_etc.d/cherokee.package9
-rw-r--r--groups.d/231.native_packages_etc.d/clzip.package10
-rw-r--r--groups.d/231.native_packages_etc.d/cmake.package34
-rw-r--r--groups.d/231.native_packages_etc.d/cron.package7
-rw-r--r--groups.d/231.native_packages_etc.d/dante.package10
-rw-r--r--groups.d/231.native_packages_etc.d/doomgeneric.package12
-rw-r--r--groups.d/231.native_packages_etc.d/dosbox.package10
-rw-r--r--groups.d/231.native_packages_etc.d/emacs.package11
-rw-r--r--groups.d/231.native_packages_etc.d/enscript.package7
-rw-r--r--groups.d/231.native_packages_etc.d/expat.package8
-rw-r--r--groups.d/231.native_packages_etc.d/ffmpeg.package10
-rw-r--r--groups.d/231.native_packages_etc.d/file.package9
-rw-r--r--groups.d/231.native_packages_etc.d/gdbm.package9
-rw-r--r--groups.d/231.native_packages_etc.d/geoip.package7
-rw-r--r--groups.d/231.native_packages_etc.d/gettext_tiny.package11
-rw-r--r--groups.d/231.native_packages_etc.d/ghostpdl.package12
-rw-r--r--groups.d/231.native_packages_etc.d/giflib.package9
-rw-r--r--groups.d/231.native_packages_etc.d/gnuchess.package8
-rw-r--r--groups.d/231.native_packages_etc.d/graphicsmagick.package14
-rw-r--r--groups.d/231.native_packages_etc.d/gzip.package7
-rw-r--r--groups.d/231.native_packages_etc.d/hastyhex.package9
-rw-r--r--groups.d/231.native_packages_etc.d/hexcurse.package8
-rw-r--r--groups.d/231.native_packages_etc.d/hexer.package12
-rw-r--r--groups.d/231.native_packages_etc.d/htop.package9
-rw-r--r--groups.d/231.native_packages_etc.d/icoutils.package11
-rw-r--r--groups.d/231.native_packages_etc.d/imagemagick.package12
-rw-r--r--groups.d/231.native_packages_etc.d/infounzip.package7
-rw-r--r--groups.d/231.native_packages_etc.d/infozip.package7
-rw-r--r--groups.d/231.native_packages_etc.d/john.package25
-rw-r--r--groups.d/231.native_packages_etc.d/lbreakout2.package12
-rw-r--r--groups.d/231.native_packages_etc.d/lcms.package8
-rw-r--r--groups.d/231.native_packages_etc.d/less.package8
-rw-r--r--groups.d/231.native_packages_etc.d/libmetalink.package8
-rw-r--r--groups.d/231.native_packages_etc.d/lolcode.package6
-rw-r--r--groups.d/231.native_packages_etc.d/ltris.package13
-rw-r--r--groups.d/231.native_packages_etc.d/minizip.package20
-rw-r--r--groups.d/231.native_packages_etc.d/mintty.package9
-rw-r--r--groups.d/231.native_packages_etc.d/mlogin.package7
-rw-r--r--groups.d/231.native_packages_etc.d/musl_compat.package7
-rw-r--r--groups.d/231.native_packages_etc.d/musl_fts.package7
-rw-r--r--groups.d/231.native_packages_etc.d/ncdu.package8
-rw-r--r--groups.d/231.native_packages_etc.d/ncurses.package11
-rw-r--r--groups.d/231.native_packages_etc.d/ncursestw.package8
-rw-r--r--groups.d/231.native_packages_etc.d/ncursesw.package9
-rw-r--r--groups.d/231.native_packages_etc.d/npth.package7
-rw-r--r--groups.d/231.native_packages_etc.d/openjazz.package9
-rw-r--r--groups.d/231.native_packages_etc.d/openjpeg.package21
-rw-r--r--groups.d/231.native_packages_etc.d/p7zip.package8
-rw-r--r--groups.d/231.native_packages_etc.d/pcre.package9
-rw-r--r--groups.d/231.native_packages_etc.d/pcre2.package9
-rw-r--r--groups.d/231.native_packages_etc.d/php.package17
-rw-r--r--groups.d/231.native_packages_etc.d/popt.package8
-rw-r--r--groups.d/231.native_packages_etc.d/potrace.package8
-rw-r--r--groups.d/231.native_packages_etc.d/procps_ng.package15
-rw-r--r--groups.d/231.native_packages_etc.d/qemu.package11
-rw-r--r--groups.d/231.native_packages_etc.d/qpdf.package10
-rw-r--r--groups.d/231.native_packages_etc.d/qrencode.package9
-rw-r--r--groups.d/231.native_packages_etc.d/rpm.package10
-rw-r--r--groups.d/231.native_packages_etc.d/rw.package8
-rw-r--r--groups.d/231.native_packages_etc.d/sdlquake.package9
-rw-r--r--groups.d/231.native_packages_etc.d/shared_mime_info.package10
-rw-r--r--groups.d/231.native_packages_etc.d/slang.package10
-rw-r--r--groups.d/231.native_packages_etc.d/sqlite3.package9
-rw-r--r--groups.d/231.native_packages_etc.d/tcl.package11
-rw-r--r--groups.d/231.native_packages_etc.d/tdnf.package11
-rw-r--r--groups.d/231.native_packages_etc.d/texinfo.package7
-rw-r--r--groups.d/231.native_packages_etc.d/tiff.package9
-rw-r--r--groups.d/231.native_packages_etc.d/tmux.package9
-rw-r--r--groups.d/231.native_packages_etc.d/tzdb.package10
-rw-r--r--groups.d/231.native_packages_etc.d/utf8proc.package5
-rw-r--r--groups.d/231.native_packages_etc.d/util_linux.package15
-rw-r--r--groups.d/231.native_packages_etc.d/vim.package21
-rw-r--r--groups.d/231.native_packages_etc.d/vorbis_tools.package9
-rw-r--r--groups.d/231.native_packages_etc.d/w32api.package7
-rw-r--r--groups.d/231.native_packages_etc.d/w32lib.package6
-rw-r--r--groups.d/231.native_packages_etc.d/xorriso.package9
-rw-r--r--groups.d/231.native_packages_etc.d/xpdf.package12
-rw-r--r--groups.d/231.native_packages_etc.d/xz.package8
-rw-r--r--groups.d/231.native_packages_etc.d/zstd.package10
-rw-r--r--groups.d/241.native_packages_inet.d/apk_tools.package12
-rw-r--r--groups.d/241.native_packages_inet.d/bind.package10
-rw-r--r--groups.d/241.native_packages_inet.d/ca_certificates.package11
-rw-r--r--groups.d/241.native_packages_inet.d/curl.package10
-rw-r--r--groups.d/241.native_packages_inet.d/cvs.package12
-rw-r--r--groups.d/241.native_packages_inet.d/dropbear.package9
-rw-r--r--groups.d/241.native_packages_inet.d/elinks.package12
-rw-r--r--groups.d/241.native_packages_inet.d/fetchmail.package9
-rw-r--r--groups.d/241.native_packages_inet.d/git.package18
-rw-r--r--groups.d/241.native_packages_inet.d/gnupg.package11
-rw-r--r--groups.d/241.native_packages_inet.d/gnutls.package13
-rw-r--r--groups.d/241.native_packages_inet.d/gpgme.package12
-rw-r--r--groups.d/241.native_packages_inet.d/httpd.package11
-rw-r--r--groups.d/241.native_packages_inet.d/icecast.package11
-rw-r--r--groups.d/241.native_packages_inet.d/inetutils.package9
-rw-r--r--groups.d/241.native_packages_inet.d/irssi.package9
-rw-r--r--groups.d/241.native_packages_inet.d/isync.package9
-rw-r--r--groups.d/241.native_packages_inet.d/ldns.package10
-rw-r--r--groups.d/241.native_packages_inet.d/lighttpd.package11
-rw-r--r--groups.d/241.native_packages_inet.d/links.package9
-rw-r--r--groups.d/241.native_packages_inet.d/lynx.package12
-rw-r--r--groups.d/241.native_packages_inet.d/mailutils.package11
-rw-r--r--groups.d/241.native_packages_inet.d/microsocks.package6
-rw-r--r--groups.d/241.native_packages_inet.d/mutt.package13
-rw-r--r--groups.d/241.native_packages_inet.d/nginx.package12
-rw-r--r--groups.d/241.native_packages_inet.d/ngircd.package9
-rw-r--r--groups.d/241.native_packages_inet.d/nullmailer.package13
-rw-r--r--groups.d/241.native_packages_inet.d/openlitespeed.package14
-rw-r--r--groups.d/241.native_packages_inet.d/opensmtpd.package10
-rw-r--r--groups.d/241.native_packages_inet.d/openssh.package14
-rw-r--r--groups.d/241.native_packages_inet.d/proxytunnel.package12
-rw-r--r--groups.d/241.native_packages_inet.d/rsync.package9
-rw-r--r--groups.d/241.native_packages_inet.d/socat.package7
-rw-r--r--groups.d/241.native_packages_inet.d/thttpd.package11
-rw-r--r--groups.d/241.native_packages_inet.d/w3m.package14
-rw-r--r--groups.d/241.native_packages_inet.d/weechat.package11
-rw-r--r--groups.d/241.native_packages_inet.d/wget.package17
-rw-r--r--groups.d/241.native_packages_inet.d/whois.package12
-rw-r--r--groups.d/251.native_packages_lib.d/aspell.package9
-rw-r--r--groups.d/251.native_packages_lib.d/bearssl.package9
-rw-r--r--groups.d/251.native_packages_lib.d/enchant.package9
-rw-r--r--groups.d/251.native_packages_lib.d/fribidi.package7
-rw-r--r--groups.d/251.native_packages_lib.d/glib.package9
-rw-r--r--groups.d/251.native_packages_lib.d/hunspell.package9
-rw-r--r--groups.d/251.native_packages_lib.d/ivykis.package8
-rw-r--r--groups.d/251.native_packages_lib.d/jansson.package7
-rw-r--r--groups.d/251.native_packages_lib.d/kvazaar.package7
-rw-r--r--groups.d/251.native_packages_lib.d/lame.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libao.package11
-rw-r--r--groups.d/251.native_packages_lib.d/libarchive.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libass.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libassuan.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libatomic_ops.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libdmtx.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libedit.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libeditline.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libelf.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libestr.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libevent.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libexif.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libfastjson.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libfetch.package12
-rw-r--r--groups.d/251.native_packages_lib.d/libffi.package13
-rw-r--r--groups.d/251.native_packages_lib.d/libfirm.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libflac.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libgcrypt.package13
-rw-r--r--groups.d/251.native_packages_lib.d/libglob.package6
-rw-r--r--groups.d/251.native_packages_lib.d/libgpg_error.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libgsasl.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libiconv.package11
-rw-r--r--groups.d/251.native_packages_lib.d/libidn.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libidn2.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libite.package6
-rw-r--r--groups.d/251.native_packages_lib.d/libjpeg_turbo.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libksba.package13
-rw-r--r--groups.d/251.native_packages_lib.d/libmad.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libmd.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libmp3splt.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libmspack.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libogg.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libpcap.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libpng.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libpsl.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libredwg.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libressl.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libsasl2.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libshine.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libsndfile.package11
-rw-r--r--groups.d/251.native_packages_lib.d/libsolv.package29
-rw-r--r--groups.d/251.native_packages_lib.d/libssh.package15
-rw-r--r--groups.d/251.native_packages_lib.d/libstrophe.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libtasn1.package12
-rw-r--r--groups.d/251.native_packages_lib.d/libtelnet.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libtheora.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libtirpc.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libudns.package5
-rw-r--r--groups.d/251.native_packages_lib.d/libunistring.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libuv.package7
-rw-r--r--groups.d/251.native_packages_lib.d/libvorbis.package8
-rw-r--r--groups.d/251.native_packages_lib.d/libwebp.package9
-rw-r--r--groups.d/251.native_packages_lib.d/libxml2.package12
-rw-r--r--groups.d/251.native_packages_lib.d/libxslt.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libz.package10
-rw-r--r--groups.d/251.native_packages_lib.d/libzip.package23
-rw-r--r--groups.d/251.native_packages_lib.d/lzlib.package9
-rw-r--r--groups.d/251.native_packages_lib.d/lzo.package7
-rw-r--r--groups.d/251.native_packages_lib.d/nettle.package11
-rw-r--r--groups.d/251.native_packages_lib.d/onig.package7
-rw-r--r--groups.d/251.native_packages_lib.d/opus.package8
-rw-r--r--groups.d/251.native_packages_lib.d/readline.package18
-rw-r--r--groups.d/251.native_packages_lib.d/sdl1.package35
-rw-r--r--groups.d/251.native_packages_lib.d/sdl2.package30
-rw-r--r--groups.d/251.native_packages_lib.d/twolame.package8
-rw-r--r--groups.d/251.native_packages_lib.d/wolfssl.package12
-rw-r--r--groups.d/261.native_packages_x11.d/Xrender.package8
-rw-r--r--groups.d/261.native_packages_x11.d/cairo.package9
-rw-r--r--groups.d/261.native_packages_x11.d/fontconfig.package10
-rw-r--r--groups.d/261.native_packages_x11.d/freetype.package9
-rw-r--r--groups.d/261.native_packages_x11.d/freetype_pre.package10
-rw-r--r--groups.d/261.native_packages_x11.d/gxemul.package12
-rw-r--r--groups.d/261.native_packages_x11.d/harfbuzz.package9
-rw-r--r--groups.d/261.native_packages_x11.d/imlib2.package12
-rw-r--r--groups.d/261.native_packages_x11.d/libICE.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libSM.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libX11.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXau.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libXaw.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXcursor.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libXdamage.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libXdmcp.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXext.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXfixes.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libXfont2.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXft.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXi.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libXmu.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXpm.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libXt.package15
-rw-r--r--groups.d/261.native_packages_x11.d/libXtst.package9
-rw-r--r--groups.d/261.native_packages_x11.d/libcaca.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libfontenc.package8
-rw-r--r--groups.d/261.native_packages_x11.d/libpthread_stubs.package7
-rw-r--r--groups.d/261.native_packages_x11.d/libxkbfile.package8
-rw-r--r--groups.d/261.native_packages_x11.d/pango.package9
-rw-r--r--groups.d/261.native_packages_x11.d/pixman.package7
-rw-r--r--groups.d/261.native_packages_x11.d/rdesktop.package11
-rw-r--r--groups.d/261.native_packages_x11.d/rxvt_unicode.package9
-rw-r--r--groups.d/261.native_packages_x11.d/st.package16
-rw-r--r--groups.d/261.native_packages_x11.d/util_macros.package7
-rw-r--r--groups.d/261.native_packages_x11.d/xcalc.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xcb.package12
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_proto.package7
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util_image.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xcb_util_wm.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xeyes.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xorgproto.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xterm.package10
-rw-r--r--groups.d/261.native_packages_x11.d/xtrans.package9
-rw-r--r--groups.d/261.native_packages_x11.d/xwd.package8
-rw-r--r--groups.d/261.native_packages_x11.d/xwin.package12
-rw-r--r--groups.d/800.minipix.d/bash_minipix.package10
-rw-r--r--groups.d/800.minipix.d/bzip2_minipix.package15
-rw-r--r--groups.d/800.minipix.d/ca_certificates_minipix.package5
-rw-r--r--groups.d/800.minipix.d/coreutils_minipix.package7
-rw-r--r--groups.d/800.minipix.d/dash_minipix.package6
-rw-r--r--groups.d/800.minipix.d/diffutils_minipix.package5
-rw-r--r--groups.d/800.minipix.d/dropbear_minipix.package6
-rw-r--r--groups.d/800.minipix.d/findutils_minipix.package5
-rw-r--r--groups.d/800.minipix.d/gawk_minipix.package5
-rw-r--r--groups.d/800.minipix.d/gdb_minipix.package6
-rw-r--r--groups.d/800.minipix.d/grep_minipix.package5
-rw-r--r--groups.d/800.minipix.d/gzip_minipix.package7
-rw-r--r--groups.d/800.minipix.d/infounzip_minipix.package6
-rw-r--r--groups.d/800.minipix.d/infozip_minipix.package6
-rw-r--r--groups.d/800.minipix.d/less_minipix.package5
-rw-r--r--groups.d/800.minipix.d/libz_minipix.package5
-rw-r--r--groups.d/800.minipix.d/mintty_minipix.package6
-rw-r--r--groups.d/800.minipix.d/nano_minipix.package5
-rw-r--r--groups.d/800.minipix.d/ntctty_minipix.package7
-rw-r--r--groups.d/800.minipix.d/ntux_minipix.package9
-rw-r--r--groups.d/800.minipix.d/patch_minipix.package5
-rw-r--r--groups.d/800.minipix.d/perk_minipix.package5
-rw-r--r--groups.d/800.minipix.d/ptycon_minipix.package7
-rw-r--r--groups.d/800.minipix.d/python2_minipix.package6
-rw-r--r--groups.d/800.minipix.d/sed_minipix.package5
-rw-r--r--groups.d/800.minipix.d/tar_minipix.package6
-rw-r--r--groups.d/800.minipix.d/toksvc_minipix.package7
-rw-r--r--groups.d/800.minipix.d/tpax_minipix.package6
-rw-r--r--groups.d/800.minipix.d/vim_minipix.package6
-rw-r--r--groups.d/800.minipix.d/wget_minipix.package5
-rw-r--r--groups.d/800.minipix.d/which_minipix.package5
-rw-r--r--groups.d/800.minipix.d/xz_minipix.package5
-rw-r--r--groups.d/800.minipix.group20
-rw-r--r--groups.d/999.dist.group (renamed from groups/999.dist.group)3
-rw-r--r--groups.d/dev_packages.group11
-rw-r--r--groups/000.host_tools.group85
-rw-r--r--groups/010.host_deps.group298
-rw-r--r--groups/020.host_deps_rpm.group38
-rw-r--r--groups/030.host_toolchain.group147
-rw-r--r--groups/100.native_tools.group34
-rw-r--r--groups/110.native_toolchain.group74
-rw-r--r--groups/120.native_runtime.group75
-rw-r--r--groups/211.native_packages_cmdline.group294
-rw-r--r--groups/221.native_packages_dev.group173
-rw-r--r--groups/231.native_packages_etc.group556
-rw-r--r--groups/241.native_packages_inet.group270
-rw-r--r--groups/251.native_packages_lib.group448
-rw-r--r--groups/261.native_packages_x11.group283
-rw-r--r--groups/800.minipix.group100
-rw-r--r--groups/dev_packages.group19
-rw-r--r--midipix.env373
-rw-r--r--patches/algol68g-3.3.24_pre.local.patch449
-rw-r--r--patches/alsa_lib-1.1.8.local.patch40
-rw-r--r--patches/autoconf_2_64_host-2.64.local.patch24
-rw-r--r--patches/autoconf_2_69_host-2.69.local.patch84
-rw-r--r--patches/autoconf_host-2.69.local.patch24
-rw-r--r--patches/bash-5.2.21_pre.local.patch (renamed from patches/bash-5.1.16.local.patch)0
l---------patches/bash_minipix-5.1.16.local.patch1
l---------patches/bash_minipix-5.2.21_pre.local.patch1
-rw-r--r--patches/bdwgc.local.patch97
-rw-r--r--patches/bind-9.13.2_pre.local.patch29
-rw-r--r--patches/bmake.local.patch26
-rw-r--r--patches/bmake_host.local.patch7
-rw-r--r--patches/bmake_host/gcc10.patch24
-rw-r--r--patches/bochs-2.8.local.patch (renamed from patches/bochs-2.6.11.local.patch)16
-rw-r--r--patches/cdecl-13.0_pre.local.patch12
-rw-r--r--patches/clang_host/clang-0001-Add-Alpine-Linux-distro.patch34
-rw-r--r--patches/clang_host/clang-0002-Use-z-relro-on-Alpine-Linux.patch25
-rw-r--r--patches/clang_host/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch27
-rw-r--r--patches/clang_host/clang-0004-Add-musl-targets-and-dynamic-linker.patch222
-rw-r--r--patches/clang_host/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch69
-rw-r--r--patches/clang_host/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch28
-rw-r--r--patches/clang_host/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch69
-rw-r--r--patches/clang_host/clang-0008-LLVM_PREFIX.patch11
-rw-r--r--patches/clzip-1.13_pre.local.patch12
-rw-r--r--patches/clzip-1.14_pre.local.patch11
-rw-r--r--patches/cmake_host-3.7.2.local.patch33
-rw-r--r--patches/coreutils/no-chown-cp.patch54
-rw-r--r--patches/coreutils/uptime.patch42
l---------patches/coreutils_minipix1
-rw-r--r--patches/cssc-1.4.1_pre.local.patch23
-rw-r--r--patches/curl-7.83.1.local.patch2192
-rw-r--r--patches/curl-8.7.1.local.patch20
-rw-r--r--patches/curl-8.7.1_pre.local.patch56
-rw-r--r--patches/cvs-1.12.13.local.patch29
-rw-r--r--patches/cvs-1.12.13_pre.local.patch16025
-rw-r--r--patches/dante-1.4.3.local.patch (renamed from patches/dante-1.4.2.local.patch)58
-rw-r--r--patches/dbus-1.11.20.local.patch136
-rw-r--r--patches/dbus_host-1.11.20.local.patch11
-rw-r--r--patches/ed-1.20_pre.local.patch (renamed from patches/ed-1.18_pre.local.patch)3
-rw-r--r--patches/elinks-0.15.0_pre.local.patch27
-rw-r--r--patches/ffmpeg-6.1.1.local.patch (renamed from patches/ffmpeg-5.1.1.local.patch)78
-rw-r--r--patches/ffmpeg-6.1.1_pre.local.patch (renamed from patches/ffmpeg-5.1.1_pre.local.patch)0
-rw-r--r--patches/file-5.45_pre.local.patch (renamed from patches/file-5.42_pre.local.patch)0
-rw-r--r--patches/file_host-5.45_pre.local.patch (renamed from patches/file_host-5.42_pre.local.patch)0
-rw-r--r--patches/fontconfig-2.14.1.local.patch21
-rw-r--r--patches/gcal-4.1_pre.local.patch12
-rw-r--r--patches/gdk-2.36.10.local.patch12
-rw-r--r--patches/ghostpdl-9.52.local.patch12
-rw-r--r--patches/giflib-5.2.1.local.patch12
-rw-r--r--patches/giflib-5.2.2.local.patch32
-rw-r--r--patches/git-2.35.8.local.patch (renamed from patches/git-2.35.2.local.patch)22
-rw-r--r--patches/git/git-no-owner-check.patch25
l---------patches/git_host1
-rw-r--r--patches/glew-2.1.0.local.patch21
-rw-r--r--patches/gnupg-2.3.8.local.patch13
-rw-r--r--patches/gnupg-2.3.8_pre.local.patch21
-rw-r--r--patches/gnutls-3.8.5.local.patch (renamed from patches/gnutls-3.7.6.local.patch)0
-rw-r--r--patches/gnutls-3.8.5_pre.local.patch (renamed from patches/gnutls-3.7.6_pre.local.patch)0
-rw-r--r--patches/graphicsmagick-1.3.42_pre.local.patch (renamed from patches/graphicsmagick-1.3.35_pre.local.patch)0
-rw-r--r--patches/gtk2-2.24.31.local.patch36
-rw-r--r--patches/gxemul-0.7.0.local.patch56
-rw-r--r--patches/gxemul-0.7.0_pre.local.patch525
-rw-r--r--patches/gxemul/generated.patch123136
-rw-r--r--patches/gxemul/generated2.patch267
-rw-r--r--patches/gxemul/generated3.patch889
-rw-r--r--patches/htop-3.3.0.local.patch26
-rw-r--r--patches/imagemagick-7.1.1-21_pre.local.patch (renamed from patches/imagemagick-7.0.9-12.local.patch)29
-rw-r--r--patches/indent-2.2.12.local.patch12
-rw-r--r--patches/indent-2.2.13.local.patch12
-rw-r--r--patches/lame-3.100.local.patch9
-rw-r--r--patches/ldns-1.7.0.local.patch129
-rw-r--r--patches/ldns-1.8.3.local.patch75
-rw-r--r--patches/libarchive-3.7.3_pre.local.patch (renamed from patches/libarchive-3.6.1_pre.local.patch)10
-rw-r--r--patches/libassuan-2.5.4_pre.local.patch17
-rw-r--r--patches/libassuan-2.5.5_pre.local.patch9
-rw-r--r--patches/libflac-1.4.3_pre.local.patch17
-rw-r--r--patches/libgcrypt-1.10.3.local.patch12
-rw-r--r--patches/libgcrypt-1.10.3_pre.local.patch12
-rw-r--r--patches/libressl-3.5.3.local.patch33
-rw-r--r--patches/libressl-3.9.1.local.patch19
-rw-r--r--patches/libsasl2-2.1.28_pre.local.patch11
-rw-r--r--patches/libsndfile-1.2.0.local.patch (renamed from patches/libsndfile-1.0.28.local.patch)0
-rw-r--r--patches/libssh-0.10.6.local.patch10
-rw-r--r--patches/libxslt-1.1.35.local.patch15
-rw-r--r--patches/libxslt-1.1.39.local.patch12
-rw-r--r--patches/libxslt-1.1.39_pre.local.patch (renamed from patches/libxslt-1.1.35_pre.local.patch)0
-rw-r--r--patches/libz/CVE-2022-37434.patch15
l---------patches/libz_minipix1
-rw-r--r--patches/libzip_host-1.7.1.local.patch12
-rw-r--r--patches/lighttpd-1.4.67_pre.local.patch12
-rw-r--r--patches/lighttpd-1.4.76.local.patch (renamed from patches/lighttpd-1.4.67.local.patch)0
-rw-r--r--patches/lighttpd-1.4.76_pre.local.patch23
-rw-r--r--patches/llvm_host/llvm-0001-Add-Musl-MuslEABI-and-Musl-EABIHF-triples.patch112
-rw-r--r--patches/llvm_host/llvm-0002-Fix-build-with-musl-libc.patch35
-rw-r--r--patches/llvm_host/llvm-0003-Fix-DynamicLibrary-to-build-with-musl-libc.patch33
-rw-r--r--patches/llvm_host/llvm-0004-Fix-ScalarEvolutionExpander-step-scaling-bug.patch99
-rw-r--r--patches/llvm_host/llvm-0005-optimize-store-of-bitcast-from-vector-to-aggregate.patch181
-rw-r--r--patches/llvm_host/llvm-0006-clone-every-functions-debug-info.patch129
-rw-r--r--patches/llvm_host/llvm-0007-reduce-complexity-of-debug-info-clonning-and-fix-correctness.patch102
-rw-r--r--patches/llvm_host/llvm-0008-dont-widen-metadata-on-store-to-load-forwarding.patch107
-rw-r--r--patches/llvm_host/llvm-0009-nm-workaround.patch27
-rw-r--r--patches/mailutils-3.15.local.patch112
-rw-r--r--patches/mandoc-1.14.5_pre.local.patch109
-rw-r--r--patches/mandoc-1.14.6.local.patch109
-rw-r--r--patches/mesa-18.0.0.local.patch72
-rw-r--r--patches/moe-1.12_pre.local.patch15
-rw-r--r--patches/moe-1.13_pre.local.patch14
-rw-r--r--patches/musl_compat.local.patch116
l---------patches/nasm-2.14.02.local.patch1
l---------patches/nasm-2.16.01.local.patch1
l---------patches/nasm_cross-2.16.01.local.patch1
-rw-r--r--patches/nasm_host-2.16.01.local.patch (renamed from patches/nasm_host-2.14.02.local.patch)24
-rw-r--r--patches/ncdu-1.18.local.patch62
-rw-r--r--patches/ncurses-6.3.local.patch23
-rw-r--r--patches/nettle-3.8.1.local.patch (renamed from patches/nettle-3.7.3.local.patch)344
-rw-r--r--patches/opensmtpd-7.3.0p2_pre.local.patch12
-rw-r--r--patches/openssh-9.5p1.local.patch (renamed from patches/openssh-9.0p1.local.patch)0
-rw-r--r--patches/p2c-2.02.local.patch203
-rw-r--r--patches/patch/no-ownership-hack.patch19
l---------patches/patch_minipix1
-rw-r--r--patches/perl-5.22.1.local.patch28
-rw-r--r--patches/perl-5.36.0.local.patch13
-rw-r--r--patches/perl/yes-we-can-hack.patch12
-rw-r--r--patches/php-8.1.9_pre.local.patch968
-rw-r--r--patches/php-8.3.4.local.patch399
-rw-r--r--patches/php-8.3.4_pre.local.patch1146
-rw-r--r--patches/posix_cc-1.4_pre.local.patch132
-rw-r--r--patches/procps_ng-3.3.17.local.patch194
-rw-r--r--patches/proxytunnel-1.12.1.local.patch (renamed from patches/proxytunnel-1.10.20200507.local.patch)0
-rw-r--r--patches/python2-2.7.18.local.patch11
l---------patches/python2-2.7.18_pre.local.patch1
l---------patches/python2_host-2.7.18.local.patch1
-rw-r--r--patches/python2_host-2.7.18_pre.local.patch11
l---------patches/python2_minipix-2.7.18_pre.local.patch1
-rw-r--r--patches/python3-3.7.10.local.patch11
l---------patches/python3-3.7.10_pre.local.patch1
l---------patches/python3_host-3.7.10.local.patch1
-rw-r--r--patches/python3_host-3.7.10_pre.local.patch11
-rw-r--r--patches/qpdf-6.0.0.local.patch11
-rw-r--r--patches/readline-8.2.local.patch (renamed from patches/readline-8.1.2.local.patch)0
l---------patches/readline_host-8.1.2.local.patch1
l---------patches/readline_host-8.2.local.patch1
-rw-r--r--patches/rxvt_unicode-9.22.local.patch39
-rw-r--r--patches/rxvt_unicode-9.22_pre.local.patch14
-rw-r--r--patches/sbase.local.patch9
-rw-r--r--patches/sbsigntools_pre.local.patch9
-rw-r--r--patches/screen-4.9.0.local.patch15
-rw-r--r--patches/tar/CVE-2022-48303.patch30
l---------patches/tar_minipix1
-rw-r--r--patches/tcsh-6.24.12.local.patch (renamed from patches/tcsh-6.24.01.local.patch)90
-rw-r--r--patches/tiff/CVE-2018-12900.patch29
-rw-r--r--patches/tk-8.7a1.local.patch38
-rw-r--r--patches/tree-2.1.1_pre.local.patch (renamed from patches/tree-2.0.4_pre.local.patch)0
-rw-r--r--patches/vim-9.0.0234.local.patch12
-rw-r--r--patches/vim-9.0.1927_pre.local.patch (renamed from patches/vim-9.0.0234_pre.local.patch)12
-rw-r--r--patches/vim/no-timers.patch19
l---------patches/vim_minipix1
l---------patches/vim_minipix-9.0.0234.local.patch1
l---------patches/vim_minipix-9.0.0234_pre.local.patch1
l---------patches/vim_minipix-9.0.1927_pre.local.patch1
-rw-r--r--patches/weechat-3.6_pre.local.patch55
-rw-r--r--patches/weechat-3.8.local.patch (renamed from patches/weechat-3.6.local.patch)0
-rw-r--r--patches/weechat-3.8_pre.local.patch117
-rw-r--r--patches/wget-1.24.5.local.patch12
-rw-r--r--patches/wget2-2.0.0_pre.local.patch122
-rw-r--r--patches/wget2-2.0.1.local.patch31
l---------patches/wget_minipix-1.24.5.local.patch1
-rw-r--r--patches/whois-5.5.22.local.patch (renamed from patches/whois-5.5.13.local.patch)32
-rw-r--r--patches/xcb-1.16.1_pre.local.patch19
-rw-r--r--patches/xcb_proto-1.12.local.patch276
-rw-r--r--patches/yabasic-2.83.0.local.patch40
-rw-r--r--patches/zstd-1.3.4.local.patch21
-rw-r--r--patches/zstd-1.5.5.local.patch11
-rwxr-xr-xpkgtool.sh933
-rw-r--r--subr.ex/ex_init.subr449
-rw-r--r--subr.ex/ex_pkg.subr537
-rw-r--r--subr.ex/ex_pkg_dispatch.subr407
-rw-r--r--subr.ex/ex_pkg_env.subr195
-rw-r--r--subr.ex/ex_pkg_exec.subr223
-rw-r--r--subr.ex/ex_pkg_restart.subr (renamed from subr/ex_pkg_restart.subr)153
-rw-r--r--subr.ex/ex_rtl.subr99
-rw-r--r--subr.ex/ex_rtl_configure.subr437
-rw-r--r--subr.ex/ex_rtl_make.subr184
-rw-r--r--subr.ex/ex_rtl_midipix.subr93
-rw-r--r--subr.ex/ex_rtl_rpm.subr270
-rw-r--r--subr.pkg/pkg_build.subr53
-rw-r--r--subr.pkg/pkg_build_clean.subr50
-rw-r--r--subr.pkg/pkg_clean.subr (renamed from subr/pkg_clean.subr)13
-rw-r--r--subr.pkg/pkg_configure.subr131
-rw-r--r--subr.pkg/pkg_configure_autotools.subr34
-rw-r--r--subr.pkg/pkg_configure_clean.subr22
-rw-r--r--subr.pkg/pkg_configure_patch.subr39
l---------subr.pkg/pkg_configure_patch_pre.subr1
-rw-r--r--subr.pkg/pkg_fetch_clean.subr26
-rw-r--r--subr.pkg/pkg_fetch_download.subr44
-rw-r--r--subr.pkg/pkg_fetch_extract.subr (renamed from subr/pkg_fetch_extract.subr)36
-rw-r--r--subr.pkg/pkg_install.subr (renamed from subr/pkg_install.subr)9
-rw-r--r--subr.pkg/pkg_install_clean.subr16
-rw-r--r--subr.pkg/pkg_install_files.subr94
-rw-r--r--subr.pkg/pkg_install_make.subr46
-rw-r--r--subr.pkg/pkg_install_rpm.subr36
-rw-r--r--subr.pkg/pkg_install_subdirs.subr (renamed from subr/pkg_install_subdirs.subr)14
-rw-r--r--subr.rtl/rtl.subr18
-rw-r--r--subr.rtl/rtl_complex.subr128
-rw-r--r--subr.rtl/rtl_fetch.subr121
-rw-r--r--subr.rtl/rtl_fetch_git.subr203
-rw-r--r--subr.rtl/rtl_fetch_wget.subr91
-rw-r--r--subr.rtl/rtl_fileop.subr173
-rw-r--r--subr.rtl/rtl_filepath.subr286
-rw-r--r--subr.rtl/rtl_install.subr89
-rw-r--r--subr.rtl/rtl_install_v2.subr796
-rw-r--r--subr.rtl/rtl_list.subr530
-rw-r--r--subr.rtl/rtl_log.subr200
-rw-r--r--subr.rtl/rtl_platform.subr275
-rw-r--r--subr.rtl/rtl_state.subr93
-rw-r--r--subr.rtl/rtl_string.subr302
-rw-r--r--subr/build_init.subr319
-rw-r--r--subr/ex_pkg.subr287
-rw-r--r--subr/ex_pkg_dispatch.subr255
-rw-r--r--subr/ex_pkg_env.subr157
-rw-r--r--subr/ex_pkg_exec.subr136
-rw-r--r--subr/pkg_build.subr54
-rw-r--r--subr/pkg_build_clean.subr33
-rw-r--r--subr/pkg_configure.subr184
-rw-r--r--subr/pkg_configure_autotools.subr99
-rw-r--r--subr/pkg_configure_clean.subr20
-rw-r--r--subr/pkg_configure_patch.subr33
-rw-r--r--subr/pkg_configure_patch_pre.subr38
-rw-r--r--subr/pkg_fetch_clean.subr21
-rw-r--r--subr/pkg_fetch_download.subr67
-rw-r--r--subr/pkg_install_clean.subr12
-rw-r--r--subr/pkg_install_files.subr115
-rw-r--r--subr/pkg_install_libs.subr66
-rw-r--r--subr/pkg_install_make.subr37
-rw-r--r--subr/pkg_install_rpm.subr52
-rw-r--r--subr/pkgtool_init.subr153
-rw-r--r--vars.dist/dist_gitref.vars20
-rw-r--r--vars.dist/dist_minipix.vars (renamed from dist/dist_minipix.dist)36
-rw-r--r--vars.dist/dist_zipdist.vars72
-rw-r--r--vars.env.d/000.build.env55
-rw-r--r--vars.env.d/050.pathsvars.env78
-rw-r--r--vars.env.d/100.toolchain.env70
-rw-r--r--vars.env.d/100.tools.env40
-rw-r--r--vars.env.d/200.targets.env62
-rw-r--r--vars.env.d/300.config.cache.env37
-rw-r--r--vars.env.d/300.config.cache.gnulib.env161
l---------vars/bash_minipix.vars1
-rw-r--r--vars/binutils.vars10
-rw-r--r--vars/ca_certificates.vars5
l---------vars/cparser.vars1
-rw-r--r--vars/gcc.vars559
-rw-r--r--vars/gdk.vars14
-rw-r--r--vars/git.vars2
l---------vars/glib_host.vars1
-rw-r--r--vars/libfirm.vars4
-rw-r--r--vars/musl.vars12
-rw-r--r--vars/nasm.vars9
-rw-r--r--vars/nasm_cross.vars9
-rw-r--r--vars/nasm_host.vars9
-rw-r--r--vars/perl.vars9
-rw-r--r--vars/psxstub_host.vars2
l---------vars/ruby_host.vars1
-rw-r--r--vars/texinfo.vars26
l---------vars/vim_minipix.vars1
787 files changed, 160331 insertions, 14265 deletions
diff --git a/.gitignore b/.gitignore
index 9c1bf0f4..5fb71cd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,10 @@
+patches/psxscl.local.patch
+patches/ntctty.local.patch
+
+etc/*.theme.host.*
etc/*.theme.local
.gdbhistory
*.sw[op]
+
+tmp
+buildall.sh
diff --git a/build.sh b/build.sh
index 449e389b..8d235c70 100755
--- a/build.sh
+++ b/build.sh
@@ -1,150 +1,524 @@
#!/bin/sh
-# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
#
+# {{{ buildp_ast($_param)
buildp_ast() {
+ local _bpa_param="${1}" \
+ _bpa_cmd="" _bpa_pids="" _bpa_pids_new="" \
+ _bpa_pids_niter=0 _bpa_pkg_name="" _bpa_signal="";
+
+ for _bpa_cmd in \
+ rtl_fileop rtl_kill_tree rtl_lconcat \
+ rtl_log_msgV rtl_uniq rtl_state_clear;
+ do
+ if ! command -v "${_bpa_cmd}" >/dev/null 2>&1; then
+ return 0;
+ fi;
+ done;
+
trap '' HUP INT TERM USR1 USR2;
- local _param="${1}" _pids="" _pids_niter=0 _pkg_name="" RTL_KILL_TREE_PIDS="";
- if [ "${_param}" = "abort" ]; then
- rtl_log_msg "fatalexit" "${MSG_build_aborted}";
+
+ if [ "${_bpa_param}" = "abort" ]; then
+ rtl_log_msgV "fatalexit" "${MSG_build_aborted}";
fi;
- while [ "${_pids_niter}" -lt 8 ]; do
- _pids="$(rtl_lconcat "${_pids}" "${RTL_KILL_TREE_PIDS}")"; RTL_KILL_TREE_PIDS="";
- if ! rtl_kill_tree "${$}" "TERM"\
- || [ -z "${RTL_KILL_TREE_PIDS}" ]; then
- break;
- else
- : $((_pids_niter+=1));
- fi;
+
+ for _bpa_signal in "TERM" "KILL"; do
+ _bpa_pids_niter=0;
+ while [ "${_bpa_pids_niter}" -lt 8 ]; do
+ rtl_lconcat \$_bpa_pids "${_bpa_pids_new}";
+ _bpa_pids_new="";
+ if ! rtl_kill_tree \$_bpa_pids_new "${$}" "${_bpa_signal}"\
+ || [ "${_bpa_pids_new:+1}" != 1 ]; then
+ break;
+ else
+ : $((_bpa_pids_niter+=1));
+ fi;
+ done;
done;
- if [ -n "${_pids}" ]; then
- rtl_log_msg "verbose" "${MSG_build_killed_pids}" "$(rtl_uniq ${_pids})";
+
+ if [ "${_bpa_pids:+1}" = 1 ]; then
+ rtl_log_msgV "verbose" "${MSG_build_killed_pids}" "$(rtl_uniq ${_bpa_pids})";
fi;
- if [ -n "${EX_PKG_DISPATCH_WAIT}" ]\
+
+ if [ "${BUILD_PKG_WAIT:+1}" = 1 ]\
&& [ "${ARG_RESET_PKG}" -eq 1 ]; then
- for _pkg_name in ${EX_PKG_DISPATCH_WAIT}; do
- rtl_state_clear "${BUILD_WORKDIR}" "${_pkg_name}";
+ for _bpa_pkg_name in ${BUILD_PKG_WAIT}; do
+ rtl_state_clear "${BUILD_WORKDIR}" "${_bpa_pkg_name}";
done;
- rtl_log_msg "verbose" "${MSG_build_reset_pkg_state}" "${EX_PKG_DISPATCH_WAIT}";
+ rtl_log_msgV "verbose" "${MSG_build_reset_pkg_state}" "${BUILD_PKG_WAIT}";
fi;
- if [ -n "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}" ]; then
+
+ if [ "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME:+1}" = 1 ]; then
rtl_fileop rm "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}";
fi;
+
+ return 0;
};
+# }}}
-buildp_dispatch_fail_pkg() {
- local _group_name="${1}" _pkg_name="${2}";
- : $((BUILD_NFAIL+=1)); BUILD_PKGS_FAILED="$(rtl_lconcat "${BUILD_PKGS_FAILED}" "${_pkg_name}")";
- if [ "${ARG_RELAXED:-0}" -eq 0 ]; then
- rtl_log_msg "fatal" "${MSG_pkg_stderrout_log}" "${BUILD_WORKDIR}" "${_pkg_name}";
- cat "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
- if [ -n "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}" ]; then
- printf "%s\n" "${_pkg_name}" > "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}";
+# {{{ buildp_init($_rstatus)
+buildp_init() {
+ local _bi_rstatus="${1#\$}" \
+ _bi_args_long="--as-needed --debug-minipx --reset-state" \
+ _bi_name_base="build" \
+ _bi_optstring="a:b:C:D:F:hp:Pr:RxvV:" \
+ _bi_rc=0 _bi_status="";
+ shift;
+
+ if ! . "${0%/*}/subr.ex/ex_init.subr"; then
+ _bi_rc=1;
+ _bi_status='failed to source \`'"${0%/*}/subr/ex_init.subr"\';
+ eval ${_bi_rstatus}=\"${_bi_status}\";
+ elif ! ex_init_help \
+ "${_bi_rstatus}" "${_bi_args_long}" \
+ "${_bi_name_base}" "${_bi_optstring}" "${@}" \
+ || ! ex_init_env "${_bi_rstatus}" \
+ \$BUILD_HNAME \$BUILD_USER "${_bi_name_base}" \
+ || ! ex_init_getopts \
+ "${_bi_rstatus}" "buildp_init_getopts_fn" \
+ "${_bi_optstring}" "${@}" \
+ || ! ex_init_theme \
+ "${_bi_rstatus}" "${BUILD_HNAME}" \
+ "${_bi_name_base}" "${ARG_THEME:-}" \
+ || ! ex_init_logging "${_bi_rstatus}" \$ARG_VERBOSE_TAGS "${ARG_VERBOSE}" \
+ || ! ex_pkg_load_vars "${_bi_rstatus}" \$ARCH \$BUILD_KIND \
+ || ! ex_init_prereqs "${_bi_rstatus}" "${DEFAULT_PREREQS}" \
+ || ! buildp_init_args "${_bi_rstatus}" \
+ || ! ex_init_files \
+ "${_bi_rstatus}" \
+ \$ARG_CLEAN_BUILDS \$ARG_DIST \
+ "${DEFAULT_BUILD_LOG_FNAME}" \
+ "${DEFAULT_BUILD_LOG_LAST_FNAME}" \
+ "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}" \
+ "${DEFAULT_CHECK_PATH_VARS}" \
+ "${DEFAULT_CLEAR_ENV_VARS_EXCEPT}" \
+ "${DEFAULT_CLEAR_PREFIX_PATHS}" \
+ "${DEFAULT_RPM_JOBS_SEMAPHORE}" \
+ "${BUILD_DLCACHEDIR}" "${PREFIX}" \
+ "${PREFIX_RPM}" "${BUILD_WORKDIR}";
+ then
+ _bi_rc=1;
+ fi;
+ return "${_bi_rc}";
+};
+# }}}
+# {{{ buildp_init_args($_rstatus)
+buildp_init_args() {
+ local _bpia_rstatus="${1#\$}" \
+ _bpia_foundfl=0 _bpia_group="" _bpia_groups="" _bpia_groups_noauto="" \
+ _bpia_pkg_names="" _bpia_pkg_names_unknown="" _bpia_pkg_names_unknown_count=0 \
+ _bpia_rc=0;
+
+ case "${ARG_FETCH_FORCE}" in
+ ipv4) rtl_lconcat \$DEFAULT_GIT_ARGS "-4";
+ rtl_lconcat \$DEFAULT_WGET_ARGS "-4"; ;;
+ ipv6) rtl_lconcat \$DEFAULT_GIT_ARGS "-6";
+ rtl_lconcat \$DEFAULT_WGET_ARGS "-6"; ;;
+ esac;
+
+ if [ "${ARG_AS_NEEDED:-0}" -eq 1 ]\
+ && [ -e "${PREFIX}/build.gitref" ]\
+ && [ "$(git rev-parse HEAD)" = "$(cat "${PREFIX}/build.gitref")" ]; then
+ _bpia_rc=0;
+ rtl_setrstatus "${_bpia_rstatus}" 'Git repository has not changed since last build and --as-needed was specified.';
+ elif ! ex_pkg_process_restart_spec "${_bpia_rstatus}" \$ARG_RESTART \$ARG_RESTART_AT \$ARG_RESTART_RECURSIVE; then
+ _bpia_rc=1;
+ rtl_setrstatus "${_bpia_rstatus}" 'failed to process -r specification: ${'"${_bpia_rstatus}"'}.';
+ elif ! ex_pkg_load_groups \$_bpia_groups \$_bpia_groups_noauto; then
+ _bpia_rc=1;
+ rtl_setrstatus "${_bpia_rstatus}" 'failed to load build groups.';
+ else
+ if ! rtl_lmatch \$ARG_DIST:- "rpm" ","; then
+ rtl_lfilter \$_bpia_groups "host_deps_rpm";
+ fi;
+
+ if [ "${BUILD_GROUPS:+1}" != 1 ]; then
+ BUILD_GROUPS="${_bpia_groups}";
+ else _bpia_foundfl=0; for _bpia_group in ${BUILD_GROUPS}; do
+ if rtl_lmatch \$_bpia_groups "${_bpia_group}"; then
+ _bpia_foundfl=1; break;
+ fi;
+ done;
+ if [ "${_bpia_foundfl}" -eq 0 ]; then
+ _bpia_foundfl=0; for _bpia_group in ${BUILD_GROUPS}; do
+ if rtl_lmatch \$_bpia_groups "${_bpia_group}"; then
+ _bpia_rc=1;
+ rtl_setrstatus "${_bpia_rstatus}" 'unknown build group \`'"${_bpia_group}'"'.';
+ fi;
+ done;
+ fi;
+ fi;
+
+ if [ "${_bpia_rc:-0}" -eq 0 ]; then
+ if rtl_lmatch \$ARG_DIST "zipdist" ","\
+ && ! rtl_lmatch \$ARG_DIST "minipix" ","; then
+ rtl_lconcat \$ARG_DIST "minipix" ",";
+ fi;
+
+ if [ "${ARG_DIST:+1}" = 1 ]; then
+ rtl_lfilter \$BUILD_GROUPS "dist";
+ rtl_lconcat \$BUILD_GROUPS "dist";
+ fi;
+
+ if [ "${ARG_RESTART:+1}" = 1 ]\
+ && ! rtl_lmatch \$ARG_RESTART "ALL LAST"; then
+ for _bpia_pkg_name in ${ARG_RESTART}; do
+ if ! ex_pkg_find_package \$_bpia_pkg_names "${BUILD_GROUPS}" "${_bpia_pkg_name}" >/dev/null; then
+ rtl_lconcat \$_bpia_pkg_names_unknown "${_bpia_pkg_name}";
+ fi;
+ done;
+ rtl_llength \$_bpia_pkg_names_unknown_count \$_bpia_pkg_names_unknown;
+
+ case "${_bpia_pkg_names_unknown_count}" in
+ 0) ;;
+
+ 1) _bpia_rc=1;
+ rtl_setrstatus "${_bpia_rstatus}" 'unknown package \`'"${_bpia_pkg_names_unknown}'"'.';
+ ;;
+
+ *) rtl_subst \$_bpia_pkg_names_unknown " " ", ";
+ _bpia_rc=1
+ rtl_setrstatus "${_bpia_rstatus}" 'unknown packages: '"${_bpia_pkg_names_unknown}'"'.';
+ ;;
+ esac;
+ fi;
fi;
- rtl_log_msg "fatal" "${MSG_build_failed_in}" "${_pkg_name}" "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
- else rtl_log_msg "warning" "${MSG_build_failed_in}" "${_pkg_name}" "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
fi;
- if [ "${ARG_DUMP_ON_ABORT:-0}" -eq 1 ]; then
- rtl_log_msg "pkg_faildump" "${MSG_pkg_faildump1}" "${_pkg_name}" "${BUILD_WORKDIR}/${_pkg_name}.dump";
- rtl_log_msg "pkg_faildump" "${MSG_pkg_faildump2}" "${ARCH}" "${BUILD_KIND}" "${_pkg_name}" "${PREFIX}";
+
+ return "${_bpia_rc}";
+};
+# }}}
+# {{{ buildp_init_getopts_fn(...)
+buildp_init_getopts_fn() {
+ local _bpigf_rc=0 _bpigf_shiftfl=0;
+
+ case "${1}" in
+ init)
+ local _bpigf_verb="${1}" _bpigf_rstatus="${2#\$}";
+
+ : ${ARCH:="nt64"};
+ : ${BUILD_KIND:="debug"};
+
+ ARG_AS_NEEDED=0; ARG_CLEAN_BUILDS=""; ARG_DEBUG_MINIPIX=0; ARG_DIST="";
+ ARG_FETCH_FORCE=""; ARG_PARALLEL=1; ARG_RELAXED=0; ARG_RESET_PKG=0;
+ ARG_RESTART=""; ARG_RESTART_AT=""; ARG_RESTART_RECURSIVE=""; ARG_VERBOSE=0;
+ ARG_VERBOSE_TAGS="";
+ ;;
+
+ longopt)
+ local _bpigf_verb="${1}" _bpigf_rstatus="${2#\$}" _bpigf_opt="${3}";
+
+ case "${_bpigf_opt}" in
+ --as-needed) ARG_AS_NEEDED=1; _bpigf_shiftfl=1; ;;
+ --debug-minipx) ARG_DEBUG_MINIPIX=1; _bpigf_shiftfl=1; ;;
+ --help) _bpigf_shiftfl=1; ;;
+ --reset-state) ARG_RESET_PKG=1; _bpigf_shiftfl=1; ;;
+ --theme) shift 3;
+ if [ "${#}" != 1 ]; then
+ rtl_setrstatus "${_bpigf_rstatus}" 'missing argument to --theme option';
+ return 1;
+ else
+ ARG_THEME="${1:-}"; _bpigf_shiftfl=2;
+ fi;
+ ;;
+
+ # {{{ --roar
+ --roar) printf "%s\n" '
+ ▃▃▃▃
+ ▟ ▙
+▟▙▃▟▙  /\ /\  roar!
+▜▒▓▒▛  ▛ """ ▜  /
+ ▜ ▛   ^ _ ^   /
+ ▀   (__y_)  
+ ▟▙ ▁▂▃▟▐▙▜`\_/▛▟▌
+ ▟▙ ▟ ▓▓▓| |▍▓▓▓
+ ▜\▙ ▟ ▓▓▓▓▓ |▓▓▓▓▓
+ ▜\\ \ ▒▒▒| | ▒▒▒
+ ▜\ ) ▒_| |▙ ▒
+ ( / ))))))';
+ exit 0;
+ ;;
+ # }}}
+
+ *) _bpigf_shiftfl=0; ;;
+ esac;
+ ;;
+
+ opt)
+ local _bpigf_verb="${1}" _bpigf_rstatus="${2#\$}" \
+ _bpigf_opt="${3}" _bpigf_optarg="${4:-}";
+ shift 4;
+
+ case "${_bpigf_opt}" in
+ a) ARCH="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ b) BUILD_KIND="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ C) ARG_CLEAN_BUILDS="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ D) ARG_DIST="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ F) ARG_FETCH_FORCE="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ h) _bpigf_shiftfl=1; ;;
+ p) ARG_PARALLEL="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+
+ P) ARG_PARALLEL="auto";
+ if [ "${2:+1}" = 1 ]\
+ && rtl_isnumber "${2}"; then
+ _bpigf_rc=1;
+ rtl_setrstatus "${_bpigf_rstatus}" 'maximum parallelisation job count is set with the \`-p jobs'\'' option.';
+ break;
+ fi;
+ _bpigf_shiftfl=1;
+ ;;
+
+ r) ARG_RESTART="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ R) ARG_RELAXED=1; _bpigf_shiftfl=1; ;;
+
+ x) ARG_VERBOSE_TAGS="${ARG_VERBOSE_TAGS:+${ARG_VERBOSE_TAGS},}xtrace";
+ _bpigf_shiftfl=1; ;;
+
+ v) ARG_VERBOSE=1; _bpigf_shiftfl=1; ;;
+ V) ARG_VERBOSE_TAGS="${_bpigf_optarg}"; _bpigf_shiftfl=2; ;;
+ *) cat etc/build.usage.short; exit 1; ;;
+ esac;
+ ;;
+
+ nonopt)
+ local _bpigf_verb="${1}" _bpigf_rstatus="${2#\$}" \
+ _bpigf_args="" _bpigf_vname="" _bpigf_vval="";
+ shift 2;
+
+ if rtl_match "${1}" "=*"; then
+ BUILD_GROUPS_INHIBIT_DEPS=1; _bpigf_args="${1#=}";
+ else
+ _bpigf_args="${1}";
+ fi;
+
+ rtl_llift \$_bpigf_args "," " ";
+ for _bpigf_arg in ${_bpigf_args}; do
+ case "${_bpigf_arg}" in
+ *=*) rtl_set_var_from_spec "${_bpigf_rstatus}" "${_bpigf_arg}";
+ _bpigf_rc="${?}";
+ ;;
+
+ [!a-zA-Z]*) _bpigf_rc=1;
+ rtl_setrstatus "${_bpigf_rstatus}" 'build group names must start with [a-zA-Z] (in argument \`'"${_bpigf_arg}"''\''.)';
+ ;;
+
+ *[!_bpigf_a-zA-Z]*)
+ _bpigf_rc=1;
+ rtl_setrstatus "${_bpigf_rstatus}" 'build group names must not contain [!_a-zA-Z] (in argument \`'"${_bpigf_arg}"''\''.)';
+ ;;
+
+ *) rtl_lconcat \$BUILD_GROUPS "${_bpigf_arg}"; ;;
+ esac;
+ done;
+
+ if [ "${_bpigf_rc}" -ne 0 ]; then
+ return "${_bpigf_rc}";
+ else
+ _bpigf_shiftfl=1;
+ fi;
+ ;;
+
+ done)
+ local _bpigf_verb="${1}" _bpigf_rstatus="${2#\$}";
+
+ case "${ARG_PARALLEL}" in
+ auto) if ! rtl_get_cpu_count "${_bpigf_rstatus}" \$ARG_PARALLEL; then
+ _bpigf_rc=1;
+ else
+ ARG_PARALLEL=$((${ARG_PARALLEL}/2));
+ fi; ;;
+
+ max) if ! rtl_get_cpu_count "${_bpigf_rstatus}" \$ARG_PARALLEL; then
+ _bpigf_rc=1;
+
+ fi; ;;
+
+ "") ARG_PARALLEL=1; ;;
+
+ *) if ! rtl_isnumber "${ARG_PARALLEL}"; then
+ _bpigf_rc=1;
+ rtl_setrstatus "${_bpigf_rstatus}" 'invalid jobs count \`'"${ARG_PARALLEL}"''\''.';
+ fi; ;;
+ esac;
+
+ if [ "${_bpigf_rc}" -eq 0 ]; then
+ DEFAULT_BUILD_CPUS="${ARG_PARALLEL}";
+ else
+ return "${_bpigf_rc}";
+ fi;
+ ;;
+
+ *)
+ return 1;
+ ;;
+ esac;
+
+ if [ "${_bpigf_shiftfl}" -ge 1 ]; then
+ return "$((${_bpigf_shiftfl} + 1))";
+ else
+ return 0;
fi;
+
+ return "${_bpigf_rc}";
+};
+# }}}
+
+# {{{ buildp_dispatch($_msg)
+buildp_dispatch() {
+ local _bpd_msg="${1}"; shift;
+
+ case "${_bpd_msg}" in
+ disabled_pkg|finish_pkg|missing_pkg|msg_pkg|skipped_pkg|start_pkg|start_pkg_child|step_pkg)
+ buildp_dispatch_pkg_state "${_bpd_msg}" "${@}"; ;;
+
+ finish_group|start_group)
+ buildp_dispatch_group_state "${_bpd_msg}" "${@}"; ;;
+
+ *) if command -v "buildp_dispatch_${_bpd_msg}" >/dev/null 2>&1; then
+ "buildp_dispatch_${_bpd_msg}" "${@}";
+ fi; ;;
+ esac;
+
+ return 0;
+};
+# }}}
+# {{{ buildp_dispatch_fail_pkg($_group_name, $_pkg_name)
+buildp_dispatch_fail_pkg() {
+ local _bpdfp_group_name="${1}" _bpdfp_pkg_name="${2}";
+
+ : $((BUILD_NFAIL+=1))
+ rtl_lconcat \$BUILD_PKGS_FAILED "${_bpdfp_pkg_name}";
+
if [ "${ARG_RELAXED:-0}" -eq 0 ]; then
- exit 1;
+ rtl_log_msgV "fatal" "${MSG_pkg_stderrout_log}" "${BUILD_WORKDIR}" "${_bpdfp_pkg_name}";
+ cat "${BUILD_WORKDIR}/${_bpdfp_pkg_name}_stderrout.log";
+
+ if [ "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME:+1}" = 1 ]; then
+ printf "%s\n" "${_bpdfp_pkg_name}" > "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}";
+ fi;
+
+ rtl_log_msgV "fatal" "${MSG_build_failed_in}" "${_bpdfp_pkg_name}" "${BUILD_WORKDIR}/${_bpdfp_pkg_name}_stderrout.log";
+ else
+ rtl_log_msgV "warning" "${MSG_build_failed_in}" "${_bpdfp_pkg_name}" "${BUILD_WORKDIR}/${_bpdfp_pkg_name}_stderrout.log";
fi;
-};
+ return 0;
+};
+# }}}
+# {{{ buildp_dispatch_group_state($_msg, $_group_name)
buildp_dispatch_group_state() {
- local _msg="${1}" _group_name="${2}";
- case "${_msg}" in
- finish_group) rtl_log_msg "group_finish" "${MSG_group_finish}" "${6}" "${4}" "${5}" "${_group_name}"; ;;
- start_group) rtl_log_msg "group_begin" "${MSG_group_begin}" "${6}" "${4}" "${5}" "${_group_name}"; ;;
+ local _bpdgs_msg="${1}" _bpdgs_group_name="${2}";
+
+ case "${_bpdgs_msg}" in
+ finish_group) rtl_log_msgV "group_finish" "${MSG_group_finish}" "${6}" "${4}" "${5}" "${_bpdgs_group_name}"; ;;
+ start_group) rtl_log_msgV "group_begin" "${MSG_group_begin}" "${6}" "${4}" "${5}" "${_bpdgs_group_name}"; ;;
esac;
-};
+ return 0;
+};
+# }}}
+# {{{ buildp_dispatch_pkg_state($_msg, $_group_name, $_pkg_name)
buildp_dispatch_pkg_state() {
- local _msg="${1}" _group_name="${2}" _pkg_name="${3}";
- case "${_msg}" in
- disabled_pkg) : $((BUILD_NSKIP+=1)); rtl_log_msg "pkg_skip" "${MSG_pkg_skip_disabled}" "${_pkg_name}"; ;;
- missing_pkg) rtl_log_msg "fatalexit" "${MSG_pkg_skip_unknown}" "${_pkg_name}"; ;;
- msg_pkg) shift 3; rtl_log_msg "${MSG_pkg_msg}" "${_group_name}" "${_pkg_name}" "${*}"; ;;
- skipped_pkg) : $((BUILD_NSKIP+=1)); rtl_log_msg "pkg_skip" "${MSG_pkg_skip_finished}" "${_pkg_name}"; ;;
- start_pkg) rtl_log_msg "pkg_begin" "${MSG_pkg_begin}" "${7}" "${6}" "${4}" "${5}" "${_pkg_name}"; ;;
- step_pkg) rtl_log_msg "pkg_step" "${MSG_pkg_step}" "${4}" "${_pkg_name}"; ;;
+ local _bpdps_msg="${1}" _bpdps_group_name="${2}" _bpdps_pkg_name="${3}" \
+ _bpdps_var="" _bpdps_vars="";
+
+ case "${_bpdps_msg}" in
+ disabled_pkg) : $((BUILD_NDISABLED+=1)); rtl_log_msgV "pkg_skip" "${MSG_pkg_skip_disabled}" "${_bpdps_pkg_name}"; ;;
+ missing_pkg) rtl_log_msgV "fatalexit" "${MSG_pkg_skip_unknown}" "${_bpdps_pkg_name}"; ;;
+ msg_pkg) shift 3; rtl_log_msgV "${MSG_pkg_msg}" "${_bpdps_group_name}" "${_bpdps_pkg_name}" "${*}"; ;;
+ skipped_pkg) : $((BUILD_NSKIP+=1)); rtl_log_msgV "pkg_skip" "${MSG_pkg_skip_finished}" "${_bpdps_pkg_name}"; ;;
+ start_pkg) rtl_log_msgV "pkg_begin" "${MSG_pkg_begin}" "${7}" "${6}" "${4}" "${5}" "${_bpdps_pkg_name}"; ;;
+ step_pkg) rtl_log_msgV "pkg_step" "${MSG_pkg_step}" "${4}" "${_bpdps_pkg_name}"; ;;
+
finish_pkg)
: $((BUILD_NFINI+=1));
- if rtl_lmatch "${ARG_VERBOSE_TAGS}" "build" ","; then
- cat "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
+ if rtl_lmatch \$ARG_VERBOSE_TAGS "build" ","; then
+ cat "${BUILD_WORKDIR}/${_bpdps_pkg_name}_stderrout.log";
fi;
- rtl_log_msg "pkg_finish" "${MSG_pkg_finish}" "${7}" "${6}" "${4}" "${5}" "${_pkg_name}"; ;;
+ rtl_log_msgV "pkg_finish" "${MSG_pkg_finish}" "${7}" "${6}" "${4}" "${5}" "${_bpdps_pkg_name}"; ;;
+
start_pkg_child)
if [ "${PKG_NO_LOG_VARS:-0}" -eq 0 ]; then
- rtl_log_env_vars "info" "build" $(rtl_get_vars_fast "^PKG_");
+ for _bpdps_var in ${DEFAULT_BUILD_VARS}; do
+ if eval [ \"\${PKG_${_bpdps_var}:+1}\" = 1 ]; then
+ _bpdps_vars="${_bpdps_vars:+${_bpdps_vars} }PKG_${_bpdps_var}";
+ fi;
+ done;
+ rtl_log_env_vars "info" "build" ${_bpdps_vars};
fi;
- if rtl_lmatch "${ARG_VERBOSE_TAGS}" "xtrace" ","; then
+ if rtl_lmatch \$ARG_VERBOSE_TAGS "xtrace" ","; then
set -o xtrace;
fi; ;;
esac;
-};
-buildp_dispatch() {
- local _msg="${1}"; shift;
- case "${_msg}" in
- disabled_pkg|finish_pkg|missing_pkg|msg_pkg|skipped_pkg|start_pkg|start_pkg_child|step_pkg)
- buildp_dispatch_pkg_state "${_msg}" "${@}"; ;;
- finish_group|start_group)
- buildp_dispatch_group_state "${_msg}" "${@}"; ;;
- *) if command -v "buildp_dispatch_${_msg}" >/dev/null 2>&1; then
- "buildp_dispatch_${_msg}" "${@}";
- fi; ;;
- esac;
+ return 0;
};
+# }}}
+# {{{ buildp_time_init()
buildp_time_init() {
- BUILD_DATE_START="$(rtl_date %Y-%m-%d-%H-%M-%S)";
- _build_time_secs="$(rtl_date %s)";
+ rtl_date \$BUILD_DATE_START "%Y-%m-%d-%H-%M-%S";
+ rtl_date \$_build_time_secs "%s";
};
-
+# }}}
+# {{{ buildp_time_update()
buildp_time_update() {
- : $((_build_time_secs=$(rtl_date %s)-${_build_time_secs}));
+ local _bptu_date;
+
+ rtl_date \$_bptu_date "%s";
+ : $((_build_time_secs=${_bptu_date}-${_build_time_secs}));
: $((_build_time_hours=${_build_time_secs}/3600));
: $((_build_time_minutes=(${_build_time_secs}%3600)/60));
: $((_build_time_secs=(${_build_time_secs}%3600)%60));
};
+# }}}
build() {
local _build_time_hours=0 _build_time_mins=0 _build_time_secs=0 _pkg_name="" _rc=0 _status="" \
BUILD_DATE_START="" BUILD_GROUPS="" BUILD_GROUPS_INHIBIT_DEPS=0 BUILD_HNAME BUILD_IS_PARENT=1 \
- BUILD_NFAIL=0 BUILD_NFINI=0 BUILD_NSKIP=0 BUILD_PKGS_FAILED="" BUILD_TARGET="" BUILD_USER="" \
- DEFAULT_BUILD_CPUS=1 DEFAULT_BUILD_LAST_FAILED_PKG_FNAME="" DEFAULT_BUILD_LOG_FNAME="" \
+ BUILD_NDISABLED=0 BUILD_NFAIL=0 BUILD_NFINI=0 BUILD_NSKIP=0 BUILD_PKGS_FAILED="" BUILD_TARGET="" \
+ BUILD_USER="" DEFAULT_BUILD_CPUS=1 DEFAULT_BUILD_LAST_FAILED_PKG_FNAME="" DEFAULT_BUILD_LOG_FNAME="" \
DEFAULT_BUILD_STEPS="" DEFAULT_BUILD_VARS="" DEFAULT_CLEAR_PREFIX_PATHS="" DEFAULT_GIT_ARGS="" \
DEFAULT_GITROOT_HEAD="${DEFAULT_GITROOT_HEAD:-}" DEFAULT_LOG_ENV_VARS="" DEFAULT_MIRRORS="" \
DEFAULT_TARGET="" DEFAULT_WGET_ARGS="" MIDIPIX_BUILD_PWD="";
- DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME=""; EX_PKG_DISPATCH_WAIT="";
- if ! . "${0%/*}/subr/build_init.subr"; then
- printf "Error: failed to source \`${0%/*}/subr/build_init.subr'." >&2; exit "${_rc}";
- elif ! build_init "${@}"; then
- printf "Error during initialisation: %s\n" "${_status}" >&2; exit "${_rc}";
- elif [ -n "${_status}" ]; then
- _rc=0; _status="${_status}";
- else trap "buildp_ast exit" EXIT; trap "buildp_ast abort" HUP INT TERM USR1 USR2;
+
+ BUILD_PKG_WAIT="";
+ DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME="";
+
+ trap "buildp_ast exit" EXIT; trap "buildp_ast abort" HUP INT TERM USR1 USR2;
+
+ if ! buildp_init \$_status "${@}"; then
+ _rc=0;
+ _status="Error: ${_status}";
+ else
buildp_time_init;
- rtl_log_msg "build_begin" "${MSG_build_begin}" "${BUILD_USER}" "${BUILD_HNAME}" "${BUILD_DATE_START}";
+ rtl_log_msgV "build_begin" "${MSG_build_begin}" "${BUILD_USER}" "${BUILD_HNAME}" "${BUILD_DATE_START}";
rtl_log_env_vars "build_vars" "build (global)" ${DEFAULT_LOG_ENV_VARS};
- ex_pkg_dispatch "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}" \
- buildp_dispatch "${BUILD_GROUPS}" "${BUILD_GROUPS_INHIBIT_DEPS}" \
- "${ARG_PARALLEL}" "${BUILD_WORKDIR}/build.fifo" "${ARG_RESTART}" \
- "${ARG_RESTART_AT}" "${ARG_RESTART_RECURSIVE}" "${BUILD_WORKDIR}";
+
+ ex_pkg_dispatch \
+ \$BUILD_PKG_WAIT "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}" \
+ "${ARG_RELAXED}" buildp_dispatch "${BUILD_GROUPS}" \
+ "${BUILD_GROUPS_INHIBIT_DEPS}" "${ARG_PARALLEL}" \
+ "${BUILD_WORKDIR}/build.fifo" "${ARG_RESTART}" "${ARG_RESTART_AT}" \
+ "${ARG_RESTART_RECURSIVE}" "${BUILD_WORKDIR}";
+
buildp_time_update;
- rtl_log_msg "build_finish" "${MSG_build_finish}" "${BUILD_NFINI:-0}" "${BUILD_NSKIP:-0}" "${BUILD_NFAIL:-0}";
- rtl_log_msg "build_finish_time" "${MSG_build_finish_time}" "${_build_time_hours:-0}" "${_build_time_minutes:-0}" "${_build_time_secs:-0}";
- if [ -n "${BUILD_PKGS_FAILED}" ]; then
- _rc=1; _status="Build script failure(s) in: ${BUILD_PKGS_FAILED}.";
+ rtl_log_msgV "build_finish" "${MSG_build_finish}" "${BUILD_NFINI:-0}" "${BUILD_NSKIP:-0}" "${BUILD_NDISABLED:-0}" "${BUILD_NFAIL:-0}";
+ rtl_log_msgV "build_finish_time" "${MSG_build_finish_time}" "${_build_time_hours:-0}" "${_build_time_minutes:-0}" "${_build_time_secs:-0}";
+
+ if [ "${BUILD_PKGS_FAILED:+1}" = 1 ]; then
+ _rc=1;
+ _status="Build script failure(s) in: ${BUILD_PKGS_FAILED}.";
fi;
fi;
+
if [ "${_rc}" -ne 0 ]; then
- rtl_log_msg "fatalexit" "0;${_status}";
- elif [ -n "${_status}" ]; then
- rtl_log_msg "info" "0;${_status}";
+ rtl_log_enable_tagsV "${LOG_TAGS_all}";
+ rtl_log_msgV "fatalexit" "0;${_status}";
+ elif [ "${_status:+1}" = 1 ]; then
+ rtl_log_enable_tagsV "${LOG_TAGS_all}";
+ rtl_log_msgV "info" "0;${_status}";
fi;
};
diff --git a/dist/dist_gitref.dist b/dist/dist_gitref.dist
deleted file mode 100644
index 4ebd4124..00000000
--- a/dist/dist_gitref.dist
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_dist_gitref_all() {
- (rtl_fileop cd "${MIDIPIX_BUILD_PWD}" && git rev-parse HEAD > "${PREFIX}/build.gitref");
-};
-
-# vim:filetype=sh
diff --git a/dist/dist_zipdist.dist b/dist/dist_zipdist.dist
deleted file mode 100644
index 1b0c193a..00000000
--- a/dist/dist_zipdist.dist
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_dist_zipdist_all() {
- local _dist_fname="" _pkg_name="" _pkglist_fname="${PREFIX}/pkglist.native";
- if rtl_lmatch "${ARG_DIST}" "zipdist" ","; then
- echo "msg_pkg dist dist_zipdist ${MSG_zipdist_begin}" >&3;
- rtl_log_msg "zipdist" "${MSG_zipdist_begin}";
- for _pkg_name in $(cat "${_pkglist_fname}"); do
- if [ ! -e "${BUILD_WORKDIR}/${_pkg_name}-native-${DEFAULT_TARGET}" ]; then
- rtl_log_msg "fatalexit" "${MSG_zipdist_missing_pkg_build_dir}" "${_pkg_name}";
- fi;
- done;
- _dist_fname="${DEFAULT_ZIPDIST_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.zip";
- if [ -e "${BUILD_WORKDIR}/zipdist" ]\
- && ! rtl_fileop rm "${BUILD_WORKDIR}/zipdist"; then
- return 1;
- elif ! rtl_fileop mkdir "${BUILD_WORKDIR}/zipdist"; then
- return 1;
- elif ! "${BUILD_WORKDIR}/mpackage/mpackage.sh" \
- --defroot="${DEFAULT_ZIPDIST_DEFROOT}" \
- --flysyms \
- --minroot="${PREFIX_MINIPIX}" \
- --objroot="${BUILD_WORKDIR}" \
- --pkgroot="${BUILD_WORKDIR}/zipdist/pkgroot" \
- --product=Midipix \
- --subset="${_pkglist_fname}" \
- --symbols \
- --sysroot="${BUILD_WORKDIR}/zipdist/sysroot" \
- --target="${DEFAULT_TARGET}" \
- --tmproot="${BUILD_WORKDIR}/zipdist/tmproot" \
- --zipfile="${PREFIX}/${_dist_fname}"; then
- return 1;
- else
- echo "msg_pkg dist dist_zipdist ${MSG_zipdist_finished}" >&3;
- rtl_log_msg "zipdist" "${MSG_zipdist_finished}";
- if [ -n "${DEFAULT_ZIPDIST_SIGN_GPG_KEY:-}" ]\
- && [ -x "$(which gpg 2>/dev/null)" ]\
- && gpg --list-keys "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" >/dev/null 2>&1; then
- echo "msg_pkg dist dist_zipdist ${MSG_zipdist_signing}" >&3;
- rtl_log_msg "zipdist" "${MSG_zipdist_signing}";
- if ! gpg --armor --passphrase-file /dev/null \
- --local-user "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" \
- --sign "${PREFIX}/${_dist_fname}"; then
- return 1;
- fi;
- echo "msg_pkg dist dist_zipdist ${MSG_zipdist_signed}" >&3;
- rtl_log_msg "zipdist" "${MSG_zipdist_signed}";
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/etc/LICENCE b/etc/LICENCE
index d17f7aec..4a39c21c 100644
--- a/etc/LICENCE
+++ b/etc/LICENCE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/etc/README.md b/etc/README.md
index 0d65430b..5d16ed47 100644
--- a/etc/README.md
+++ b/etc/README.md
@@ -1,1004 +1,1112 @@
-> N.B. If you're interested in building Midipix using this script, please join
-the project's IRC channel #midipix on Libera and ask for the address of the
-internal repositories required in order to build Midipix.
-
-> N.B. Due to the present state of the (largely) automated package upstream
-updates integration script and, despite frequent contributions, lack of
-human resources, it bears mentioning that the 3rd party packages built
-and distributed by this script are often not up to date with their resp.
-upstream and *may* hence be **insecure**. It is advised that this be taken
-into account when deploying and using Midipix distributions.
-
-[//]: # "{{{ Table of contents"
-# Table of Contents
-
-1. [What is Midipix, and how is it different?](#1-what-is-midipix-and-how-is-it-different)
-2. [Building and deployment](#2-building-and-deployment)
- 2.1. [Building, installing, and using a Midipix distribution](#21-building-installing-and-using-a-midipix-distribution)
- 2.1.1. [Build-time dependencies](#211-build-time-dependencies)
- 2.1.1.1. [Alpine-specific notate bene](#2111-alpine-specific-notate-bene)
- 2.2. [Deployment](#22-deployment)
- 2.3. [System requirements](#23-system-requirements)
- 2.4. [Troubleshooting](#24-troubleshooting)
-3. [Common concepts and tasks](#3-common-concepts-and-tasks)
- 3.1. [Common tasks](#31-common-tasks)
- 3.2. [Adding a package](#32-adding-a-package)
- 3.3. [Addressing build failure](#33-addressing-build-failure)
- 3.4. [Package archive files and Git repositories](#34-package-archive-files-and-git-repositories)
- 3.5. [``-s``: package build shell environment](#35--s-package-build-shell-environment)
- 3.6. [Package-package and {package,group}-group relationships](#36-package-package-and-packagegroup-group-relationships)
- 3.7. [Patches and ``vars`` files](#37-patches-and-vars-files)
-4. [Units reference](#4-units-reference)
- 4.1. [Build steps](#41-build-steps)
- 4.2. [Build variables](#42-build-variables)
- 4.3. [Fault-tolerant & highly optimised 3D laser show-equipped usage screen](#43-fault-tolerant--highly-optimised-3d-laser-show-equipped-usage-screen)
- 4.4. [File installation DSL](#44-file-installation-dsl)
- 4.5. [Package variables](#45-package-variables)
- 4.5.1. [Package variable types](#451-package-variable-types)
- 4.5.2. [Package variables](#452-package-variables)
- 4.6. [``pkgtool.sh``](#46-pkgtoolsh)
-5. [References](#5-references)
-
-[//]: "}}}"
-
-[//]: # "{{{ 1. What is Midipix, and how is it different?"
-## 1. What is Midipix, and how is it different?
-
-midipix is a development environment that lets you create programs
-for Windows using the standard C and POSIX APIs. No compromises made,
-no shortcuts taken.
-
-If you are interested in cross-platform programming that reclaims
-the notion of write once, compile everywhere; if you believe that the
-'standard' in the C Standard Library should not be a null signifier;
-and if you like cooking your code without #ifdef hell and low-level
-minutiae, then this page is for you.
-
-midipix makes cross-platform programming better, simpler and faster,
-specifically by bringing a modern, conforming C Runtime Library to the
-Windows platform. While the idea itself is not new, the approach taken
-in midipix to code portability is radically different from that found
-in other projects.
-
-*(reproduced from &lbrack;[2](https://midipix.org/#sec-midipix)&rbrack;)*
-
-[Back to top](#table-of-contents)
-
-[//]: "}}}"
-
-[//]: # "{{{ 2. Building and deployment"
-## 2. Building and deployment
-[//]: # "}}}"
-[//]: # "{{{ 2.1. Building, installing, and using a Midipix distribution"
-### 2.1. Building, installing and using a Midipix distribution
-
-A Midipix distribution consists of the following:
-
-* the native Midipix toolchain, consisting of perk, gcc, its dependencies,
- and binutils,
-* musl, a lightweight, fast, simple, and free libc&lbrack;[1](https://www.musl-libc.org/faq.html)&rbrack; used by Midipix,
-* the Midipix runtime components that bridge the gap between the libc and the
- executive subsystems of all Windows NT-derived Windows OS starting with and
- including Windows XP, and
-* a steadily increasing number of 3rd party open source packages, as expected in
- any modern POSIX-compliant \*nix environment, including GNU coreutils, shells,
- libraries such as ncurses, libressl, as well as Perl and Python.
-
-Install the build-time dependencies listed in section [2.1.1](#211-build-time-dependencies),
-clone this repository (e.g. ``git clone https://dev.midipix.org/build/midipix_build``)
-and run the following command line:
-
-```shell
-./build.sh -a nt64 -b release -D zipdist -P -v
-```
-
-By default, the build will take place within ``${HOME}/midipix/nt64/release``
-and package archive files and/or Git repositores will be downloaded into
-``${HOME}/midipix/dlcache``. Consult sections [4.2](#42-build-variables) and
-[4.5](#45-package-variables) for the list of available build/package variables
-and how to override them.
-Parallelisation is enabled by the above command line for both packages that can
-be built independently of each other and ``make(1)`` via ``-j``, limited to the
-amount of logical processors on the build host divided by two (2).
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 2.1.1. Build-time dependencies"
-### 2.1.1. Build-time dependencies
-
-* **Alpine Linux**:
- binutils bzip2 cmake coreutils curl findutils g++ gawk gcc git grep gzip libc-dev linux-headers lzip m4 make musl-dev net-tools patch perl perl-xml-parser procps sed tar util-linux wget xz zip
-* **Debian/-derived Linux**:
- binutils bzip2 cmake coreutils curl findutils g++ gawk gcc git grep gzip hostname libc6-dev libxml-parser-perl lzip m4 make patch perl procps sed tar util-linux wget xz-utils zip
-* **Gentoo Linux**:
- binutils bzip2 cmake coreutils curl findutils gawk =gcc-7.5.0-r1 dev-vcs/git grep gzip lzip m4 make patch perl dev-perl/XML-Parser procps sed tar util-linux wget xz-utils zip
-* **OpenSUSE Linux**:
- binutils bzip2 cmake coreutils curl findutils gawk gcc gcc-c++ git grep gzip hostname linux-glibc-devel lzip m4 make patch perl perl-XML-Parser procps sed tar util-linux wget xz zip
-
-#### The distro matrix:
-
-| Alpine Linux: | Debian/-derived Linux: | Gentoo Linux: | OpenSUSE Linux: |
-| ----------------- | -------------------------- | -------------------- | ------------------- |
-| binutils | binutils | binutils | binutils |
-| bzip2 | bzip2 | bzip2 | bzip2 |
-| cmake | cmake | cmake | cmake |
-| coreutils | coreutils | coreutils | coreutils |
-| curl | curl | curl | curl |
-| findutils | findutils | findutils | findutils |
-| g++ | g++ | - | gcc-c++ |
-| gawk | gawk | gawk | gawk |
-| gcc | gcc | =gcc-7.5.0-r1 | gcc |
-| git | git | dev-vcs/git | git |
-| grep | grep | grep | grep |
-| gzip | gzip | gzip | gzip |
-| - | hostname | - | hostname |
-| libc-dev | libc6-dev | - | linux-glibc-devel |
-| linux-headers | - | - | - |
-| lzip | lzip | lzip | lzip |
-| m4 | m4 | m4 | m4 |
-| make | make | make | make |
-| musl-dev | - | - | - |
-| net-tools | - | - | - |
-| patch | patch | patch | patch |
-| perl | perl | perl | perl |
-| perl-xml-parser | libxml-parser-perl | dev-perl/XML-Parser | perl-XML-Parser |
-| procps | procps | procps | procps |
-| sed | sed | sed | sed |
-| tar | tar | tar | tar |
-| util-linux | util-linux | util-linux | util-linux |
-| wget | wget | wget | wget |
-| xz | xz-utils | xz-utils | xz |
-| zip | zip | zip | zip |
-
-> N.B. Busybox is not supported. Awk implementations other than GNU Awk are not supported.
-
-> N.B. gcc versions >7.5.0 are not supported. clang is not supported.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 2.1.1.1. Alpine-specific notate bene"
-#### 2.1.1.1. Alpine-specific notate bene
-
-Some packages (*coreutils*, *grep*, and *tar*, among others) override Alpine's
-BusyBox utilities of the same name, as the latter are either non-conformant or
-defective.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 2.2. Deployment"
-### 2.2. Deployment
-
-On successful completion of the build, a ZIP archive containing the Midipix
-distribution will be created inside ``${PREFIX}`` (see section [4.2](#42-build-variables).)
-Create a directory on the target machine and extract the contents of the distribution
-ZIP archive into it, run ``bash.bat``, and then ``/install.sh`` inside the resulting
-self-contained Midipix installation shell window.
-
-> N.B. The pathname of the target directory containing ``bash.bat`` and all other
-distribution files must not contain whitespaces.
-
-> N.B. The Midipix installer defaults to ``/dev/fs/c/midipix (C:\midipix)``. If left
-unchanged, the distribution ZIP archive must not be extracted into a directory of the
-same pathname.
-
-> N.B. The user installing and using Midipix must have been delegated the ``SeCreateSymbolicLinkPrivilege``
-("Create symbolic links") privilege&lbrack;[3](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment)&rbrack; and additionally be a non-administrator account
-owing to the UAC-related filtering policy of tokens introduced by Windows Vista&lbrack;[4](https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/bb530410%28v%3dmsdn%2e10%29)&rbrack;.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 2.3. System requirements"
-### 2.3. System requirements
-
-The following build-time system requirements are assessed on build hosts
-equipped with the following hardware at minimum:
-
-* Intel(R) Xeon(R) CPU W3520 @ 2.67GHz (8 cores)
-* 7200 RPM SATA 3.1 HDD
-* 6 GB RAM
-
-| Target architecture | Build kind | Distribution kinds selected | Average build time | Disk space required | Peak RAM usage |
-| ------------------- | ---------- | --------------------------- | ------------------ | ------------------- | -------------- |
-| nt64 | debug | (none) | 2 hours | 57.62 GB | 3.55 GB |
-| nt64 | release | (none) | 1 hours 45 minutes | 36.51 GB | 3.21 GB |
-
-Package archive files and/or Git repositories additionally consume at least
-1.82 GB.
-
-*(last update: Thu, 05 Mar 2020 09:25:41 +0000)*
-
-These are the Midipix distribution disk space system requirements:
-
-| Target architecture | Build kind | Distribution | Installation directory | Archive file |
-| ------------------- | ---------- | ------------ | ---------------------- | ------------ |
-| nt64 | debug | 7.3 GB | 2.3 GB | 2.1 GB |
-| nt64 | release | 3.2 GB | 913 MB | 830 MB |
-
-The installation directory and archive file may be safely deleted post-installation.
-
-*(last update: Thu, 07 Jan 2021 18:20:06 +0000)*
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 2.4. Troubleshooting"
-### 2.4. Troubleshooting
-
-Midipix presently provides, inter alia, strace-like functionality via
-ntctty's logging capabilities. This is available both through the regular
-``strace(1)`` command as distributed, which however **must** be provided
-with an absolute pathname without consideration for ``${PATH}``, as well
-as directly via ``ntctty.exe`` for a session by running ``ntctty.exe``
-with the ``--log-level 7`` option, e.g.:
-
-```shell
-$ #strace ls -la / # (incorrect, relative pathname)
-$ strace /bin/ls -la / # (correct, absolute pathname)
-$ ntctty.exe --log-level 7 -e /bin/ls -la /
-$ ntctty.exe --log-level=7 -e /bin/ls -la /
-$ ntctty.exe --log-level 7 -e /bin/sh -c "ls -la /"
-$ ntctty.exe --log-level=7 -e /bin/sh -c "ls -la /"
-```
-
-By default, ``ntctty.exe`` log files are written into the /var/log/ntctty
-directory; this may be adjusted with the ``--log-dir`` and/or
-``--log-file`` options. ``strace(1)`` logs to stderr by default.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-
-[//]: # "{{{ 3. Common concepts and tasks"
-## 3. Common concepts and tasks
-[//]: # "}}}"
-[//]: # "{{{ 3.1. Common tasks"
-### 3.1. Common tasks
-
-Rebuild set of packages in isolation:
-```shell
-./build.sh [ ... ] -r mc,zsh
-```
-
-Restart the ``@install`` (shorthand alias) step, with implicit ``finish``, of the
-``mc`` and ``zsh`` packages.
-```shell
-./build.sh [ ... ] -r mc,zsh:@install
-```
-
-Rebuild set of packages along w/ their dependencies, if any, as needed, or forcibly,
-respectively:
-```shell
-./build.sh [ ... ] -r \*mc,zsh
-./build.sh [ ... ] -r \*\*mc,zsh
-```
-
-Forcibly rebuild all reverse dependencies of a set of packages:
-```shell
-./build.sh [ ... ] -r \*\*\*glib,libflac
-```
-
-Restart the ``@configure``, ``@build``, and ``@install`` (shorthand alias) steps of the
-``coreutils`` package:
-```shell
-./build.sh -r coreutils:@configure,@build,@install
-```
-
-Rebuild entire build groups including or excluding group dependencies, respectively:
-```shell
-./build.sh [ ... ] -r ALL native_runtime
-./build.sh [ ... ] -r ALL =native_runtime
-```
-
-Forcibly (re)download all archive files and/or Git repositories associated with all packages:
-```shell
-./build.sh [ ... ] -r ALL:@fetch
-```
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.2. Adding a package"
-## 3.2. Adding a package
-
-Packages are grouped into *build groups* according to sets of common package
-variable defaults, such as ``${PKG_CFLAGS_CONFIGURE}, ${PKG_LDFLAGS_CONFIGURE}``
-and ``${PKG_CONFIGURE_ARGS}``, and semantic interrelatedness, such as the
-``native_runtime`` build group comprising the Midipix runtime components.
-Packages may belong to more than one build group such as when subsumed by a shorthand
-build group e.g. the ``dev_packages`` build group, as long as the default set of build
-groups or as overriden on the command line does not entail group membership conflicts.
-
-Build groups files beneath ``groups/`` named ``[0-9][0-9][0-9].<group name>.group``
-contain package variable defaults, the alphabetically sorted list of contained
-packages in ``<upper case group name>_PACKAGES``, and their package variables
-sorted alphabetically with the exception of ``${PKG_DEPENDS}`` (if present,)
-``${PKG_SHA256SUM}``, ``${PKG_URL}``, and ``${PKG_VERSION}``, and/or ``${PKG_URLS_GIT}``,
-which are specified in this order.
-
-Pick a build group according to the criteria mentioned, add the package to the
-build group's list of contained packages in its corresponding file, and add the
-set of package variables required (see above and section [4.5](#45-package-variables).)
-Consult section [3.7](#37-patches-and-vars-files) if the package to be added
-requires patches or additional code amending or replacing package build steps
-or the entire package build. Consult section [4.1](#41-build-steps) for a list
-of package build steps and how they are overriden.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.3. Addressing build failure"
-## 3.3. Addressing build failure
-
-During package build, standard error and output are redirected into a log file beneath
-``${BUILD_WORKDIR}`` named ``${PKG_NAME}_stderrout.log``, following a package variable
-dump. If ``-V build`` was specified, package logs will additionally be printed to standard
-output. If ``-V xtrace`` was specified, ``xtrace`` will be set during package builds for
-rudimentary debugging purposes. Additionally, packages using GNU autotools will, if
-package configuration failed or appears relevant, log the configuration process in detail
-in, most usually, ``${PKG_BUILD_DIR}/config.log``.
-
-If ``--dump-on-abort`` was specified, a subset of the variables set and environment
-variables exported will be written to ``${BUILD_WORKDIR}/${PKG_NAME}.dump``, which may
-subsequently be used in order to obtain a package build shell environment with the
-``pkgtool.sh`` script (see sections [4.6](#46-pkgtoolsh), [3.5](#35--s-package-build-shell-environment).)
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.4. Package archive files and Git repositories"
-### 3.4. Package archive files and Git repositories
-
-Packages may have either or both of a SHA-256 message digest checked and to be extracted tarball
-(set in ``${PKG_URL}``, ``${PKG_FNAME}``, and ``${PKG_SHA256SUM}``) and/or Git repository or set
-thereof (set in ``${PKG_URLS_GIT}``.) Complementing these, an implicitly inferred or, in the
-presence of both, explicit primary source directory is specified for each package in ``${PKG_SUBDIR}``.
-Furthermore, these may be subject to download caching and/or setting up as well as maintaining
-mirrors, including automatic cleanup as well as deduplication in both cases.
-
-A list of pertinent package variables and their formats follows:
-
-| Name | Format |
-| -------------- | ----------------------------------------------- |
-| PKG_FNAME | ``<single file name>`` |
-| PKG_SHA256SUM | ``<SHA-256 message digest>`` |
-| PKG_SUBDIR | ``<relative or single directory name>`` |
-| PKG_URL | ``scheme:[//authority]path[?query][#fragment]`` |
-| PKG_URLS_GIT | ``[subdir=]URL[@branch]`` |
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.5. -s: package build shell environment"
-### 3.5. -s: package build shell environment
-
-When ``build.sh`` is executed with the ``--dump-on-abort`` option, a subset of the
-variables set and environment variables exported will be written to ``${BUILD_WORKDIR}/${PKG_NAME}.dump``
-on build failure, which may subsequently be used in order to obtain a package build shell
-environment with the ``pkgtool.sh`` script, e.g.:
-
-```
-midipix_build@sandbox:(src/midipix_build)> $ ./pkgtool.sh -a nt64 -b debug -s mc
-==> 2020/03/11 15:46:28 Launching shell `/usr/bin/zsh' within package environment and `/home/midipix_build/midipix/nt64/debug/tmp'.
-==> 2020/03/11 15:46:28 Run $R to rebuild `mc'.
-==> 2020/03/11 15:46:28 Run $RS <step> to restart the specified build step of `mc'
-==> 2020/03/11 15:46:28 Run $D to automatically regenerate the patch for `mc'.
-midipix_build@sandbox:(mc-native-x86_64-nt64-midipix/obj)> $
-```
-
-If a package build shell environment is desired for a package that has either not been
-built at all or built successfully, ``pkgshell.sh`` will attempt to rebuild the package
-at build steps up until, by default, ``build``, and then forcibly abort the build and
-write ``${BUILD_WORKDIR}/${PKG_NAME}.dump`` as above prior to entering the shell.
-
-Consult sections [3.2](#32-adding-a-package), [3.7](#37-patches-and-vars-files), [4.2](#42-build-variables),
-[4.1](#41-build-steps), and [4.5](#45-package-variables) for further information
-concerning the package build process.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.6. Package-package and {package,group}-group relationships"
-### 3.6. Package-package and {package,group}-group relationships
-
-Packages, as well as groups, are interrelated through implicit as well as explicit parametrised,
-typed relationships and form namespaces correspondingly.
-
-These primarily, by expressing modalities of constraining, derivation, and/or subdividision, govern
-the build and mirroring, etc. processes with regard to ordering constraints (e.g. ``depends``)
-and derivation or sharing of sets of variables and/or patches and/or ``vars/`` files (e.g.
-``group``, ``flavour``, ``inherit``) or build and/or source directories (e.g. ``module``,) etc.
-They may, however, also be subject to enquiry for descriptive, diagnostic, or visualising purposes,
-particularly as concerns the namespaces they form.
-
-A list of relationship types follows:
-
-| Type | Mode | Description |
-| -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
-| depends | implicit | Direct and recursively evaluated package dependency |
-| suggests | explicit | Suggested or recommended optional package |
-| group | implicit | Simple and overridable group variable inheritance (e.g. ``host_toolchain``, ``native_packages``) |
-| inherit | both | Simple and overridable package variable inheritance |
-| flavour | explicit | Exclusive package flavours set membership (e.g. ``vim_gtk``, ``vim_x11``) (conflicts w/ ``module``) |
-| module | explicit | Package modularisation with implicit source and build directory sharing (e.g. ``gcc_stage1``, ``gcc_full``) (conflicts w/ ``flavour``) |
-| target | both | Simple super- or subset derivation (e.g. ``host``, ``minipix``) |
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 3.7. Patches and ``vars`` files"
-## 3.7. Patches and ``vars`` files
-
-Package patches are applied prior and/or subsequent to (GNU autotools or similar) package
-configuration during the ``configure_patch_pre`` and/or ``configure_patch`` build steps,
-respectively (see section [4.1](#41-build-steps).) Patch files are searched for beneath
-``patches/`` with the following globs and in-order:
-* ``${PKG_NAME}-${PKG_VERSION}_pre.local.patch``
- or ``${PKG_NAME}_pre.local.patch`` (for packages lacking ``${PKG_VERSION}``)
-* ``${PKG_NAME}-${PKG_VERSION}_pre.local@${BUILD_HNAME}.patch``
- or ``${PKG_NAME}_pre.local@${BUILD_HNAME}.patch`` (for packages lacking ``${PKG_VERSION}``)
-* ``${PKG_NAME}/*.patch``
-* ``${PKG_NAME}-${PKG_VERSION}.local.patch``
- or ``${PKG_NAME}.local.patch`` (for packages lacking ``${PKG_VERSION}``)
-* ``${PKG_NAME}-${PKG_VERSION}.local@${BUILD_HNAME}.patch``
- or ``${PKG_NAME}.local@${BUILD_HNAME}.patch`` (for packages lacking ``${PKG_VERSION}``)
-* ``${PKG_PATCHES_EXTRA}`` (if set)
-
-If the default set of package build steps does not suffice, such as if additional commands
-must be executed after package configuration or prior to building, or if an entire or all
-build step must be replaced, overrides may be specified in the form of functions in the
-package's ``vars/${PKG_NAME}.vars`` ``vars`` file. Consult section [4.1](#41-build-steps)
-for a list of package build steps and how they are overriden.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-
-[//]: # "{{{ 4. Units reference"
-## 4. Units reference
-[//]: # "}}}"
-[//]: # "{{{ 4.1. Build steps"
-## 4.1. Build steps
-
-Package builds are divided up into consecutively executed build steps until
-completion or aborted on failure unless relaxed mode is enabled by passing
-``-R``.
-
-Each build step corresponds to a function in the corresponding ``subr/pkg_*.subr``
-script and may be overriden entirely by a function named ``pkg_<package name>_<build step>()``
-or composed in terms of prior and/or subsequent execution by a function named
-``pkg_<package name>_<build step>_pre()`` and/or ``pkg_<package name>_<build step>_post()``,
-respectively, in the package's ``vars`` file. If a function named ``pkg_<package name>_all()``
-exists, it will override all build steps.
-
-Build step status is tracked on a per-package basis by state files beneath
-``${BUILD_WORKDIR}`` following the format ``.<package name>.<build step>``;
-package build completion corresponds to the pseudo-build step ``finish``.
-
-| Name | Description |
-| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| fetch_clean | Delete and create ``${PKG_SUBDIR}'' |
-| fetch_download | Download package archive & verify w/ SHA-256 message digest and/or clone Git repository/ies |
-| fetch_extract | Extract package archive, if any |
-| configure_clean | Delete and create ``${PKG_BUILD_DIR}'' |
-| configure_patch_pre | Apply ``chainport`` patches and/or patches beneath ``patches/`` prior to (GNU autotools or similar) configuration |
-| configure_autotools | Bootstrap (GNU autools or similar) environment, and install ``config.sub`` and ``config.cache`` |
-| configure_patch | Apply patches beneath ``patches/`` and/or set in ``${PKG_PATCHES_EXTRA}`` after (GNU autotools or similar) configuration |
-| configure | Perform package (GNU autools or similar or CMake) configuration w/ configuration-time set of environment variables |
-| build_clean | Clean ``${PKG_BUILD_DIR}'' w/ ``make clean'' invocation |
-| build | Call ``make(1)`` w/ build-time set of make variables |
-| install_clean | Delete and create ``${PKG_DESTDIR}'' |
-| install_subdirs | Create default directory hierarchy in ``${PKG_DESTDIR}``, optionally amended w/ ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` |
-| install_make | Call ``make(1)`` w/ ``${PKG_INSTALL_TARGET}`` (defaults to ``install``) and installation-time set of make variables |
-| install_files | Install ``${PKG_INSTALL_FILES}`` and/or ``${PKG_INSTALL_FILES_V2}``, fix directory and file mode bits within ``${PKG_DESTDIR}`` and optionally ``${PKG_DESTDIR_HOST}``, ``pkgconf(1)`` package files, and/or stripped binaries within ``${PKG_DESTDIR}`` |
-| install_libs | Purge libtool ``.la`` files and install shared objects within ``${PKG_DESTDIR}`` w/ ``perk`` and corresponding symbolic links |
-| install | Install into ``${PKG_PREFIX}``, and optionally ``${PKG_DESTDIR_HOST}`` into ``${PREFIX}``, under mutex, and add package to ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` (unless inhibited) |
-| install_rpm | Build package RPM w/ auto-generated specifiation file based on ``etc/package.spec`` beneath ``${PREFIX_RPM}`` |
-| clean | Clean ``${PKG_BUILD_DIR}`` and/or ``${PKG_DESTDIR}`` and/or ``${PKG_DESTDIR_HOST}`` and/or ``${PKG_BASE_DIR}/${PKG_SUBDIR}`` as per ``-C build,dest,src``, resp., if any |
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 4.2. Build variables"
-## 4.2. Build variables
-
-The following variables are primarily defined in ``midipix.env`` and may be
-overriden on a per-build basis on the command-line, the environment, and/or
-``${HOME}/midipix_build.vars``, ``${HOME}/.midipix_build.vars``, and/or
-``../midipix_build.vars``, e.g.:
-
-```shell
-./build.sh -a nt64 -b release -D minipix,zipdist -P -v PREFIX_ROOT="${HOME}/midipix_tmp"
-env ARCH=nt64 BUILD_KIND=release PREFIX_ROOT="${HOME}/midipix_tmp" ./build.sh -D minipix,zipdist -P -v
-```
-
-| Variable name | Default value | Description |
-| ---------------- | ------------------------------------ | ----------------------------------------------------------------------------- |
-| ARCH | nt64 | Target 32-bit (nt32) or 64-bit (nt64) architecture |
-| BUILD_DLCACHEDIR | ${PREFIX_ROOT}/dlcache | Absolute pathname to package downloads cache root directory |
-| BUILD_HNAME | $(hostname) | Build system hostname |
-| BUILD_KIND | debug | Build w/ debugging (debug) or release compiler flags |
-| BUILD_WORKDIR | ${PREFIX}/tmp | Absolute pathname to temporary package build root directory |
-| PREFIX | ${PREFIX_ROOT}/${ARCH}/${BUILD_KIND} | Absolute pathname to architecture- & build type-specific build root directory |
-| PREFIX_CROSS | ${PREFIX}/${DEFAULT_TARGET} | Absolute pathname to toolchain root directory |
-| PREFIX_MINGW32 | ${PREFIX}/x86_64-w64-mingw32 | Absolute pathname to MinGW toolchain root directory |
-| PREFIX_MINIPIX | ${PREFIX}/minipix | Absolute pathname to minipix distribution root directory |
-| PREFIX_NATIVE | ${PREFIX}/native | Absolute pathname to cross-compiled packages root directory |
-| PREFIX_ROOT | ${HOME}/midipix | Absolute pathname to top-level directory |
-| PREFIX_RPM | ${PREFIX}/rpm | Absolute pathname to package RPM archive root directory |
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 4.3. Fault-tolerant & highly optimised 3D laser show-equipped usage screen"
-## 4.3. Fault-tolerant & highly optimised 3D laser show-equipped usage screen
-
-```
-usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[,..]]
- [-F ipv4|ipv6|offline] [-h|--help] [-p jobs|-P] [-r ALL|LAST]
- [-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]] [-R]
- [-v] [-V [+]tag|pat[,..]]
-
- [--as-needed] [--debug-minipix] [--dump-on-abort] [--reset-state]
- [--roar] [[=]<group>|<variable name>=<variable override>[ ..]]
-
- -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
- -b debug|release Selects debug or release build kind; defaults to debug.
- -C dir[,..] Clean build directory (build,) ${PREFIX} before processing build
- scripts (prefix,) source directory (src,) and/or destination
- directory (dest) after successful package builds.
- -D kind[,..] Produce minimal midipix distribution directory (minipix,) RPM
- binary packages (rpm,) and/or deployable distribution ZIP
- archive (zipdist.) zipdist implies minipix.
- -F ipv4|ipv6|offline
- Force IPv4 (ipv4) or IPv6 (ipv6) when downloading package
- archives and/or Git repositories or don't download either at all
- (offline.)
- -h|--help Show short/full help screen, respectively.
- -p jobs|-P Enables parallelisation at group-level, whenever applicable.
- The maximum count of jobs defaults to the number of logical
- processors on the host system divided by two (2.)
-
- If -R is not specified and at least one (1) package fails to
- build, all remaining package builds will be forcibly aborted.
-
- -r ALL|LAST Restart all packages or the last failed package and resume
- build, resp.
- -r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]
- Restart the specified comma-separated package(s) w/ inhibition
- of package build step state resetting completely (`ALL',) starting
- at the resp. last successfully executed build steps (`LAST',) or the
- specified comma-separated list of build steps, optionally subject
- concerning package name(s) and/or build step(s) to the below modifiers:
-
- Prepend name w/ `*' to automatically include dependencies, `**'
- to forcibly rebuild all dependencies, and `***' to forcibly
- rebuild all packages that depend on the specified package(s).
-
- Prepend step w/ `^' to filter build steps with, `<' or `<='
- to constrain build steps to below or below or equal with, resp.,
- `>' or `>=' to constrain build steps to above or above or equal
- with, resp.
-
- Currently defined build steps are:
- fetch_clean, fetch_download, fetch_extract, configure_clean,
- configure_patch_pre, configure_autotools, configure_patch,
- configure, build_clean, build, install_clean, install_subdirs,
- install_make, install_files, install_libs, install, install_rpm,
- and clean.
-
- Additionally, the following virtual steps are provided:
- @fetch, @configure, @build, @install, @clean, and finish.
-
- -R Ignore build failures, skip printing package logs, and continue
- building (relaxed mode.)
-
- -v Increase logging verbosity.
- -V [+]tag|pat[,..] Enable logging for messages with tag or pattern matching tags of:
- + (prefix)..: initialise tags with normal verbosity (implies normal) (see etc/build.theme,)
- all.........: log everything (see etc/build.theme,)
- clear|none..: log nothing,
- normal......: log at normal verbosity (see etc/build.theme,)
- verbose.....: log at increased verbosity (implies normal) (see etc/build.theme) (-v,)
-
- build.......: log package build logs,
- fileops.....: log RTL file operations,
- install.....: log RTL installation DSL operations,
- zipdist.....: log deployable distribution ZIP archive operations,
- xtrace......: set xtrace during package builds,
-
- fatal.......: fatal, unrecoverable errors,
- info........: informational messages,
- verbose.....: verbose informational messages,
- warning.....: warning messages possibly relating to imminent fatal, unrecoverable errors,
-
- build_*.....: general build messages (viz.: begin, finish, finish_time, vars,)
- group_*.....: build group messages (viz.: begin, finish,)
- pkg_*.......: package build messages (viz.: begin, faildump, finish, msg, skip, step, strip.)
-
- --as-needed Don't build unless the midipix_build repository has received
- new commits.
- --debug-minipix Don't strip(1) minipix binaries to facilitate debugging minipix.
- --dump-on-abort Produce package environment dump files on build failure to be
- used in conjuction with pkg_shell.sh script (excludes -R.)
- --reset-state Reset package build step state on exit.
-
- <group>[ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
- host_toolchain, host_tools, minipix, native_packages,
- native_runtime, native_toolchain, native_tools.
-
- Prepend w/ `=' to inhibit group-group dependency expansion.
-
- <variable name>=<variable override>[ ..]
- Override build or package variable.
-```
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 4.4. File installation DSL"
-## 4.4. File installation DSL
-
-File and directory installation, comprising e.g. copying, moving, creating
-symbolic links, setting owner and/or permission metadata, are expressed in
-a descriptive domain-specific language and integrated with package building
-via the package variable ``${PKG_INSTALL_FILES_V2}``, applying during
-``install_files`` after the ``install_make`` build step, and ``${PKG_INSTALL_FILES_DESTDIR}``
-and ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` during ``install_subdirs``. The
-``${PKG_INSTALL_FILES_V2}`` must adhere to the following syntax specified in EBNF:
-
-```
-(*
-SH_GLOB_PATTERN = any valid portable shell pattern (see sh(1)); superset of PATHNAME
-SH_SUBSTRING_PATTERN = any valid portable substring processing shell pattern (see sh(1));
- superset of PATHNAME
-PARAMETER = any valid portable shell variable name except that [0-9] may occur
- the beginning
-PATHNAME = any valid filename, directory name, relative or absolute pathname
- excluding the characters NUL and NL
- *)
-
-spec = { op_flag, } op_unary, "=", op_spec, "\n", { spec } ;
- | { op_flag, } op_binary, op_spec, "=" op_spec, "\n", { spec } ;
- | "#" COMMENT ;
-op_unary = "-" | "/" | "t" ;
-op_binary = ":" | "!" | "@" | "+" | "g" | "m" | "o" | "T" ;
-op_flag = "?" ;
-op_spec = pattern_spec | PATHNAME | expr_spec | op_spec ;
-
-pattern_spec = "%<", SH_GLOB_PATTERN, ">" ;
-
-expr_spec = "%[", expr, { sexpr_spec }, "%]" ;
-expr = [ "@" ], "0" .. "9" | "DNAME" | "FNAME" | "ITEM" | PARAMETER ;
-
-sexpr_spec = sexpr_op_unary, SH_SUBSTRING_PATTERN, { sexpr } ;
-sexpr_op_unary = "##" | "#" | "%%" | "%" ;
-```
-
-Single ``"="`` characters in ``spec``, the ``"%<"`` and ``"%["`` character
-sequences in ``pattern_spec`` and ``expr_spec``, resp., and the ``sexpr_op_unary``
-as well as ``sexpr_op_binary`` characters or character sequences may be
-escaped with a single backslash (``"\"``.) ``SH_SUBSTRING_PATTERN`` differs
-from ``SH_GLOB_PATTERN`` solely in that any of ``sexpr_op_unary`` and
-``sexpr_op_binary`` occuring at the beginning of or in the former must
-be escaped with a single backslash (``"\"``,) e.g. ``"#\#pattern"`` and
-``"%\%pattern"``, etc. and ``"#pat\%ern"`` and ``%patt\#ern", etc., resp.
-
-Named parameters (``PARAMETER``) are supplied via the ``-p name=value``
-argument to ``rtl_install()``, whereas numbered parameters are for
-internal usage only; the ``"DNAME"``, ``"FNAME"``, and ``"ITEM"`` parameters
-lazily evaluate to the directory name, file (aka base) name, and full
-pathname of the current item being processed relative to a specification
-with a pattern in it.
-
-The following parameters are defined by default during ``install_files``:
-
-| Name | Value |
-| ------------- | -------------------------------------- |
-| _builddir | ${PKG_BUILD_DIR} |
-| _destdir | ${PKG_BASE_DIR}/${PKG_DESTDIR} |
-| _destdir_host | ${PKG_BASE_DIR}/${PKG_DESTDIR_HOST} |
-| _files | ${MIDIPIX_BUILD_PWD}/files/${PKG_NAME} |
-| _name | ${PKG_NAME} |
-| _prefix | ${PKG_PREFIX} |
-| _prefix_host | ${PREFIX} |
-| _prefix_native | ${PREFIX_NATIVE} |
-| _subdir | ${PKG_BASE_DIR}/${PKG_SUBDIR} |
-| _target | ${PKG_TARGET} |
-| _version | ${PKG_VERSION:-} |
-| _workdir | ${BUILD_WORKDIR} |
-
-The following operation flags are defined:
-
-| Flag | Description |
-| --------- | ------------------------ |
-| ``?`` | Continue on soft failure |
-
-The following operations are defined:
-
-| Operation | Arity | Description |
-| -------------- | ------ | ---------------------------------------------------------------- |
-| ``-`` | Unary | Remove directories and/or files |
-| ``/`` | Unary | Create directories or trees thereof |
-| ``t`` | Unary | touch(1) files and/or directories |
-| ``:`` | Binary | Copy directories and/or files |
-| ``!`` | Binary | Move/rename directories and/or files |
-| ``@`` | Binary | Create/update symbolic links |
-| ``+`` | Binary | Copy directories and/or files if newer and follow symbolic links |
-| ``g`` | Binary | Set group owner of files and/or directories |
-| ``m`` | Binary | Set mode bits of files and/or directories |
-| ``o`` | Binary | Set user and/or group owner of files and/or directories |
-| ``T`` | Binary | touch(1) files and/or directories with timestamp |
-
-The following expression modifiers are defined:
-
-| Modifier | Description |
-| -------------- | ----------------------------------------- |
-| ``@`` | Recursively reevaluate after substituting |
-
-The following subexpression operators are defined:
-
-| Operation | Arity | Description |
-| -------------- | ------ | ---------------------------------------------------------------- |
-| ``##`` | Unary | Remove largest prefix from left-hand side |
-| ``#`` | Unary | Remove prefix from left-hand side |
-| ``%%`` | Unary | Remove largest postfix from right-hand side |
-| ``%`` | Unary | Remove postfix from right-hand side |
-
-```shell
-#
-# Examples:
-#
-
-#
-# Create directory %[_minipix]/bin and copy all files
-# in %[_minipix_dist]/bin/ to %[_minipix]/bin/ with
-# identical file names.
-/=%[_minipix]/bin
-?%[_minipix_dist]/bin/%<*>=%[_minipix]/bin/%[FNAME]
-
-#
-# Rename all files in share/info/ matching *.info to
-# their filenames with the `.info' postfix removed and
-# `-2.64.info' appended and all files in share/man/man1/
-# matching *.1 with the `.1' postfix removed and -2.64.1
-# appended.
-!share/info/%<*.info>=share/info/%[FNAME%.info]-2.64.info
-!share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.64.1
-
-#
-# Create/update symbolic links named include/ffi.h and
-# include/ffitarget.h with ../lib/libffi-3.2.1/include/ffi.h
-# and ../lib/libffi-3.2.1/include/ffitarget.h as targets, resp.
-@../lib/libffi-3.2.1/include/ffi.h=include/ffi.h
-@../lib/libffi-3.2.1/include/ffitarget.h=include/ffitarget.h
-
-#
-# Manual invocation:
-PKG_INSTALL_FILES_V2="
- [ ... ]
-";
-rtl_install \
- -p "_builddir=${PKG_BASE_DIR}/${PKG_BUILD_DIR}" \
- -p "_minipix=${PREFIX_MINIPIX##*/}" \
- -p "_minipix_dist=${PREFIX}/minipix_dist" \
- -p "_native=${PREFIX_NATIVE##*/}" \
- -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \
- -p "_target=${PKG_TARGET}" \
- -n -- "${PREFIX}" \
- "${PKG_INSTALL_FILES_V2}"; then
- return 1;
-fi;
-
-#
-# Usage screen:
-usage: rtl_install [-i] [-I ifs] [-n] [-p name=val] [-v] prefix spec_list
- -i...........: continue on soft errors
- -I ifs.......: process spec_list with ifs instead of NL
- -n...........: perform dry run
- -p name=val..: set named parameter
- -v...........: increase verbosity
- prefix.......: pathname prefix
- spec_list....: ifs-separated list of specs
-```
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 4.5. Package variables"
-### 4.5. Package variables
-
-The following variables are package-specific and receive their value from either
-top-level defaults defined in ``midipix.env``, build group-specific defaults from the
-build group the package pertains to and defined in its corresponding file beneath
-``groups/``, or package-specific overrides defined either in the latter and/or in its
-corresponding file beneath ``vars/``, with one of the following prefixes:
-
-| Variable name prefix |
-| ----------------------------------------------------- |
-| DEFAULT |
-| DEFAULT_``${BUILD_TYPE}`` |
-| DEFAULT_``${GROUP_NAME}`` |
-| ``${GROUP_NAME}`` |
-| [PKG_``${RELATED_PACKAGE(S)}``] |
-| [PKG_``${RELATED_PACKAGE(S)}``_``${BUILD_KIND}``] |
-| PKG_``${NAME}`` |
-| PKG_``${NAME}``_``${BUILD_KIND}`` |
-
-Additionally, overrides may be specified on a per-build basis on the command-
-line, with each variable prefixed w/ ``PKG_``, e.g.:
-``./build.sh [ ... ] PKG_ZSH_CC="/usr/bin/clang"``.
-
-The minimum set of package variables that must be provided is ``SHA256SUM, URL,
-VERSION`` and/or ``URLS_GIT``, respectively.
-
-[//]: # "{{{ 4.5.1 Package variable types"
-## 4.5.1 Package variable types
-
-| Type definition | Description |
-| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
-| DirName(Abs) | Absolute pathname to directory |
-| DirName(Rel) | Relative pathname to director |
-| DirName(Unit) | Single non-{absolute,relative} directory nam |
-| DirName | Absolute or relative pathname to director |
-| CmdName | Absolute or relative pathname to comman |
-| FileName(Abs) | Absolute pathname to file |
-| FileName(Rel) | Relative pathname to file |
-| FileName(Unit) | Single non-{absolute,relative} file name |
-| FileName | Absolute or relative pathname to file |
-| Flag(<type>,<default>) | Boolean flag of type <type>, e.g. Flag(Boolean) (``true``, ``false``,) Flag(UInt) (0, 1,) Flag(ExitStatus) (>=1, 0) with default or ``auto`` |
-| FlagLine | String of {SP,VT}-separated flags, arguments, options, etc. pp. to a command |
-| List(<sep>[,<sep|type>..]) | <sep>-separated list, optionally recursively and/or sub-typing, e.g.: ``List(:,=,String)`` and ``"name=value:name2=va lue "`` |
-| PkgName | Single name of package |
-| PkgRelation | Single, possibly parametrised, package-package relation; see section [3.6](#36-package-package-and-packagegroup-group-relationships) |
-| PkgVersion | Single version of package |
-| Set(<type>) | Set of alternatives of <type>, e.g. one of ``cross``, ``host``, ``native`` |
-| String | Semantically generic string |
-| URL | URL in standard format; see section [3.4](#34-package-archive-files-and-git-repositories) |
-| URL(Git) | Git URL in the format ``[subdir=]URL[@branch]``; see section [3.4](#34-package-archive-files-and-git-repositories) |
-
-[//]: # "}}}"
-[//]: # "{{{ 4.5.2 Package variables"
-## 4.5.2 Package variables
-
-| Package variable name | Type | Description |
-| ---------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
-| AR | CmdName | Toolchain library archive editor ``ar(1)`` |
-| AUTOCONF_CONFIG_GUESS | String | Either of ``midipix`` (copy Midipix ``config.guess`` from ``etc/config.guess``) or ``keep``; defaults to ``midipix`` |
-| BASE_DIR | DirName(Abs) | Package build root directory beneath ``${BUILD_WORKDIR}`` |
-| BUILD_DIR | DirName(Unit) | Package build directory beneath ``${PKG_BASE_DIR}`` |
-| BUILD_STAGES_DISABLE | List( ) | Build stages to disable during package build |
-| BUILD_TYPE | Set(String) | ``cross``: Cross-compiled toolchain, ``host``: host, ``native``: cross-compiled package |
-| CC | FileName | Toolchain C compiler ``cc(1)`` |
-| CFLAGS_BUILD_EXTRA | FlagLine | Additional C compiler flags during package ``make(1)`` build |
-| CFLAGS_BUILD | FlagLine | C compiler flags during package ``make(1)`` build |
-| CFLAGS_CONFIGURE_EXTRA | FlagLine | Additional C compiler flags during package (GNU autotools in implementation and/or interface) configuration |
-| CFLAGS_CONFIGURE | FlagLine | C compiler flags during package (GNU autotools in implementation and/or interface) configuration |
-| CMAKE_ARGS_EXTRA | FlagLine | Additional arguments to ``cmake(1)`` |
-| CMAKE_ARGS | FlagLine | Arguments to ``cmake(1)`` |
-| CMAKE | CmdName | ``cmake(1)`` executable |
-| CMAKE_LISTFILE | FileName | ``cmake(1)`` listfile |
-| CONFIG_CACHE_EXTRA | List(\n) | Additional GNU autotools configuration cache variables |
-| CONFIG_CACHE | List(\n) | GNU autotools configuration cache variables |
-| CONFIG_CACHE_LOCAL | List(\n) | Additional GNU autotools configuration cache variables |
-| CONFIGURE_ARGS_EXTRA | FlagLine | Additional arguments to package (GNU autotools in implementation and/or interface) configuration script |
-| CONFIGURE_ARGS | FlagLine | Arguments to package (GNU autotools in implementation and/or interface) configuration script |
-| CONFIGURE | CmdName | Package's (GNU autotools in implementation and/or interface) configuration script |
-| CONFIGURE_TYPE | String | Either of ``autotools`` (GNU autotools or similar) or ``sofort`` or ``cmake`` (CMake) |
-| CXX | CmdName | Toolchain C++ compiler ``c++(1)`` |
-| CXXFLAGS_CONFIGURE_EXTRA | FlagLine | Additional C++ compiler flags during package (GNU autotools in implementation and/or interface) configuration |
-| CXXFLAGS_CONFIGURE | FlagLine | C++ compiler flags during package (GNU autotools in implementation and/or interface) configuration |
-| DEPENDS | List( ) | Mandatory package-package dependencies |
-| DESTDIR | DirName(Unit) | Package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| DESTDIR_HOST | DirName(Unit) | Optional host package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| DISABLED | Flag(UInt,0) | Disable package |
-| ENV_VARS_EXTRA | List(:,=) | Name-value pairs of environment variables to set during package build |
-| FNAME | FileName(Unit) | Filename of package archive file |
-| FORCE_AUTORECONF | Flag(UInt,0) | Forcibly run ``autoreconf -fiv`` prior to package (GNU autotools in implementation and/or interface) configuration |
-| GITROOT | URL | midipix packages Git URL prefix |
-| INHERIT_FROM | String | Inherit variables from named package |
-| INSTALL_FILES_DESTDIR_EXTRA | List( ) | Additional files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
-| INSTALL_FILES_DESTDIR | List( ) | Files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
-| INSTALL_FILES | List( ) | Files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| INSTALL_FILES_V2 | List( ) | Files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| INSTALL_TARGET_EXTRA | String | Additional name of package build ``make(1)`` installation target |
-| INSTALL_TARGET | String | Name of package build ``make(1)`` installation target |
-| IN_TREE | Flag(UInt,auto) | Build package in-tree within ``${PKG_SUBDIR}`` |
-| LDFLAGS_BUILD_EXTRA | FlagLine | Additional linker flags during package ``make(1)`` build |
-| LDFLAGS_CONFIGURE_EXTRA | FlagLine | Additional linker flags during package (GNU autotools in implementation and/or interface) configuration |
-| LDFLAGS_CONFIGURE | FlagLine | Linker flags during package (GNU autotools in implementation and/or interface) configuration |
-| LIBTOOL | CmdName | ``libtool(1)`` implementation (defaults to ``slibtool``) |
-| MAKE | CmdLine | Command line of ``make(1)`` |
-| MAKEFLAGS_BUILD_EXTRA | FlagLine | Additional ``make(1)`` flags during package ``make(1)`` build |
-| MAKEFLAGS_BUILD | FlagLine | ``make(1)`` flags during package ``make(1)`` build |
-| MAKEFLAGS_INSTALL_EXTRA | FlagLine | ``make(1)`` flags during package ``make(1)`` installation |
-| MAKEFLAGS_INSTALL | FlagLine | ``make(1)`` flags during package ``make(1)`` installation |
-| MAKEFLAGS_VERBOSITY | String | Variable-value pair to pass to ``make(1)`` in order to force echo-back of command lines prior to execution |
-| MAKE_INSTALL_VNAME | String | Variable name of ``make(1)`` installation destination directory variable during package ``make(1)`` installation |
-| MAKE_SUBDIRS | List( ) | ``make(1)`` subdirectories to exclusively build |
-| MIRRORS_GIT | List( ) | Package Git repository mirror base URLs to attempt cloning from; cf. ``pkgtool.sh -m <dname>`` |
-| MIRRORS | List( ) | Package archive mirror base URLs to attempt downloading from; cf. ``pkgtool.sh -m <dname>`` |
-| NO_CLEAN_BASE_DIR | Flag(UInt,0) | Inhibit cleaning of package build root directory beneath ``${BUILD_WORKDIR}`` |
-| NO_CLEAN | Flag(UInt,0) | Inhibit cleaning of package build directory beneath ``${PKG_BASE_DIR}`` pre-finish |
-| NO_LOG_VARS | Flag(UInt,0) | Inhibit logging of build & package variables pre-package build |
-| PATCHES_EXTRA | List( ) | Additional patches to apply |
-| PKG_CONFIG | CmdName | ``pkg-config(1)`` implementation |
-| PKG_CONFIG_LIBDIR | DirName | ``pkg-config(1)`` search directory |
-| PKGLIST_DISABLE | Flag(UInt,0) | Inhibit inclusion into ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` |
-| PREFIX | DirName(Abs) | Top-level installation directory and package search path |
-| PYTHON | CmdName | Python >=3.x interpreter |
-| RANLIB | CmdName | Toolchain library archive index generator ``ranlib(1)`` |
-| RELATES | Set(PkgRelation) | Package-package relationships |
-| RPM_DISABLE | Flag(UInt,0) | Inhibit creation of RPM archive |
-| SHA256SUM | String | SHA-256 message digest of package archive |
-| SOFORT_NATIVE_CC | FileName | ``sofort`` variable during ``native`` build: Toolchain C compiler ``cc(1)`` |
-| SOFORT_NATIVE_CFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional C compiler flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_CFLAGS | FlagLine | ``sofort`` variable during ``native`` build: C compiler flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_CXXFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional list of C++ compiler flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_CXXFLAGS | FlagLine | ``sofort`` variable during ``native`` build: List of C++ compiler flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_CXX | FlagLine | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C++ compiler ``c++(1)`` |
-| SOFORT_NATIVE_LDFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional linker flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_LDFLAGS | FlagLine | ``sofort`` variable during ``native`` build: Linker flags during package (GNU autotools or similar) configuration |
-| SOFORT_NATIVE_LD | FileName | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C compiler ``cc(1)`` |
-| SUBDIR | DirName(Rel) | Extracted archive or git-{clone,pull}(1)'d directory |
-| TARGET | String | Dash-separated {build,host,target} triplet |
-| URL | List( ,URL) | URL to package archives w/ optional alternatives; see section [3.4](#34-package-archive-files-and-git-repositories) |
-| URLS_GIT | List( ,URL(Git)) | Package Git URL(s) (format: ``[subdir=]URL[@branch]``, see section [3.4](#34-package-archive-files-and-git-repositories)) |
-| VARS_FILE | FileName | Optional package variables file (defaults to ``vars/${PKG_NAME}.vars``) |
-| VERSION | PkgVersion | Package version |
-
-[//]: # "}}}"
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-[//]: # "{{{ 4.6. ``pkgtool.sh``"
-## 4.6. ``pkgtool.sh``
-
-```
-usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-i|-m <dname> -M <dname>|-r|-s|-t] [-v]
- [<variable name>=<variable override>[ ..]] name
-
- -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
- -b debug|release Selects debug or release build kind; defaults to debug.
- -i List package variables and dependencies of single named package.
- -m <dname> Setup package archives mirror in <dname> and/or
- -M <dname> Setup Git repositories mirror in <dname>
- -r List reverse dependencies of single named package.
- -s Enter interactive package build shell environment for single
- named package; requires a package dump file. If the package
- has not been built yet or built successfully, it will be rebuilt
- at build steps up until, by default, the `build' build step and
- forcibly aborted and dumped prior to enterting the shell.
- -t Produce tarball of package build root directory and build log
- file for the purpose of distribution given build failure.
- -v Increase verbosity.
-
- <variable name>=<variable override>[ ..]
- Override build variable.
-```
-
-> N.B. When using ``pkgtool.sh`` on a build w/ build variables (see section [4.2](#42-build-variables))
-overriden on the command line or via the environment, ensure that they are included in the
-``pkgtool.sh`` command line, preceding the package name, or exported, respectively.
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-
-[//]: # "{{{ 5. References"
-## 5. References
-
-* ``Sun, 25 Apr 2016 09:04:08 +0000 [1]`` <a href="https://www.musl-libc.org/faq.html" id="r1">musl FAQ</a>
-* ``Wed, 04 Mar 2020 13:36:19 +0000 [2]`` <a href="https://midipix.org/#sec-midipix" id="r2">midipix - what is midipix, and how is it different?</a>
-* ``Wed, 29 Apr 2020 23:33:34 +0100 [3]`` <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment" id="r3">User Rights Assignment (Windows 10) - Windows security | Microsoft Docs</a>
-* ``Wed, 29 Apr 2020 23:33:50 +0100 [4]`` <a href="https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/bb530410%28v%3dmsdn%2e10%29" id="r4">Windows Vista Application Development Requirements for User Account Control Compatibility | Microsoft Docs</a>
-
-[Back to top](#table-of-contents)
-
-[//]: # "}}}"
-
-[modeline]: # ( vim: set ff=dos tw=0: )
+> N.B. If you're interested in building Midipix using this script, please join
+the project's IRC channel #midipix on Libera and ask for the address of the
+internal repositories required in order to build Midipix.
+
+> N.B. Due to the present state of the (largely) automated package upstream
+updates integration script and, despite frequent contributions, lack of
+human resources, it bears mentioning that the 3rd party packages built
+and distributed by this script are often not up to date with their resp.
+upstream and *may* hence be **insecure**. It is advised that this be taken
+into account when deploying and using Midipix distributions.
+
+[//]: # "{{{ Table of contents"
+# Table of Contents
+
+1. [What is Midipix, and how is it different?](#1-what-is-midipix-and-how-is-it-different)
+2. [Building and deployment](#2-building-and-deployment)
+ 2.1. [Building, installing, and using a Midipix distribution](#21-building-installing-and-using-a-midipix-distribution)
+ 2.1.1. [Build-time dependencies](#211-build-time-dependencies)
+ 2.1.1.1. [Alpine-specific notate bene](#2111-alpine-specific-notate-bene)
+ 2.2. [Deployment](#22-deployment)
+ 2.3. [System requirements](#23-system-requirements)
+ 2.4. [Troubleshooting](#24-troubleshooting)
+3. [Common concepts and tasks / FAQ](#3-common-concepts-and-tasks-faq)
+ 3.1. [Common tasks](#31-common-tasks)
+ 3.2. [Adding a package](#32-adding-a-package)
+ 3.3. [Addressing build failure](#33-addressing-build-failure)
+ 3.4. [Package archive files and Git repositories](#34-package-archive-files-and-git-repositories)
+ 3.5. [Patches and ``vars`` files](#35-patches-and-vars-files)
+4. [Reference](#4-reference)
+ 4.1. [Build steps](#41-build-steps)
+ 4.2. [Build variables](#42-build-variables)
+ 4.3. [File installation DSL](#43-file-installation-dsl)
+ 4.4. [Package variables](#44-package-variables)
+ 4.4.1. [Package variable types](#441-package-variable-types)
+ 4.4.2. [Package variables](#442-package-variables)
+ 4.5. [Fault-tolerant & highly optimised 3D laser show-equipped usage screen](#45-fault-tolerant--highly-optimised-3d-laser-show-equipped-usage-screen)
+ 4.6. [``pkgtool.sh``](#46-pkgtoolsh)
+ 4.7. [Bourne shell coding rules](#47-bourne-shell-coding-rules)
+5. [References](#5-references)
+
+[//]: "}}}"
+
+[//]: # "{{{ 1. What is Midipix, and how is it different?"
+## 1. What is Midipix, and how is it different?
+
+midipix is a development environment that lets you create programs
+for Windows using the standard C and POSIX APIs. No compromises made,
+no shortcuts taken.
+
+If you are interested in cross-platform programming that reclaims
+the notion of write once, compile everywhere; if you believe that the
+'standard' in the C Standard Library should not be a null signifier;
+and if you like cooking your code without #ifdef hell and low-level
+minutiae, then this page is for you.
+
+midipix makes cross-platform programming better, simpler and faster,
+specifically by bringing a modern, conforming C Runtime Library to the
+Windows platform. While the idea itself is not new, the approach taken
+in midipix to code portability is radically different from that found
+in other projects.
+
+*(reproduced from &lbrack;[2](https://midipix.org/#sec-midipix)&rbrack;)*
+
+[Back to top](#table-of-contents)
+
+[//]: "}}}"
+
+[//]: # "{{{ 2. Building and deployment"
+## 2. Building and deployment
+[//]: # "}}}"
+[//]: # "{{{ 2.1. Building, installing, and using a Midipix distribution"
+### 2.1. Building, installing and using a Midipix distribution
+
+A Midipix distribution consists of the following:
+
+* the native Midipix toolchain, consisting of perk, gcc, its dependencies,
+ and binutils,
+* musl, a lightweight, fast, simple, and free libc&lbrack;[1](https://www.musl-libc.org/faq.html)&rbrack; used by Midipix,
+* the Midipix runtime components that bridge the gap between the libc and the
+ executive subsystems of all Windows NT-derived Windows OS starting with and
+ including Windows XP, and
+* a steadily increasing number of 3rd party open source packages, as expected in
+ any modern POSIX-compliant \*nix environment, including GNU coreutils, shells,
+ libraries such as ncurses, libressl, as well as Perl and Python.
+
+Install the build-time dependencies listed in section [2.1.1](#211-build-time-dependencies),
+clone this repository (e.g. ``git clone https://dev.midipix.org/build/midipix_build``)
+and run the following command line:
+
+```shell
+./build.sh -a nt64 -b release -D zipdist -P -v
+```
+
+By default, the build will take place within ``${HOME}/midipix/nt64/release``
+and package archive files and/or Git repositores will be downloaded into
+``${HOME}/midipix/dlcache``. Consult sections [4.2](#42-build-variables) and
+[4.4](#44-package-variables) for the list of available build/package variables
+and how to override them.
+Parallelisation is enabled by the above command line for both packages that can
+be built independently of each other and ``make(1)`` via ``-j``, limited to the
+amount of logical processors on the build host divided by two (2).
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 2.1.1. Build-time dependencies"
+### 2.1.1. Build-time dependencies
+
+* **Alpine Linux**:
+ binutils bison bzip2 cmake coreutils curl findutils g++ gawk gcc git grep gzip libc-dev linux-headers lzip m4 make musl-dev net-tools patch perl perl-xml-parser procps sed tar util-linux util-linux-dev wget xz zip
+* **Arch Linux**:
+ binutils bison bzip2 cmake coreutils curl findutils gawk gcc git grep gzip lzip m4 make net-tools patch perl perl-xml-parser procps-ng sed tar util-linux util-linux-libs wget xz zip
+* **Debian/-derived Linux**:
+ binutils bison bzip2 cmake coreutils curl findutils g++ gawk gcc git grep gzip hostname libc6-dev libxml-parser-perl lzip m4 make patch perl procps sed tar util-linux uuid-dev wget xz-utils zip
+* **Gentoo Linux**:
+ binutils bison bzip2 cmake coreutils curl findutils gawk =gcc-7.5.0-r1 dev-vcs/git grep gzip lzip m4 make patch perl dev-perl/XML-Parser procps sed tar util-linux libuuid wget xz-utils zip
+* **OpenSUSE Linux**:
+ binutils bison bzip2 cmake coreutils curl findutils gawk gcc gcc-c++ git grep gzip hostname linux-glibc-devel lzip m4 make patch perl perl-XML-Parser procps sed tar util-linux libuuid1 wget xz zip
+
+#### The distro matrix:
+
+| Alpine Linux: | Arch Linux: | Debian/-derived Linux: | Gentoo Linux: | OpenSUSE Linux: |
+| --------------- | ------------------ | -------------------------- | ------------------- | ----------------- |
+| binutils | binutils | binutils | binutils | binutils |
+| bison | bison | bison | bison | bison |
+| bzip2 | bzip2 | bzip2 | bzip2 | bzip2 |
+| cmake | cmake | cmake | cmake | cmake |
+| coreutils | coreutils | coreutils | coreutils | coreutils |
+| curl | curl | curl | curl | curl |
+| findutils | findutils | findutils | findutils | findutils |
+| g++ | - | g++ | - | gcc-c++ |
+| gawk | gawk | gawk | gawk | gawk |
+| gcc | gcc | gcc | =gcc-7.5.0-r1 | gcc |
+| git | git | git | dev-vcs/git | git |
+| grep | grep | grep | grep | grep |
+| gzip | gzip | gzip | gzip | gzip |
+| - | - | hostname | - | hostname |
+| libc-dev | - | libc6-dev | - | linux-glibc-devel |
+| linux-headers | - | - | - | - |
+| lzip | lzip | lzip | lzip | lzip |
+| m4 | m4 | m4 | m4 | m4 |
+| make | make | make | make | make |
+| musl-dev | - | - | - | - |
+| net-tools | net-tools | - | - | - |
+| patch | patch | patch | patch | patch |
+| perl | perl | perl | perl | perl |
+| perl-xml-parser | perl-xml-parser | libxml-parser-perl | dev-perl/XML-Parser | perl-XML-Parser |
+| procps | procps-ng | procps | procps | procps |
+| sed | sed | sed | sed | sed |
+| tar | tar | tar | tar | tar |
+| util-linux | util-linux | util-linux | util-linux | util-linux |
+| util-linux-dev | util-linux-libs | uuid-dev | libuuid | libuuid1 |
+| - | vi | - | - | - |
+| wget | wget | wget | wget | wget |
+| xz | xz | xz-utils | xz-utils | xz |
+| zip | zip | zip | zip | zip |
+
+> N.B. Busybox is not supported. Awk implementations other than GNU Awk are not supported.
+
+> N.B. clang is not supported.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 2.1.1.1. Alpine-specific notate bene"
+#### 2.1.1.1. Alpine-specific notate bene
+
+Some packages (*coreutils*, *grep*, and *tar*, among others) override Alpine's
+BusyBox utilities of the same name, as the latter are either non-conformant or
+defective.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 2.2. Deployment"
+### 2.2. Deployment
+
+On successful completion of the build, a ZIP archive containing the Midipix
+distribution will be created inside ``${PREFIX}`` (see section [4.2](#42-build-variables).)
+Create a directory on the target machine and extract the contents of the distribution
+ZIP archive into it, run ``bash.bat``, and then ``/install.sh`` inside the resulting
+self-contained Midipix installation shell window.
+
+Make sure to consult the notate bene below:
+
+> N.B. The pathname of the target directory containing ``bash.bat`` and all other
+distribution files must not contain whitespaces.
+
+> N.B. The Midipix installer defaults to ``/dev/fs/c/midipix (C:\midipix)``. If left
+unchanged, the distribution ZIP archive must not be extracted into a directory of the
+same pathname.
+
+> N.B. The user installing and using Midipix must have been delegated the ``SeCreateSymbolicLinkPrivilege``
+("Create symbolic links") privilege&lbrack;[3](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment)&rbrack; and additionally be a non-administrator account
+owing to the UAC-related filtering policy of tokens introduced by Windows Vista&lbrack;[4](https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/bb530410%28v%3dmsdn%2e10%29)&rbrack;.
+
+> N.B. On Windows 10 and 11, Windows Defender as well as SmartScreen must be disabled.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 2.3. System requirements"
+### 2.3. System requirements
+
+The following build-time system requirements are assessed on build hosts
+equipped with the following hardware at minimum:
+
+* Intel(R) Xeon(R) CPU W3520 @ 2.67GHz (8 cores)
+* 7200 RPM SATA 3.1 HDD
+* 6 GB RAM
+
+| Target architecture | Build kind | Distribution kinds selected | Average build time | Disk space required | Peak RAM usage |
+| ------------------- | ---------- | --------------------------- | ------------------ | ------------------- | -------------- |
+| nt64 | debug | (none) | 2 hours | 57.62 GB | 3.55 GB |
+| nt64 | release | (none) | 1 hours 45 minutes | 36.51 GB | 3.21 GB |
+
+Package archive files and/or Git repositories additionally consume at least
+1.82 GB.
+
+*(last update: Thu, 05 Mar 2020 09:25:41 +0000)*
+
+These are the Midipix distribution disk space system requirements:
+
+| Target architecture | Build kind | Distribution | Installation directory | Archive file |
+| ------------------- | ---------- | ------------ | ---------------------- | ------------ |
+| nt64 | debug | 7.3 GB | 2.3 GB | 2.1 GB |
+| nt64 | release | 3.2 GB | 913 MB | 830 MB |
+
+The installation directory and archive file may be safely deleted post-installation.
+
+*(last update: Thu, 07 Jan 2021 18:20:06 +0000)*
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 2.4. Troubleshooting"
+### 2.4. Troubleshooting
+
+Midipix presently provides, inter alia, strace-like functionality via
+ntctty's logging capabilities. This is available both through the regular
+``strace(1)`` command as distributed, which however **must** be provided
+with an absolute pathname without consideration for ``${PATH}``, as well
+as directly via ``ntctty.exe`` for a session by running ``ntctty.exe``
+with the ``--log-level 7`` option, e.g.:
+
+```shell
+$ #strace ls -la / # (incorrect, relative pathname)
+$ strace /bin/ls -la / # (correct, absolute pathname)
+$ ntctty.exe --log-level 7 -e /bin/ls -la /
+$ ntctty.exe --log-level=7 -e /bin/ls -la /
+$ ntctty.exe --log-level 7 -e /bin/sh -c "ls -la /"
+$ ntctty.exe --log-level=7 -e /bin/sh -c "ls -la /"
+```
+
+By default, ``ntctty.exe`` log files are written into the /var/log/ntctty
+directory; this may be adjusted with the ``--log-dir`` and/or
+``--log-file`` options. ``strace(1)`` logs to stderr by default.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+
+[//]: # "{{{ 3. Common concepts and tasks"
+## 3. Common concepts and tasks
+[//]: # "}}}"
+[//]: # "{{{ 3.1. Common tasks"
+### 3.1. Common tasks
+
+Rebuild set of packages in isolation:
+```shell
+./build.sh [ ... ] -r mc,zsh
+```
+
+Restart the ``@install`` (shorthand alias) step, with implicit ``finish``, of the
+``mc`` and ``zsh`` packages.
+```shell
+./build.sh [ ... ] -r mc,zsh:@install
+```
+
+Rebuild set of packages along w/ their dependencies, if any, as needed, or forcibly,
+respectively:
+```shell
+./build.sh [ ... ] -r \*mc,zsh
+./build.sh [ ... ] -r \*\*mc,zsh
+```
+
+Forcibly rebuild all reverse dependencies of a set of packages:
+```shell
+./build.sh [ ... ] -r \*\*\*glib,libflac
+```
+
+Restart the ``@configure``, ``@build``, and ``@install`` (shorthand alias) steps of the
+``coreutils`` package:
+```shell
+./build.sh -r coreutils:@configure,@build,@install
+```
+
+Rebuild entire build groups including or excluding group dependencies, respectively:
+```shell
+./build.sh [ ... ] -r ALL native_runtime
+./build.sh [ ... ] -r ALL =native_runtime
+```
+
+Forcibly (re)download all archive files and/or Git repositories associated with all packages:
+```shell
+./build.sh [ ... ] -r ALL:@fetch,finish
+```
+> N.B. the "finish" (pseudo-)build step must be included here and in similar use cases so that all
+affected packages are marked as having finished building in order to correctly satisfy package-package
+dependencies.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 3.2. Adding a package"
+## 3.2. Adding a package
+
+Packages are grouped into *build groups* according to sets of common package
+variable defaults, such as ``${PKG_CFLAGS_CONFIGURE}, ${PKG_LDFLAGS_CONFIGURE}``
+and ``${PKG_CONFIGURE_ARGS}``, and semantic interrelatedness, such as the
+``native_runtime`` build group comprising the Midipix runtime components.
+Packages may belong to more than one build group such as when subsumed by a shorthand
+build group e.g. the ``dev_packages`` build group, as long as the default set of build
+groups or as overriden on the command line does not entail group membership conflicts.
+
+Build groups files beneath ``groups.d/`` named ``[0-9][0-9][0-9].<group name>.group``
+contain package variable defaults, optionally the alphabetically sorted list of contained
+packages, if any, in ``<upper case group name>_PACKAGES``, and their package variables
+sorted alphabetically with the exception of ``${PKG_DEPENDS}`` (if present,)
+``${PKG_SHA256SUM}``, ``${PKG_URL}``, and ``${PKG_VERSION}``, and/or ``${PKG_URLS_GIT}``,
+which are specified in this order. Build group files require the following epilogue, the
+parameters enclosed in square brackets being optional:
+
+```shell
+ex_pkg_register_group "<group name>" "${RTL_FILEOP_SOURCE_FNAME}" [["owner|copy"] ["auto|noauto"]];
+
+# vim:filetype=sh textwidth=0
+```
+
+If ``copy`` is specified, the build group will copy all of its packages from their respective
+build groups without taking ownership thereof, if ``owner`` is specified, the default, the build
+group owns all of its packages. If ``noauto`` is specified, the build group will not be added to
+the list of build groups to build by default, if ``auto`` is specified, the build group will be
+added to the list of build groups to build by default.
+
+If a build group that specifies ``copy`` should copy all of its build group variables from another
+build group, use the following code:
+
+```shell
+ex_pkg_copy_group_vars "<source group name>" "<destination group name>";
+```
+
+Additionally, single package files may be added beneath ``groups.d/[0-9][0-9][0-9].<group name>.d/``,
+named ``<package name>.package`` containing the package's variables, with the following epilogue,
+the parameters enclosed in square brackets being optional:
+
+```shell
+ex_pkg_register "<package_name>" "${RTL_FILEOP_SOURCE_FNAME}" ["<group name>"];
+
+# vim:filetype=sh textwidth=0
+```
+
+1. Pick a build group according to the criteria mentioned and specifiy the set of package
+variables required (see above and section [4.4](#44-package-variables)) in either the
+corresponding group file or a single package file; in the former case, do also add the
+package to the build group's list of contained packages.
+
+2. Consult section [3.5](#35-patches-and-vars-files) if the package to be added
+requires patches or additional code amending or replacing package build steps
+or the entire package build. Consult section [4.1](#41-build-steps) for a list
+of package build steps and how they are overriden.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 3.3. Addressing build failure"
+## 3.3. Addressing build failure
+
+During package build, standard error and output are redirected into a log file beneath
+``${BUILD_WORKDIR}`` named ``${PKG_NAME}_stderrout.log``, following a package variable
+dump. If ``-V build`` was specified, package logs will additionally be printed to standard
+output. If ``-V xtrace`` was specified, ``xtrace`` will be set during package builds for
+rudimentary debugging purposes. Additionally, packages using GNU autotools will, if
+package configuration failed or appears relevant, log the configuration process in detail
+in, most usually, ``${PKG_BUILD_DIR}/config.log``.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 3.4. Package archive files and Git repositories"
+### 3.4. Package archive files and Git repositories
+
+Packages may have either or both of a SHA-256 message digest checked and to be extracted tarball
+(set in ``${PKG_URL}``, ``${PKG_FNAME}``, and ``${PKG_SHA256SUM}``) and/or Git repository or set
+thereof (set in ``${PKG_URLS_GIT}``.) Complementing these, an implicitly inferred or, in the
+presence of both, explicit primary source directory is specified for each package in ``${PKG_SUBDIR}``.
+Furthermore, these may be subject to download caching and/or setting up as well as maintaining
+mirrors, including automatic cleanup as well as deduplication in both cases.
+
+A list of pertinent package variables and their formats follows:
+
+| Name | Format |
+| -------------- | ----------------------------------------------- |
+| PKG_FNAME | ``<single file name>`` |
+| PKG_SHA256SUM | ``<SHA-256 message digest>`` |
+| PKG_SUBDIR | ``<relative or single directory name>`` |
+| PKG_URL | ``scheme:[//authority]path[?query][#fragment]`` |
+| PKG_URLS_GIT | ``[subdir=]URL[@branch]`` |
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 3.5. Patches and ``vars`` files"
+## 3.5. Patches and ``vars`` files
+
+Package patches are applied prior and/or subsequent to (GNU autotools or similar) package
+configuration during the ``configure_patch_pre`` and/or ``configure_patch`` build steps,
+respectively (see section [4.1](#41-build-steps).) Patch files are searched for beneath
+``patches/`` with the following globs and in-order:
+* ``${PKG_NAME}-${PKG_VERSION}_pre.local.patch``
+ or ``${PKG_NAME}_pre.local.patch`` (for packages lacking ``${PKG_VERSION}``)
+* ``${PKG_NAME}-${PKG_VERSION}_pre.local@${BUILD_HNAME}.patch``
+ or ``${PKG_NAME}_pre.local@${BUILD_HNAME}.patch`` (for packages lacking ``${PKG_VERSION}``)
+* ``${PKG_NAME}/*.patch``
+* ``${PKG_NAME}-${PKG_VERSION}.local.patch``
+ or ``${PKG_NAME}.local.patch`` (for packages lacking ``${PKG_VERSION}``)
+* ``${PKG_NAME}-${PKG_VERSION}.local@${BUILD_HNAME}.patch``
+ or ``${PKG_NAME}.local@${BUILD_HNAME}.patch`` (for packages lacking ``${PKG_VERSION}``)
+* ``${PKG_PATCHES_EXTRA}`` (if set)
+
+If the default set of package build steps does not suffice, such as if additional commands
+must be executed after package configuration or prior to building, or if an entire or all
+build step must be replaced, overrides may be specified in the form of functions in the
+package's ``vars/${PKG_NAME}.vars`` as well as ``vars.<group name>/${PKG_NAME}.vars``
+``vars`` file(s). Consult section [4.1](#41-build-steps) for a list of package build steps
+and how they are overriden.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+
+[//]: # "{{{ 4. Reference"
+## 4. Reference
+[//]: # "}}}"
+[//]: # "{{{ 4.1. Build steps"
+## 4.1. Build steps
+
+Package builds are divided up into consecutively executed build steps until
+completion or aborted on failure unless relaxed mode is enabled by passing
+``-R``.
+
+Each build step corresponds to a function in the corresponding ``subr/pkg_*.subr``
+script and may be overriden entirely by a function named ``pkg_<package name>_<build step>()``
+or composed in terms of prior and/or subsequent execution by a function named
+``pkg_<package name>_<build step>_pre()`` and/or ``pkg_<package name>_<build step>_post()``,
+respectively, in the package's ``vars`` file. If a function named ``pkg_<package name>_all()``
+exists, it will override all build steps.
+
+Build step functions receive the following arguments in the order specified:
+
+| Name | Description |
+| ------------- | -------------------------------------------------------- |
+| \_group\_name | Package name |
+| \_pkg\_name | Group name |
+| \_restart\_at | Optional list of build steps to restart package build at |
+
+Build step status is tracked on a per-package basis by state files beneath
+``${BUILD_WORKDIR}`` following the format ``.<package name>.<build step>``;
+package build completion corresponds to the pseudo-build step ``finish``.
+
+| Name | Description |
+| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| fetch_clean | Delete and create ``${PKG_SUBDIR}`` |
+| fetch_download | Download package archive & verify w/ SHA-256 message digest and/or clone Git repository/ies |
+| fetch_extract | Extract package archive, if any |
+| configure_clean | Delete and create ``${PKG_BUILD_DIR}`` |
+| configure_patch_pre | Apply ``chainport`` patches and/or patches beneath ``patches/`` prior to (GNU autotools or similar) configuration |
+| configure_autotools | Bootstrap (GNU autools or similar) environment, and install ``config.sub`` and ``config.cache`` |
+| configure_patch | Apply patches beneath ``patches/`` and/or set in ``${PKG_PATCHES_EXTRA}`` after (GNU autotools or similar) configuration |
+| configure | Perform package (GNU autools or similar or CMake) configuration w/ configuration-time set of environment variables |
+| build_clean | Clean ``${PKG_BUILD_DIR}`` w/ ``make clean`` invocation |
+| build | Call ``make(1)`` w/ build-time set of make variables |
+| install_clean | Delete and create ``${PKG_DESTDIR}`` |
+| install_subdirs | Create default directory hierarchy in ``${PKG_DESTDIR}``, optionally amended w/ ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` |
+| install_make | Call ``make(1)`` w/ ``${PKG_INSTALL_TARGET}`` (defaults to ``install``) and installation-time set of make variables |
+| install_files | Install ``${PKG_INSTALL_FILES}`` and/or ``${PKG_INSTALL_FILES_V2}``, fix directory and file mode bits within ``${PKG_DESTDIR}`` and optionally ``${PKG_DESTDIR_HOST}``, ``pkgconf(1)`` package files, and/or stripped binaries within ``${PKG_DESTDIR}`` |
+| | Purge libtool ``.la`` files and install shared objects within ``${PKG_DESTDIR}`` w/ ``perk`` and corresponding symbolic links |
+| install | Install into ``${PKG_PREFIX}``, and optionally ``${PKG_DESTDIR_HOST}`` into ``${PREFIX}``, under mutex, and add package to ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` (unless inhibited) |
+| install_rpm | Build package RPM w/ auto-generated specifiation file based on ``etc/package.spec`` beneath ``${PREFIX_RPM}`` |
+| clean | Clean ``${PKG_BUILD_DIR}`` and/or ``${PKG_DESTDIR}`` and/or ``${PKG_DESTDIR_HOST}`` and/or ``${PKG_BASE_DIR}/${PKG_SUBDIR}`` as per ``-C build,dest,src``, resp., if any |
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.2. Build variables"
+## 4.2. Build variables
+
+The following variables are primarily defined in ``vars.env.d/*.env`` and may be
+overriden on a per-build basis on the command-line, the environment, and/or
+``${HOME}/midipix_build.vars``, ``${HOME}/.midipix_build.vars``, and/or
+``../midipix_build.vars``, e.g.:
+
+```shell
+./build.sh -a nt64 -b release -D minipix,zipdist -P -v PREFIX_ROOT="${HOME}/midipix_tmp"
+env ARCH=nt64 BUILD_KIND=release PREFIX_ROOT="${HOME}/midipix_tmp" ./build.sh -D minipix,zipdist -P -v
+```
+
+| Variable name | Default value | Description |
+| ---------------- | ------------------------------------ | ----------------------------------------------------------------------------- |
+| ARCH | nt64 | Target 32-bit (nt32) or 64-bit (nt64) architecture |
+| BUILD_DLCACHEDIR | ${PREFIX_ROOT}/dlcache | Absolute pathname to package downloads cache root directory |
+| BUILD_HNAME | $(hostname) | Build system hostname |
+| BUILD_KIND | debug | Build w/ debugging (debug) or release compiler flags |
+| PREFIX_LOCAL | ${PREFIX}/localcross | Absolute pathname to local cross-toolchain root directory |
+| BUILD_WORKDIR | ${PREFIX}/tmp | Absolute pathname to temporary package build root directory |
+| PREFIX | ${PREFIX_ROOT}/${ARCH}/${BUILD_KIND} | Absolute pathname to architecture- & build type-specific build root directory |
+| PREFIX_CROSS | ${PREFIX}/${DEFAULT_TARGET} | Absolute pathname to toolchain root directory |
+| PREFIX_MINGW32 | ${PREFIX}/x86_64-w64-mingw32 | Absolute pathname to MinGW toolchain root directory |
+| PREFIX_MINIPIX | ${PREFIX}/minipix | Absolute pathname to minipix distribution root directory |
+| PREFIX_NATIVE | ${PREFIX}/native | Absolute pathname to cross-compiled packages root directory |
+| PREFIX_ROOT | ${HOME}/midipix | Absolute pathname to top-level directory |
+| PREFIX_RPM | ${PREFIX}/rpm | Absolute pathname to package RPM archive root directory |
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.3. File installation DSL"
+## 4.3. File installation DSL
+
+File and directory installation, comprising e.g. copying, moving, creating
+symbolic links, setting owner and/or permission metadata, are expressed in
+a descriptive domain-specific language and integrated with package building
+via the package variable ``${PKG_INSTALL_FILES_V2}``, applying during
+``install_files`` after the ``install_make`` build step, and ``${PKG_INSTALL_FILES_DESTDIR}``
+and ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` during ``install_subdirs``. The
+``${PKG_INSTALL_FILES_V2}`` must adhere to the following syntax specified in EBNF:
+
+```
+(*
+SH_GLOB_PATTERN = any valid portable shell pattern (see sh(1)); superset of PATHNAME
+SH_SUBSTRING_PATTERN = any valid portable substring processing shell pattern (see sh(1));
+ superset of PATHNAME
+PARAMETER = any valid portable shell variable name except that [0-9] may occur
+ the beginning
+PATHNAME = any valid filename, directory name, relative or absolute pathname
+ excluding the characters NUL and NL
+ *)
+
+spec = { op_flag, } op_unary, "=", op_spec, "\n", { spec } ;
+ | { op_flag, } op_binary, op_spec, "=" op_spec, "\n", { spec } ;
+ | "#" COMMENT ;
+op_unary = "-" | "/" | "t" ;
+op_binary = ":" | "!" | "@" | "+" | "g" | "m" | "o" | "T" ;
+op_flag = "?" ;
+op_spec = pattern_spec | PATHNAME | expr_spec | op_spec ;
+
+pattern_spec = "%<", SH_GLOB_PATTERN, ">" ;
+
+expr_spec = "%[", expr, { sexpr_spec }, "%]" ;
+expr = [ "@" ], "0" .. "9" | "DNAME" | "FNAME" | "ITEM" | PARAMETER ;
+
+sexpr_spec = sexpr_op_unary, SH_SUBSTRING_PATTERN, { sexpr } ;
+sexpr_op_unary = "##" | "#" | "%%" | "%" ;
+```
+
+Single ``"="`` characters in ``spec``, the ``"%<"`` and ``"%["`` character
+sequences in ``pattern_spec`` and ``expr_spec``, resp., and the ``sexpr_op_unary``
+as well as ``sexpr_op_binary`` characters or character sequences may be
+escaped with a single backslash (``"\"``.) ``SH_SUBSTRING_PATTERN`` differs
+from ``SH_GLOB_PATTERN`` solely in that any of ``sexpr_op_unary`` and
+``sexpr_op_binary`` occuring at the beginning of or in the former must
+be escaped with a single backslash (``"\"``,) e.g. ``"#\#pattern"`` and
+``"%\%pattern"``, etc. and ``"#pat\%ern"`` and ``%patt\#ern", etc., resp.
+
+Named parameters (``PARAMETER``) are supplied via the ``-p name=value``
+argument to ``rtl_install()``, whereas numbered parameters are for
+internal usage only; the ``"DNAME"``, ``"FNAME"``, and ``"ITEM"`` parameters
+lazily evaluate to the directory name, file (aka base) name, and full
+pathname of the current item being processed relative to a specification
+with a pattern in it.
+
+The following parameters are defined by default during ``install_files``:
+
+| Name | Value |
+| ------------- | -------------------------------------- |
+| _builddir | ${PKG_BUILD_DIR} |
+| _destdir | ${PKG_BASE_DIR}/${PKG_DESTDIR} |
+| _destdir_host | ${PKG_BASE_DIR}/${PKG_DESTDIR_HOST} |
+| _files | ${MIDIPIX_BUILD_PWD}/files/${PKG_NAME} |
+| _name | ${PKG_NAME} |
+| _prefix | ${PKG_PREFIX} |
+| _prefix_host | ${PREFIX} |
+| _prefix_native | ${PREFIX_NATIVE} |
+| _subdir | ${PKG_BASE_DIR}/${PKG_SUBDIR} |
+| _target | ${PKG_TARGET} |
+| _version | ${PKG_VERSION:-} |
+| _workdir | ${BUILD_WORKDIR} |
+
+The following operation flags are defined:
+
+| Flag | Description |
+| --------- | ------------------------ |
+| ``?`` | Continue on soft failure |
+
+The following operations are defined:
+
+| Operation | Arity | Description |
+| -------------- | ------ | ---------------------------------------------------------------- |
+| ``-`` | Unary | Remove directories and/or files |
+| ``/`` | Unary | Create directories or trees thereof |
+| ``t`` | Unary | touch(1) files and/or directories |
+| ``:`` | Binary | Copy directories and/or files |
+| ``!`` | Binary | Move/rename directories and/or files |
+| ``@`` | Binary | Create/update symbolic links |
+| ``+`` | Binary | Copy directories and/or files if newer and follow symbolic links |
+| ``g`` | Binary | Set group owner of files and/or directories |
+| ``m`` | Binary | Set mode bits of files and/or directories |
+| ``o`` | Binary | Set user and/or group owner of files and/or directories |
+| ``T`` | Binary | touch(1) files and/or directories with timestamp |
+
+The following expression modifiers are defined:
+
+| Modifier | Description |
+| -------------- | ----------------------------------------- |
+| ``@`` | Recursively reevaluate after substituting |
+
+The following subexpression operators are defined:
+
+| Operation | Arity | Description |
+| -------------- | ------ | ---------------------------------------------------------------- |
+| ``##`` | Unary | Remove largest prefix from left-hand side |
+| ``#`` | Unary | Remove prefix from left-hand side |
+| ``%%`` | Unary | Remove largest postfix from right-hand side |
+| ``%`` | Unary | Remove postfix from right-hand side |
+
+```shell
+#
+# Examples:
+#
+
+#
+# Create directory %[_minipix]/bin and copy all files
+# in %[_minipix_dist]/bin/ to %[_minipix]/bin/ with
+# identical file names.
+/=%[_minipix]/bin
+?%[_minipix_dist]/bin/%<*>=%[_minipix]/bin/%[FNAME]
+
+#
+# Rename all files in share/info/ matching *.info to
+# their filenames with the `.info' postfix removed and
+# `-2.64.info' appended and all files in share/man/man1/
+# matching *.1 with the `.1' postfix removed and -2.64.1
+# appended.
+!share/info/%<*.info>=share/info/%[FNAME%.info]-2.64.info
+!share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.64.1
+
+#
+# Create/update symbolic links named include/ffi.h and
+# include/ffitarget.h with ../lib/libffi-3.2.1/include/ffi.h
+# and ../lib/libffi-3.2.1/include/ffitarget.h as targets, resp.
+@../lib/libffi-3.2.1/include/ffi.h=include/ffi.h
+@../lib/libffi-3.2.1/include/ffitarget.h=include/ffitarget.h
+
+#
+# Manual invocation:
+PKG_INSTALL_FILES_V2="
+ [ ... ]
+";
+rtl_install \
+ -p "_builddir=${PKG_BASE_DIR}/${PKG_BUILD_DIR}" \
+ -p "_minipix=${PREFIX_MINIPIX##*/}" \
+ -p "_minipix_dist=${PREFIX}/minipix_dist" \
+ -p "_native=${PREFIX_NATIVE##*/}" \
+ -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \
+ -p "_target=${PKG_TARGET}" \
+ -n -- "${PREFIX}" \
+ "${PKG_INSTALL_FILES_V2}"; then
+ return 1;
+fi;
+
+#
+# Usage screen:
+usage: rtl_install [-i] [-I ifs] [-n] [-p name=val] [-v] prefix spec_list
+ -i...........: continue on soft errors
+ -I ifs.......: process spec_list with ifs instead of NL
+ -n...........: perform dry run
+ -p name=val..: set named parameter
+ -v...........: increase verbosity
+ prefix.......: pathname prefix
+ spec_list....: ifs-separated list of specs
+```
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.4. Package variables"
+### 4.4. Package variables
+
+The following variables are package-specific and receive their value from either
+top-level defaults defined in ``vars.env.d/*.env``, build group-specific defaults from the
+build group the package pertains to and defined in its corresponding file beneath
+``groups.d/`` or ``groups.d/[0-9][0-9][0-9].<group name>.d/``, or package-specific overrides
+defined either in the latter and/or in its corresponding file beneath ``vars/``, with one of
+the following prefixes:
+
+| Variable name prefix |
+| ------------------------------------------------- |
+| DEFAULT |
+| DEFAULT_``${BUILD_TYPE}`` |
+| DEFAULT_``${GROUP_NAME}`` |
+| ``${GROUP_NAME}`` |
+| [PKG_``${RELATED_PACKAGE(S)}``] |
+| [PKG_``${RELATED_PACKAGE(S)}``_``${BUILD_KIND}``] |
+| PKG_``${NAME}`` |
+| PKG_``${NAME}``_``${BUILD_KIND}`` |
+
+Additionally, overrides may be specified on a per-build basis on the command-
+line, with each variable prefixed w/ ``PKG_``, e.g.:
+``./build.sh [ ... ] PKG_ZSH_CC="/usr/bin/clang"``.
+
+The minimum set of package variables that must be provided is ``SHA256SUM, URL,
+VERSION`` and/or ``URLS_GIT``, respectively.
+
+[//]: # "{{{ 4.4.1 Package variable types"
+## 4.4.1 Package variable types
+
+| Type definition | Description |
+| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
+| DirName(Abs) | Absolute pathname to directory |
+| DirName(Rel) | Relative pathname to director |
+| DirName(Unit) | Single non-{absolute,relative} directory nam |
+| DirName | Absolute or relative pathname to director |
+| CmdName | Absolute or relative pathname to comman |
+| FileName(Abs) | Absolute pathname to file |
+| FileName(Rel) | Relative pathname to file |
+| FileName(Unit) | Single non-{absolute,relative} file name |
+| FileName | Absolute or relative pathname to file |
+| Flag(<type>,<default>) | Boolean flag of type <type>, e.g. Flag(Boolean) (``true``, ``false``,) Flag(UInt) (0, 1,) Flag(ExitStatus) (>=1, 0) with default or ``auto`` |
+| FlagLine | String of {SP,VT}-separated flags, arguments, options, etc. pp. to a command |
+| List(<sep>[,<sep\|type>..]) | \<sep\>-separated list, optionally recursively and/or sub-typing, e.g.: ``List(:,=,String)`` and ``"name=value:name2=value"`` |
+| PkgName | Single name of package |
+| PkgRelation | Single, possibly parametrised, package-package relation; see section [3.5](#35-package-package-and-packagegroup-group-relationships) |
+| PkgVersion | Single version of package |
+| Set(<type>) | Set of alternatives of <type>, e.g. one of ``cross``, ``host``, ``native`` |
+| String | Semantically generic string |
+| URL | URL in standard format; see section [3.4](#34-package-archive-files-and-git-repositories) |
+| URL(Git) | Git URL in the format ``[subdir=]URL[@branch]``; see section [3.4](#34-package-archive-files-and-git-repositories) |
+
+[//]: # "}}}"
+[//]: # "{{{ 4.4.2 Package variables"
+## 4.4.2 Package variables
+
+| Package variable name | Type | Description |
+| ---------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| AR | CmdName | Toolchain library archive editor ``ar(1)`` |
+| AUTOCONF_CONFIG_GUESS | String | Either of ``copy`` (copy ``config.guess`` from ``etc/config.guess``) or ``keep``; defaults to ``copy`` |
+| BASE_DIR | DirName(Abs) | Package build root directory beneath ``${BUILD_WORKDIR}`` |
+| BUILD_DIR | DirName(Unit) | Package build directory beneath ``${PKG_BASE_DIR}`` |
+| BUILD_STEPS_DISABLE | List( ) | Build steps to disable during package build |
+| BUILD_TYPE | Set(String) | ``cross``: Cross-compiled toolchain, ``host``: host, ``native``: cross-compiled package |
+| CC | FileName | Toolchain C compiler ``cc(1)`` |
+| CCLD | FileName | Toolchain C compiler-qua-linker ``cc(1)`` |
+| CFLAGS_BUILD_EXTRA | FlagLine | Additional C compiler flags during package ``make(1)`` build |
+| CFLAGS_BUILD | FlagLine | C compiler flags during package ``make(1)`` build |
+| CFLAGS_CONFIGURE_EXTRA | FlagLine | Additional C compiler flags during package (GNU autotools in implementation and/or interface) configuration |
+| CFLAGS_CONFIGURE | FlagLine | C compiler flags during package (GNU autotools in implementation and/or interface) configuration |
+| CMAKE_ARGS_EXTRA | FlagLine | Additional arguments to ``cmake(1)`` |
+| CMAKE_ARGS | FlagLine | Arguments to ``cmake(1)`` |
+| CMAKE | CmdName | ``cmake(1)`` executable |
+| CMAKE_LISTFILE | FileName | ``cmake(1)`` listfile |
+| CONFIG_CACHE_EXTRA | List(\n) | Additional GNU autotools configuration cache variables |
+| CONFIG_CACHE | List(\n) | GNU autotools configuration cache variables |
+| CONFIG_CACHE_LOCAL | List(\n) | Additional GNU autotools configuration cache variables |
+| CONFIGURE_ARGS | FlagLine | Arguments to package (GNU autotools in implementation and/or interface) configuration script |
+| CONFIGURE_ARGS_EXTRA | FlagLine | Additional arguments to package (GNU autotools in implementation and/or interface) configuration script |
+| CONFIGURE_ARGS_LIST | List(:) | Arguments to package (GNU autotools in implementation and/or interface) configuration script |
+| CONFIGURE_ARGS_EXTRA_LIST | List(:) | Additional arguments to package (GNU autotools in implementation and/or interface) configuration script |
+| CONFIGURE | CmdName | Package's (GNU autotools in implementation and/or interface) configuration script |
+| CONFIGURE_TYPE | String | Either of ``autotools`` (GNU autotools or similar) or ``sofort`` or ``cmake`` (CMake) |
+| CPPFLAGS_CONFIGURE_EXTRA | FlagLine | Additional C preprocessor flags during package (GNU autotools in implementation and/or interface) configuration |
+| CXX | CmdName | Toolchain C++ compiler ``c++(1)`` |
+| CXXFLAGS_CONFIGURE_EXTRA | FlagLine | Additional C++ compiler flags during package (GNU autotools in implementation and/or interface) configuration |
+| CXXFLAGS_CONFIGURE | FlagLine | C++ compiler flags during package (GNU autotools in implementation and/or interface) configuration |
+| DEPENDS | List( ) | Mandatory package-package dependencies |
+| DESTDIR | DirName(Unit) | Package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| DESTDIR_HOST | DirName(Unit) | Optional host package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| DISABLED | Flag(UInt,0) | Disable package |
+| ENV_VARS_EXTRA | List(:,=) | Name-value pairs of environment variables to set during package build |
+| FNAME | FileName(Unit) | Filename of package archive file |
+| FORCE_AUTORECONF | Flag(UInt,0) | Forcibly run ``autoreconf -fiv`` prior to package (GNU autotools in implementation and/or interface) configuration |
+| GITROOT | URL | midipix packages Git URL prefix |
+| INHERIT_FROM | String | Inherit variables from named package |
+| INSTALL_FILES_DESTDIR_EXTRA | List( ) | Additional files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
+| INSTALL_FILES_DESTDIR | List( ) | Files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
+| INSTALL_FILES | List( ) | Files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| INSTALL_FILES_V2 | List( ) | Files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| INSTALL_TARGET_EXTRA | String | Additional name of package build ``make(1)`` installation target |
+| INSTALL_TARGET | String | Name of package build ``make(1)`` installation target |
+| IN_TREE | Flag(UInt,auto) | Build package in-tree within ``${PKG_SUBDIR}`` |
+| LDFLAGS_BUILD_EXTRA | FlagLine | Additional linker flags during package ``make(1)`` build |
+| LDFLAGS_CONFIGURE_EXTRA | FlagLine | Additional linker flags during package (GNU autotools in implementation and/or interface) configuration |
+| LDFLAGS_CONFIGURE | FlagLine | Linker flags during package (GNU autotools in implementation and/or interface) configuration |
+| LIBTOOL | CmdName | ``libtool(1)`` implementation (defaults to ``slibtool``) |
+| MAKE | CmdLine | Command line of ``make(1)`` |
+| MAKEFLAGS_BUILD | FlagLine | ``make(1)`` flags during package ``make(1)`` build; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_BUILD_EXTRA | FlagLine | Additional ``make(1)`` flags during package ``make(1)`` build; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_BUILD_LIST | List(:) | ``make(1)`` flags during package ``make(1)`` build; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_BUILD_EXTRA_LIST | List(:) | Additional ``make(1)`` flags during package ``make(1)`` build; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_INSTALL | FlagLine | ``make(1)`` flags during package ``make(1)`` installation; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_INSTALL_EXTRA | FlagLine | ``make(1)`` flags during package ``make(1)`` installation; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_INSTALL_LIST | List(:) | ``make(1)`` flags during package ``make(1)`` installation; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_INSTALL_EXTRA_LIST | List(:) | ``make(1)`` flags during package ``make(1)`` installation; subject to field splitting w/ ``:`` |
+| MAKEFLAGS_LOADAVG | FlagLine | ``make(1)`` load average limit (e.g. -l load) flag |
+| MAKEFLAGS_PARALLELISE | FlagLine | ``make(1)`` parallelisation (e.g. -j jobs) flag |
+| MAKEFLAGS_VERBOSITY | String | Variable-value pair to pass to ``make(1)`` in order to force echo-back of command lines prior to execution |
+| MAKE_INSTALL_VNAME | String | Variable name of ``make(1)`` installation destination directory variable during package ``make(1)`` installation |
+| MAKE_SUBDIRS | List( ) | ``make(1)`` subdirectories to exclusively build |
+| MIRRORS_GIT | List( ) | Package Git repository mirror base URLs to attempt cloning from; cf. ``pkgtool.sh -m <dname>`` |
+| MIRRORS | List( ) | Package archive mirror base URLs to attempt downloading from; cf. ``pkgtool.sh -m <dname>`` |
+| NO_CLEAN_BASE_DIR | Flag(UInt,0) | Inhibit cleaning of package build root directory beneath ``${BUILD_WORKDIR}`` |
+| NO_CLEAN | Flag(UInt,0) | Inhibit cleaning of package build directory beneath ``${PKG_BASE_DIR}`` pre-finish |
+| NO_LOG_VARS | Flag(UInt,0) | Inhibit logging of build & package variables pre-package build |
+| NO_PURGE_LA_FILES | Flag(UInt,0) | Inhibit purging of .la files |
+| PATCHES_EXTRA | List( ) | Additional patches to apply |
+| PKG_CONFIG | CmdName | ``pkg-config(1)`` implementation |
+| PKG_CONFIG_LIBDIR | DirName | ``pkg-config(1)`` search directory |
+| PKGLIST_DISABLE | Flag(UInt,0) | Inhibit inclusion into ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` |
+| PREFIX | DirName(Abs) | Top-level installation directory and package search path |
+| PYTHON | CmdName | Python >=3.x interpreter |
+| RANLIB | CmdName | Toolchain library archive index generator ``ranlib(1)`` |
+| RELATES | Set(PkgRelation) | Package-package relationships |
+| RPM_DISABLE | Flag(UInt,0) | Inhibit creation of RPM archive |
+| SHA256SUM | String | SHA-256 message digest of package archive |
+| SOFORT_NATIVE_CC | FileName | ``sofort`` variable during ``native`` build: Toolchain C compiler ``cc(1)`` |
+| SOFORT_NATIVE_CFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional C compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CFLAGS | FlagLine | ``sofort`` variable during ``native`` build: C compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CXXFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional list of C++ compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CXXFLAGS | FlagLine | ``sofort`` variable during ``native`` build: List of C++ compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CXX | FlagLine | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C++ compiler ``c++(1)`` |
+| SOFORT_NATIVE_LDFLAGS_EXTRA | FlagLine | ``sofort`` variable during ``native`` build: Additional linker flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_LDFLAGS | FlagLine | ``sofort`` variable during ``native`` build: Linker flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_LD | FileName | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C compiler ``cc(1)`` |
+| SUBDIR | DirName(Rel) | Extracted archive or git-{clone,pull}(1)'d directory |
+| TARGET | String | Dash-separated {build,host,target} triplet |
+| URL | List( ,URL) | URL to package archives w/ optional alternatives; see section [3.4](#34-package-archive-files-and-git-repositories) |
+| URLS_GIT | List( ,URL(Git)) | Package Git URL(s) (format: ``[subdir=]URL[@branch]``, see section [3.4](#34-package-archive-files-and-git-repositories)) |
+| VARS_FILE | FileName | Optional package variables file (defaults to ``vars/${PKG_NAME}.vars``) |
+| VERSION | PkgVersion | Package version |
+
+[//]: # "}}}"
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.5. Fault-tolerant & highly optimised 3D laser show-equipped usage screen"
+## 4.5. Fault-tolerant & highly optimised 3D laser show-equipped usage screen
+
+```
+usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[,..]]
+ [-F ipv4|ipv6|offline] [-h|--help] [-p jobs|-P] [-r ALL|LAST]
+ [-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]] [-R]
+ [-v] [-V [+]tag|pat[,..]]
+
+ [--as-needed] [--debug-minipix] [--reset-state] [--roar]
+ [--theme theme]
+ [[=]<group[,..][ ..]>|<variable name>=<variable override>[ ..]]
+
+ -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
+ -b debug|release Selects debug or release build kind; defaults to debug.
+ -C dir[,..] Clean build directory (build,) ${PREFIX} before processing build
+ scripts (prefix,) source directory (src,) and/or destination
+ directory (dest) after successful package builds.
+ -D kind[,..] Produce minimal midipix distribution directory (minipix,) RPM
+ binary packages (rpm,) and/or deployable distribution ZIP
+ archive (zipdist.) zipdist implies minipix.
+ -F ipv4|ipv6|offline
+ Force IPv4 (ipv4) or IPv6 (ipv6) when downloading package
+ archives and/or Git repositories or don't download either at all
+ (offline.)
+ -h|--help Show short/full help screen, respectively.
+ -p jobs|-P Enables parallelisation at group-level, whenever applicable.
+ The maximum count of jobs defaults to the number of logical
+ processors on the host system divided by two (2.)
+
+ If -R is not specified and at least one (1) package fails to
+ build, all remaining package builds will be forcibly aborted.
+
+ -r ALL|LAST Restart all packages or the last failed package and resume
+ build, resp.
+ -r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]
+ Restart the specified comma-separated package(s) w/ inhibition
+ of package build step state resetting completely (`ALL',) starting
+ at the resp. last successfully executed build steps (`LAST',) or the
+ specified comma-separated list of build steps, optionally subject
+ concerning package name(s) and/or build step(s) to the below modifiers:
+
+ Prepend name w/ `*' to automatically include dependencies, `**'
+ to forcibly rebuild all dependencies, and `***' to forcibly
+ rebuild all packages that depend on the specified package(s).
+
+ Prepend step w/ `^' to filter build steps with, `<' or `<='
+ to constrain build steps to below or below or equal with, resp.,
+ `>' or `>=' to constrain build steps to above or above or equal
+ with, resp.
+
+ Currently defined build steps are:
+ fetch_clean, fetch_download, fetch_extract, configure_clean,
+ configure_patch_pre, configure_autotools, configure_patch,
+ configure, build_clean, build, install_clean, install_subdirs,
+ install_make, install_files, install, install_rpm,
+ and clean.
+
+ Additionally, the following virtual steps are provided:
+ @fetch, @configure, @build, @install, @clean, and finish.
+
+ -R Ignore build failures, skip printing package logs, and continue
+ building (relaxed mode.)
+
+ -v Increase logging verbosity.
+ -V [+]tag|pat[,..] Enable logging for messages with tag or pattern matching tags of:
+ + (prefix)..: initialise tags with normal verbosity (implies normal) (see etc/build.theme,)
+ all.........: log everything (see etc/build.theme,)
+ clear|none..: log nothing,
+ normal......: log at normal verbosity (see etc/build.theme,)
+ verbose.....: log at increased verbosity (implies normal) (see etc/build.theme) (-v,)
+
+ build.......: log package build logs,
+ fileops.....: log RTL file operations,
+ install.....: log RTL installation DSL operations,
+ zipdist.....: log deployable distribution ZIP archive operations,
+ xtrace......: set xtrace during package builds,
+
+ fatal.......: fatal, unrecoverable errors,
+ info........: informational messages,
+ verbose.....: verbose informational messages,
+ warning.....: warning messages possibly relating to imminent fatal, unrecoverable errors,
+
+ build_*.....: general build messages (viz.: begin, finish, finish_time, vars,)
+ group_*.....: build group messages (viz.: begin, finish,)
+ pkg_*.......: package build messages (viz.: begin, finish, msg, skip, step, strip.)
+
+ --as-needed Don't build unless the midipix_build repository has received
+ new commits.
+ --debug-minipix Don't strip(1) minipix binaries to facilitate debugging minipix.
+ --reset-state Reset package build step state on exit.
+ --theme theme Set theme.
+
+ <group>[,..][ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
+ host_toolchain, host_tools, minipix, native_packages,
+ native_runtime, native_toolchain, native_tools.
+
+ Prepend w/ `=' to inhibit group-group dependency expansion.
+
+ <variable name>=<variable override>[ ..]
+ Override build or package variable.
+```
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.6. ``pkgtool.sh``"
+## 4.6. ``pkgtool.sh``
+
+```
+usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-t]
+ [--theme theme] [-v]
+ [<variable name>=<variable override>[ ..]] name[,name..]
+
+ -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
+ -b debug|release Selects debug or release build kind; defaults to debug.
+ -e Edit package group file of single named package with ${EDITOR}.
+ -f List files installed by single package.
+ -i List package variables and dependencies of named package(s).
+ -m <dname> Setup package archives mirror in <dname> and/or
+ -M <dname> Setup Git repositories mirror in <dname>
+ Specify "" or '' as <dname> to default to the defaults in
+ ${HOME}/pkgtool.vars, if present.
+ -p <log_fname> Profile last build.
+ -r List recursive reverse dependencies of single named package.
+ -t Produce tarball of package build root directory and build log
+ file for the purpose of distribution given build failure.
+ -v Increase verbosity.
+
+ <variable name>=<variable override>[ ..]
+ Override build or package variable.
+```
+
+> N.B. When using ``pkgtool.sh`` on a build w/ build variables (see section [4.2](#42-build-variables))
+overriden on the command line or via the environment, ensure that they are included in the
+``pkgtool.sh`` command line, preceding the package name, or exported, respectively.
+
+> N.B. ``pkgtool.sh`` will source the ``${HOME}/pkgtool.vars`` file, if present, on startup where the
+following option arguments may be set: ``-a nt32|nt64`` by setting ``ARCH=...``, ``-b debug|release``
+by setting ``BUILD_KIND=...``, ``-m <dname>`` by setting ``ARG_MIRROR_DNAME=...``, and ``-M <dname>``
+by setting ``ARG_MIRROR_DNAME_GIT=...``.
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+[//]: # "{{{ 4.7. Bourne shell coding rules"
+## 4.7. Bourne shell coding rules
+
+> N.B. Input sanitisation is mandatory whenever input may form part of a parameter name, most usually
+when indexing with input as a key into a (pseudo-)hash, e.g. PKG_ZSH_<...input...>; failing to do so
+may introduce security vulnerabilities (e.g.: $(arbitrary_command) and ${arbitrary_variable} facilitating
+code execution and information disclosure, resp.)
+Do not use this code and these coding rules if this is not possible or impractical.
+
+*(reproduced from &lbrack;[shrtl](https://github.com/lalbornoz/shrtl/blob/master/README.md)&rbrack;)*
+
+If no rationale is specified for any specific point, the rationale is avoidance of undefined behaviour
+and/or implicit behaviour contingent on often subtle special cases, both of which are prone to cause
+hard to debug or even diagnose bugs.
+
+### Shell options
+
+1) The `noglob` option is set at all times *except* for when globbing is required, e.g.:
+ `set +o noglob; files=*; set -o noglob`
+2) The `nounset` option is set at all times; if a parameter is to be expanded that may be
+ unset, use the `${parameter:-word}` expansion format.
+3) The `errexit` option is unset at all times *except* for top-level subshell code that does
+ *not* engage in conditional evaluation, e.g. `([...] set -o errexit; [...]) &` due to its
+ implicit unsetting when a/any function is subject to conditional evaluation, e.g.: `[...]
+ set -o errexit; [...] if some_function; then [ ... ] fi`
+
+### Quoting and brace-enclosing
+
+4) Quoting with single quotes or double quotes is mandatory at all times *except* for when field
+ splitting subsequent to parameter expansion, etc. is required, e.g.: `params="a b c";
+ param="single parameter"; fn ${params} "${param}"`
+5) Enclosing parameter names in braces is mandatory at all times, e.g.: `${parameter_name123}`
+
+### Checking parameter status
+
+6) Checking for whether a parameter is set/non-empty or unset/empty is expressed with the following
+ the idiom: `[ "${parameter:+1}" = 1 ]` and `[ "${parameter:+1}" != 1 ]`
+
+ This is necessary to avoid the potentially costly expansion of a parameter's value when only its
+ status of being set/non-empty or unset/empty is of concern, particularly when this is done repeatedly.
+
+### Functions
+
+7) Functions must explicitly return either `0` or `1` at all times *except* for when specific
+ return exit statuses are specified according to the function's interface contract.
+8) Function names must have namespace prefixes followed by a `p` in the topmost namespace prefix
+ field in private functions, e.g.: `rtlp_log_do_something() { [...] }`
+9) The non-POSIX but extremely widely available `local` command must be used at at all times
+ in functions on all function-local variables.
+
+ This is necessary in order to avoid polluting the (global) parameter namespace.
+10) Function-local variables must be lower case and prefixed with a `_`, a prefix comprised of the
+ initial letters of each word in the function's name plus, in private functions, the `p` topmost
+ namespace prefix field postfix, and a `_`, where words are separated by `_` characters, e.g.:
+ `rtlp_log_do_something() { local _rplds_parameter=""; [...] }` and `ex_something() {
+ local _es_parameter=""; [ ...] }`
+
+ This is necessary in order to prevent implicit conflicts between two or more functions that share
+ a call path and would otherwise use the same variables names, such as `function1() { local
+ list="${1}"; function2 "${list}"; }; function2() { local list="${2}"; }`, particularly when those
+ functions acess and/or mutate each other's variables. Additionally, local variables are thus marked
+ with a `_` prefix and by being lower case.
+
+### `eval` rules
+
+11) The following special characters must be escaped with a backslash at all times in `eval`
+ expressions: `<newline>`, `"`, `'`, `[`, `\`, `]`, `<backtick>`, `$`
+12) If parameter expansion is to be evaluated with respect to a parameter reference, the following idiom
+ must be used at all times: `eval [...]\${${rparameter[...]}}`
+13) If quoting with single quotes or double quotes is required - see 4) - or brace-enclosing - see 5) -
+ and with respect to 11), viz. the single quotes or double quotes have been escaped with a backslash,
+ something must be evaluated as a single field, then that field must be doubly quoted with single or
+ double quotes, where the second set of quotes must not be escaped with a backslash, e.g.: `
+ rparameter=parameter; eval ${rparameter}="\"a b c\""`.
+ This is very rarely required.
+
+### Passing arguments
+
+14) The `fork/exec/write`-`read` pattern where a parameter is set to the result of a command
+ substitution expression which is executed in a subshell process, e.g.: `parameter="$(function)"`
+ is prohibited at all times *except* when an actual external command is invoked, e.g. `sort(1)`
+ or `sed(1)`.
+
+ This is necessary due to the very significant cost of the mentioned pattern, particularly concerning
+ primitive e.g. list or string processing functions with high contention.
+15) If a function is to return, produce, evaluate to, etc. an arbitrary value apart from the exit status,
+ it shall do so by receiving references to the target variables in the callers' scope from the caller
+ prefixed with a single `$` character, e.g. `function \$parameter` and `function() {
+ local _fn_rparameter="${1#\$}"; [..]; }` which are then set with `eval` expressions: `
+ function() { local _fn_rparameter="${1#\$}"; [...]; eval ${_fn_rparameter}=\'a b c\'; };` Refer to
+ 11)-13) for the rules concerning `eval`.
+
+ This is necessary due to 14) as well as the absence of any other calling convention other than using
+ implicit global variables, e.g.: `function1() { VARIABLE=; function2; }; function2() { VARIABLE=1;
+ }`
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+
+[//]: # "{{{ 5. References"
+## 5. References
+
+* ``Sun, 25 Apr 2016 09:04:08 +0000 [1]``<a href="https://www.musl-libc.org/faq.html" id="r1">musl FAQ</a>
+* ``Wed, 04 Mar 2020 13:36:19 +0000 [2]``<a href="https://midipix.org/#sec-midipix" id="r2">midipix - what is midipix, and how is it different?</a>
+* ``Wed, 29 Apr 2020 23:33:34 +0100 [3]``<a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment" id="r3">User Rights Assignment (Windows 10) - Windows security | Microsoft Docs</a>
+* ``Wed, 29 Apr 2020 23:33:50 +0100 [4]``<a href="https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/bb530410%28v%3dmsdn%2e10%29" id="r4">Windows Vista Application Development Requirements for User Account Control Compatibility | Microsoft Docs</a>
+
+[Back to top](#table-of-contents)
+
+[//]: # "}}}"
+
+[modeline]: # ( vim: set tw=0: )
diff --git a/etc/build.msgs.en b/etc/build.msgs.en
index 59578e1a..30545eb2 100644
--- a/etc/build.msgs.en
+++ b/etc/build.msgs.en
@@ -6,20 +6,19 @@ MSG_build_aborted="0;Build aborted.";
MSG_build_begin="3;Build started by %s@%s at %s.";
MSG_build_clean_prefix="0;-C prefix specified, cleaning prefix...";
MSG_build_failed_in="2;Build failed in \`%s', check \`%s' for details.";
-MSG_build_finish="3;%s finished, %s skipped, and %s failed package(s).";
+MSG_build_finish="4;%s finished, %s skipped, %s disabled, and %s failed package(s).";
MSG_build_finish_time="3;Build time: %s hour(s), %s minute(s), and %s second(s).";
MSG_build_killed_pids="1;Killed PID(s): %s";
MSG_build_reset_pkg_state="1;Reset package state for: %s";
MSG_build_resolved_deps="1;Resolved \`%s' dependencies.";
MSG_build_resolving_deps="1;Resolving \`%s' dependencies...";
-MSG_build_unknown_dep="2;Error: dependency \`%s' of \`%s' unknown.";
+MSG_build_unknown_dep="2;Warning: dependency \`%s' of \`%s' unknown.";
+MSG_build_unknown_deps="0;Warning: packages with unknown dependencies.";
MSG_group_begin="4;[%3d%% ] [%03d/%03d] Starting \`%s' build group...";
MSG_group_finish="4;[%3d%% ] [%03d/%03d] Finished \`%s' build group.";
MSG_pkg_begin="5;[%3d%%/%3d%%] [%03d/%03d] Starting \`%s' build...";
-MSG_pkg_faildump1="2;Logged environment dump for failed package \`%s' to \`%s'.";
-MSG_pkg_faildump2="4;Enter an interactive package build shell w/ the command line: ./pkgtool.sh -a %s -b %s \"%s\" PREFIX=\"%s\"";
MSG_pkg_fail_missing_vars="Error: \${PKG_SUBDIR} must be specified given both \${PKG_FNAME} and \${PKG_URLS_GIT}.";
MSG_pkg_finish="5;[%3d%%/%3d%%] [%03d/%03d] Finished \`%s' build.";
MSG_pkg_msg="3;%s/%s: %s";
@@ -28,7 +27,7 @@ MSG_pkg_skip_finished="1;Skipping finished package \`%s'.";
MSG_pkg_skip_unknown="1;Error: unknown package \`%s'.";
MSG_pkg_stderrout_log="2;%s/%s_stderrout.log:";
MSG_pkg_step="2;Finished build step %s of package \`%s'.";
-MSG_pkg_strip="1;Stripping %s...";
+MSG_pkg_strip="1;Stripped %s";
MSG_zipdist_begin="0;Building deployable distribution ZIP archive...";
MSG_zipdist_finished="0;Finished building deployable distribution ZIP archive.";
diff --git a/etc/build.theme b/etc/build.theme
index fb52fc3a..d472e2cd 100644
--- a/etc/build.theme
+++ b/etc/build.theme
@@ -35,50 +35,67 @@
#
# Tag sets
#
-LOG_TAGS_all="build,fileop,install,zipdist,xtrace,fatal,info,verbose,warning,build_begin,build_finish,build_finish_time,build_vars,group_begin,group_finish,pkg_begin,pkg_faildump,pkg_finish,pkg_msg,pkg_skip,pkg_step,pkg_strip";
-LOG_TAGS_normal="fatal,info,warning,build_begin,build_finish,build_finish_time,pkg_begin,pkg_faildump,pkg_finish,pkg_msg";
+LOG_TAGS_all="build,fileop,install,zipdist,xtrace,fatal,info,verbose,warning,build_begin,build_finish,build_finish_time,build_vars,group_begin,group_finish,pkg_begin,pkg_finish,pkg_msg,pkg_skip,pkg_step,pkg_strip";
+LOG_TAGS_normal="fatal,info,warning,build_begin,build_finish,build_finish_time,pkg_begin,pkg_finish,pkg_msg";
LOG_TAGS_verbose="${LOG_TAGS_normal:+${LOG_TAGS_normal},}zipdist,verbose,build_vars,group_begin,group_finish,pkg_skip,pkg_step,pkg_strip";
#
# Subsystem tags
#
-LOG_TAG_build=""; # (UNUSED)
-LOG_TAG_fileop=36; # Cyan
-LOG_TAG_install=36; # Cyan
-LOG_TAG_zipdist=93; # Bright yellow
-LOG_TAG_xtrace=""; # (UNUSED)
+LOG_TAG_build=""; # (UNUSED)
+LOG_TAG_fileop=36; # Cyan
+LOG_TAG_install=36; # Cyan
+LOG_TAG_zipdist=93; # Bright yellow
+LOG_TAG_xtrace=""; # (UNUSED)
#
# General level tags
#
-LOG_TAG_fatal=91; # Bright red
-LOG_TAG_info=93; # Bright yellow
-LOG_TAG_verbose=96; # Bright cyan
-LOG_TAG_warning=31; # Dark red
+LOG_TAG_fatal=91; # Bright red
+LOG_TAG_info=93; # Bright yellow
+LOG_TAG_verbose=96; # Bright cyan
+LOG_TAG_warning=31; # Dark red
#
# General build tags
#
-LOG_TAG_build_begin="4;93"; # Underline; Bright yellow
-LOG_TAG_build_finish="4;93"; # Underline; Bright yellow
-LOG_TAG_build_finish_time="4;93"; # Underline; Bright yellow
-LOG_TAG_build_vars="33"; # Dark yellow
+LOG_TAG_build_begin="4;93"; # Underline; Bright yellow
+LOG_TAG_build_finish="4;93"; # Underline; Bright yellow
+LOG_TAG_build_finish_time="4;93"; # Underline; Bright yellow
+LOG_TAG_build_vars="33"; # Dark yellow
+LOG_TAG_build_vars_even_256="38;5;215"; # RGB #ffaf5f
+LOG_TAG_build_vars_odd_256="38;5;214"; # RGB #ffaf00
#
# Build group tags
#
-LOG_TAG_group_begin="4;93"; # Underline; Bright yellow
-LOG_TAG_group_finish="4;92"; # Underline; Bright green
+LOG_TAG_group_begin="4;93"; # Underline; Bright yellow
+LOG_TAG_group_begin_even_256="4;38;5;228"; # Underline; RGB #ffff87
+LOG_TAG_group_begin_odd_256="4;38;5;226"; # Underline; RGB #ffff00
+LOG_TAG_group_finish="4;92"; # Underline; Bright green
+LOG_TAG_group_finish_even_256="4;38;5;121"; # Underline; RGB #87ffaf
+LOG_TAG_group_finish_odd_256="4;38;5;118"; # Underline; RGB #87ff00
#
# Package build tags
#
-LOG_TAG_pkg_begin=93; # Bright yellow
-LOG_TAG_pkg_faildump=93; # Bright yellow
-LOG_TAG_pkg_finish=92; # Bright green
-LOG_TAG_pkg_msg=90; # Dark grey
-LOG_TAG_pkg_skip=36; # Cyan
-LOG_TAG_pkg_step=90; # Dark grey
-LOG_TAG_pkg_strip=93; # Bright yellow
+LOG_TAG_pkg_begin_even=93; # Bright yellow
+LOG_TAG_pkg_begin_odd=93; # Bright yellow
+LOG_TAG_pkg_begin_even_256="38;5;220"; # RGB #ffd700
+LOG_TAG_pkg_begin_odd_256="38;5;214"; # RGB #ffaf00
+LOG_TAG_pkg_finish_even=92; # Bright green
+LOG_TAG_pkg_finish_odd=92; # Bright green
+LOG_TAG_pkg_finish_even_256="38;5;154"; # RGB #afff00
+LOG_TAG_pkg_finish_odd_256="38;5;148"; # RGB #afd700
+LOG_TAG_pkg_msg=90; # Dark grey
+LOG_TAG_pkg_skip_even=36; # Cyan
+LOG_TAG_pkg_skip_odd=36; # Cyan
+LOG_TAG_pkg_skip_even_256="38;5;117"; # RGB #87d7ff
+LOG_TAG_pkg_skip_odd_256="38;5;123"; # RGB #87ffff
+LOG_TAG_pkg_step_even=90; # Dark grey
+LOG_TAG_pkg_step_odd=90; # Dark grey
+LOG_TAG_pkg_step_even_256="38;5;242"; # RGB #6c6c6c
+LOG_TAG_pkg_step_odd_256="38;5;240"; # RGB #585858
+LOG_TAG_pkg_strip=93; # Bright yellow
# vim:foldmethod=marker ft=sh
diff --git a/etc/build.trans.theme b/etc/build.trans.theme
new file mode 100644
index 00000000..2eb07ef5
--- /dev/null
+++ b/etc/build.trans.theme
@@ -0,0 +1,104 @@
+#
+# Theme file for build.sh
+#
+
+#
+# {{{ ANSI attributes reference
+#
+# Attribute Name Note
+# 0 Reset or normal All attributes off
+# 1 Bold or increased intensity As with faint, the color change is a PC (SCO / CGA) invention.[30][better source needed]
+# 2 Faint, decreased intensity, or dim May be implemented as a light font weight like bold.[31]
+# 4 Underline Style extensions exist for Kitty, VTE, mintty and iTerm2.[32][33]
+# 7 Reverse video or invert Swap foreground and background colors; inconsistent emulation[34]
+#
+# FG BG Colour name
+# 30 40 Black
+# 31 41 Red
+# 32 42 Green
+# 33 43 Yellow
+# 34 44 Blue
+# 35 45 Magenta
+# 36 46 Cyan
+# 37 47 White
+# 90 100 Bright Black (Gray)
+# 91 101 Bright Red
+# 92 102 Bright Green
+# 93 103 Bright Yellow
+# 94 104 Bright Blue
+# 95 105 Bright Magenta
+# 96 106 Bright Cyan
+# 97 107 Bright White
+# }}}
+#
+
+#
+# Tag sets
+#
+LOG_TAGS_all="build,fileop,install,zipdist,xtrace,fatal,info,verbose,warning,build_begin,build_finish,build_finish_time,build_vars,group_begin,group_finish,pkg_begin,pkg_finish,pkg_msg,pkg_skip,pkg_step,pkg_strip";
+LOG_TAGS_normal="fatal,info,warning,build_begin,build_finish,build_finish_time,pkg_begin,pkg_finish,pkg_msg";
+LOG_TAGS_verbose="${LOG_TAGS_normal:+${LOG_TAGS_normal},}zipdist,verbose,build_vars,group_begin,group_finish,pkg_skip,pkg_step,pkg_strip";
+
+#
+# Subsystem tags
+#
+LOG_TAG_build=""; # (UNUSED)
+LOG_TAG_fileop=36; # Cyan
+LOG_TAG_install=36; # Cyan
+LOG_TAG_zipdist=93; # Bright yellow
+LOG_TAG_xtrace=""; # (UNUSED)
+
+#
+# General level tags
+#
+LOG_TAG_fatal=91; # Bright red
+LOG_TAG_info=93; # Bright yellow
+LOG_TAG_verbose=96; # Bright cyan
+LOG_TAG_warning=31; # Dark red
+
+#
+# General build tags
+#
+LOG_TAG_build_begin="4;93"; # Underline; Bright yellow
+LOG_TAG_build_begin_256="4;38;5;219"; # Underline; RGB #ffafff
+LOG_TAG_build_finish="4;93"; # Underline; Bright yellow
+LOG_TAG_build_finish_256="4;38;5;51"; # Underline; RGB #00ffff
+LOG_TAG_build_finish_time="4;93"; # Underline; Bright yellow
+LOG_TAG_build_finish_time_256="4;38;5;50"; # Underline; RGB #00ffd7
+LOG_TAG_build_vars="33"; # Dark yellow
+LOG_TAG_build_vars_even_256="38;5;93"; # RGB #8700ff
+LOG_TAG_build_vars_odd_256="38;5;92"; # RGB #8700d7
+
+#
+# Build group tags
+#
+LOG_TAG_group_begin="4;93"; # Underline; Bright yellow
+LOG_TAG_group_begin_even_256="4;38;5;213"; # Underline; RGB #ff87ff
+LOG_TAG_group_begin_odd_256="4;38;5;212"; # Underline; RGB #ff87d7
+LOG_TAG_group_finish="4;92"; # Underline; Bright green
+LOG_TAG_group_finish_even_256="4;38;5;123"; # Underline; RGB #87ffff
+LOG_TAG_group_finish_odd_256="4;38;5;122"; # Underline; RGB #87ffd7
+
+#
+# Package build tags
+#
+LOG_TAG_pkg_begin_even=93; # Bright yellow
+LOG_TAG_pkg_begin_odd=93; # Bright yellow
+LOG_TAG_pkg_begin_even_256="38;5;201"; # RGB #ff00ff
+LOG_TAG_pkg_begin_odd_256="38;5;200"; # RGB #ff00d7
+LOG_TAG_pkg_finish_even=92; # Bright green
+LOG_TAG_pkg_finish_odd=92; # Bright green
+LOG_TAG_pkg_finish_even_256="38;5;117"; # RGB #87d7ff
+LOG_TAG_pkg_finish_odd_256="38;5;116"; # RGB #87d7d7
+LOG_TAG_pkg_msg=90; # Dark grey
+LOG_TAG_pkg_skip_even=36; # Cyan
+LOG_TAG_pkg_skip_odd=36; # Cyan
+LOG_TAG_pkg_skip_even_256="38;5;105"; # RGB #8787ff
+LOG_TAG_pkg_skip_odd_256="38;5;104"; # RGB #8787d7
+LOG_TAG_pkg_step_even=90; # Dark grey
+LOG_TAG_pkg_step_odd=90; # Dark grey
+LOG_TAG_pkg_step_even_256="38;5;242"; # RGB #6c6c6c
+LOG_TAG_pkg_step_odd_256="38;5;240"; # RGB #585858
+LOG_TAG_pkg_strip=93; # Bright yellow
+
+# vim:foldmethod=marker ft=sh
diff --git a/etc/build.usage b/etc/build.usage
index 218343d7..0f8dfddb 100644
--- a/etc/build.usage
+++ b/etc/build.usage
@@ -1,10 +1,11 @@
usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[,..]]
[-F ipv4|ipv6|offline] [-h|--help] [-p jobs|-P] [-r ALL|LAST]
[-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]] [-R]
- [-v] [-V [+]tag|pat[,..]]
+ [-v] [-V [+]tag|pat[,..]]
- [--as-needed] [--debug-minipix] [--dump-on-abort] [--reset-state]
- [--roar] [[=]<group>|<variable name>=<variable override>[ ..]]
+ [--as-needed] [--debug-minipix] [--reset-state] [--roar]
+ [--theme theme]
+ [[=]<group[,..][ ..]>|<variable name>=<variable override>[ ..]]
-a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
-b debug|release Selects debug or release build kind; defaults to debug.
@@ -48,7 +49,7 @@
fetch_clean, fetch_download, fetch_extract, configure_clean,
configure_patch_pre, configure_autotools, configure_patch,
configure, build_clean, build, install_clean, install_subdirs,
- install_make, install_files, install_libs, install, install_rpm,
+ install_make, install_files, install, install_rpm,
and clean.
Additionally, the following virtual steps are provided:
@@ -78,16 +79,15 @@
build_*.....: general build messages (viz.: begin, finish, finish_time, vars,)
group_*.....: build group messages (viz.: begin, finish,)
- pkg_*.......: package build messages (viz.: begin, faildump, finish, msg, skip, step, strip.)
+ pkg_*.......: package build messages (viz.: begin, finish, msg, skip, step, strip.)
--as-needed Don't build unless the midipix_build repository has received
new commits.
--debug-minipix Don't strip(1) minipix binaries to facilitate debugging minipix.
- --dump-on-abort Produce package environment dump files on build failure to be
- used in conjuction with pkg_shell.sh script (excludes -R.)
--reset-state Reset package build step state on exit.
+ --theme theme Set theme.
- <group>[ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
+ <group>[,..][ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
host_toolchain, host_tools, minipix, native_packages,
native_runtime, native_toolchain, native_tools.
diff --git a/etc/build.usage.short b/etc/build.usage.short
index 7e58f8b5..192b9e43 100644
--- a/etc/build.usage.short
+++ b/etc/build.usage.short
@@ -1,10 +1,11 @@
usage: ./build.sh [-a nt32|nt64] [-b debug|release] [-C dir[,..]] [-D kind[,..]]
[-F ipv4|ipv6|offline] [-h|--help] [-p jobs|-P] [-r ALL|LAST]
[-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]] [-R]
- [-v] [-V [+]tag|pat[,..]]
+ [-v] [-V [+]tag|pat[,..]]
- [--as-needed] [--debug-minipix] [--dump-on-abort] [--reset-state]
- [--roar] [[=]<group>|<variable name>=<variable override>[ ..]]
+ [--as-needed] [--debug-minipix] [--reset-state] [--roar]
+ [--theme theme]
+ [[=]<group[,..][ ..]>|<variable name>=<variable override>[ ..]]
-a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
-b debug|release Selects debug or release build kind; defaults to debug.
@@ -14,7 +15,7 @@
-r [*[*[*]]]name[,..][:ALL|LAST|[^|<|<=|>|>=]step,..]
-v Increase logging verbosity.
- <group>[ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
+ <group>[,..][ ..] One of: dev_packages, dist, host_deps, host_deps_rpm,
host_toolchain, host_tools, minipix, native_packages,
native_runtime, native_toolchain, native_tools.
diff --git a/etc/package.spec b/etc/package.spec
index c1dcac57..6fa9ddb7 100644
--- a/etc/package.spec
+++ b/etc/package.spec
@@ -1,3 +1,7 @@
+#REMOVEDBYSED#
+#REMOVEDBYSED# Refer to subr.ex/ex_rtl_rpm.subr:ex_rtl_build_rpm() for the list of
+#REMOVEDBYSED# %{}-enclosed variables substituted prior to running rpmbuild(1).
+#REMOVEDBYSED#
Name: %{pkg_name}
Version: %{pkg_version_rpm}
Release: 1
@@ -19,7 +23,6 @@ cp -pPr "%{pkg_destdir}/." "${RPM_BUILD_ROOT}"
%post
%postun
%files
-/
%changelog
diff --git a/etc/pkgtool.msgs.en b/etc/pkgtool.msgs.en
index 55b1206e..05331ab6 100644
--- a/etc/pkgtool.msgs.en
+++ b/etc/pkgtool.msgs.en
@@ -2,34 +2,31 @@
# en_* locale messages file for pkgtool.sh
#
-MSG_pkgtool_build_group="1;Build group: %s";
-MSG_pkgtool_no_env_dump="2;Warning: failed to locate environment dump for package \`%s' in \`%s'.";
-MSG_pkgtool_pkg_archive_mirroring="2;Mirroring package \`%s', archive URL(s): \`%s'...";
-MSG_pkgtool_pkg_archive_mirroring_parent="3;Mirroring package \`%s' (parent package: \`%s'), archive URL(s): \`%s'...";
-MSG_pkgtool_pkg_deps_fail="1;Warning: failed to unfold dependency-expanded package name list for \`%s'.";
-MSG_pkgtool_pkg_deps_full_disabled="2;Full dependencies of \`%s' (disabled packages:) %s";
-MSG_pkgtool_pkg_deps_full="2;Full dependencies of \`%s': %s";
-MSG_pkgtool_pkg_deps_rev_none="1;Package \`%s' has no reverse dependencies.";
-MSG_pkgtool_pkg_direct_deps="2;Direct dependencies of \`%s': %s";
-MSG_pkgtool_pkg_disabled="2;Package \`%s' (parent package: \`%s') disabled, skipping.";
-MSG_pkgtool_pkg_git_mirroring="2;Mirroring package \`%s', Git URL(s): \`%s'...";
-MSG_pkgtool_pkg_git_mirroring_parent="3;Mirroring package \`%s' (parent package: \`%s'), Git URL(s): \`%s'...";
-MSG_pkgtool_pkg_link_fail="3;Failed to create symbolic link \`%s' for package \`%s' w/ parent package \`%s'.";
-MSG_pkgtool_pkg_mirror_fail="1;Failed to mirror package \`%s', skipping.";
-MSG_pkgtool_pkg_no_deps="1;Package \`%s' has no dependencies.";
-MSG_pkgtool_pkgs_deps_rev_disabled="2;Reverse dependencies of \`%s' (disabled packages:) %s";
-MSG_pkgtool_pkgs_deps_rev="2;Reverse dependencies of \`%s': %s";
-MSG_pkgtool_pkg_skip_archive_mirror="1;Archive URL(s) mirroring disabled, skipping \`%s'.";
-MSG_pkgtool_pkg_skip_git_mirror_disabled="1;Package \`%s' specifies to skip Git URL(s) mirroring, skipping.";
-MSG_pkgtool_pkg_skip_git_mirror="1;Git URL(s) mirroring disabled, skipping \`%s'.";
-MSG_pkgtool_pkg_skip_no_urls="1;Package \`%s' has neither archive nor Git URL(s), skipping.";
-MSG_pkgtool_rebuilding_pkg="1;Rebuilding package \`%s' w/ --dump-in build...";
-MSG_pkgtool_shell_env1="2;Launching shell \`%s' within package environment and \`%s'.";
-MSG_pkgtool_shell_env2="1;Run \$R to rebuild \`%s'.";
-MSG_pkgtool_shell_env3="1;Run \$RS <step> to restart the specified build step of \`%s'";
-MSG_pkgtool_shell_env4="1;Run \$D to automatically regenerate the patch for \`%s'.";
-MSG_pkgtool_tarball_created="2;Created compressed tarball of \`%s' and \`%s_stderrout.log'.";
-MSG_pkgtool_tarball_creating="2;Creating compressed tarball of \`%s' and \`%s_stderrout.log'...";
-MSG_pkgtool_updated_patches="2;Updated \`%s/patches/%s'.";
+MSG_info_build_group="2;Build group: %s (%s)";
+MSG_info_pkg_deps_fail="1;Warning: failed to unfold dependency-expanded package name list for \`%s'.";
+MSG_info_pkg_direct_deps="2;Direct dependencies of \`%s': %s";
+MSG_info_pkg_no_deps="1;Package \`%s' has no dependencies.";
+MSG_info_pkg_disabled="1;Package \`%s' is disabled.";
+MSG_info_pkg_deps_full="2;Full dependencies of \`%s': %s";
+MSG_info_pkg_deps_full_disabled="2;Full dependencies of \`%s' (disabled packages:) %s";
+
+MSG_mirror_pkg_disabled="2;Package \`%s' (parent package: \`%s') disabled, skipping.";
+MSG_mirror_pkg_skip_archive_mirror="1;Archive URL(s) mirroring disabled, skipping \`%s'.";
+MSG_mirror_pkg_archive_mirroring="2;Mirroring package \`%s', archive URL(s): \`%s'...";
+MSG_mirror_pkg_archive_mirroring_parent="3;Mirroring package \`%s' (parent package: \`%s'), archive URL(s): \`%s'...";
+MSG_mirror_pkg_mirror_fail="1;Failed to mirror package \`%s', skipping.";
+MSG_mirror_pkg_skip_git_mirror="1;Git URL(s) mirroring disabled, skipping \`%s'.";
+MSG_mirror_pkg_skip_git_mirror_disabled="1;Package \`%s' specifies to skip Git URL(s) mirroring, skipping.";
+MSG_mirror_pkg_link_fail="3;Failed to create symbolic link \`%s' for package \`%s' w/ parent package \`%s'.";
+MSG_mirror_pkg_git_mirroring="2;Mirroring package \`%s', Git URL(s): \`%s'...";
+MSG_mirror_pkg_git_mirroring_parent="3;Mirroring package \`%s' (parent package: \`%s'), Git URL(s): \`%s'...";
+MSG_mirror_pkg_skip_no_urls="1;Package \`%s' has neither archive nor Git URL(s), skipping.";
+
+MSG_rdepends_pkg_deps_rev_none="1;Package \`%s' has no reverse dependencies.";
+MSG_rdepends_pkgs_deps_rev_disabled="2;Reverse dependencies of \`%s' (disabled packages:) %s";
+MSG_rdepends_pkgs_deps_rev_recurse="2;Recursive reverse dependencies of \`%s': %s";
+
+MSG_tarball_created="2;Created compressed tarball of \`%s' and \`%s_stderrout.log'.";
+MSG_tarball_creating="2;Creating compressed tarball of \`%s' and \`%s_stderrout.log'...";
# vim:foldmethod=marker ft=sh
diff --git a/etc/pkgtool.theme b/etc/pkgtool.theme
index 31ea331e..cba6c9f9 100644
--- a/etc/pkgtool.theme
+++ b/etc/pkgtool.theme
@@ -35,22 +35,60 @@
#
# Tag sets
#
-LOG_TAGS_all="fileop,install,fatal,info,verbose,warning";
-LOG_TAGS_normal="fatal,info,warning";
+LOG_TAGS_all="fileop,install,fatal,info,verbose,warning,package_vars,info_build_group,info_pkg_direct_deps,info_pkg_no_deps,info_pkg_disabled,info_pkg_deps_full,info_pkg_deps_full_disabled,mirror_pkg_archive_mirroring,mirror_pkg_archive_mirroring_parent,mirror_pkg_git_mirroring,mirror_pkg_git_mirroring_parent";
+LOG_TAGS_normal="fatal,info,warning,package_vars,info_build_group,info_pkg_direct_deps,info_pkg_no_deps,info_pkg_disabled,info_pkg_deps_full,info_pkg_deps_full_disabled,mirror_pkg_archive_mirroring,mirror_pkg_archive_mirroring_parent,mirror_pkg_git_mirroring,mirror_pkg_git_mirroring_parent";
LOG_TAGS_verbose="${LOG_TAGS_normal:+${LOG_TAGS_normal},}verbose";
-
#
# Subsystem tags
#
-LOG_TAG_fileop=36; # Cyan
-LOG_TAG_install=36; # Cyan
+LOG_TAG_fileop=36; # Cyan
+LOG_TAG_install=36; # Cyan
#
# General level tags
#
-LOG_TAG_fatal=91; # Bright red
-LOG_TAG_info=93; # Bright yellow
-LOG_TAG_verbose=96; # Bright cyan
-LOG_TAG_warning=31; # Dark red
+LOG_TAG_fatal=91; # Bright red
+LOG_TAG_info=93; # Bright yellow
+LOG_TAG_verbose=96; # Bright cyan
+LOG_TAG_warning=31; # Dark red
+
+#
+# General build tags
+#
+LOG_TAG_package_vars=33; # Dark yellow
+LOG_TAG_package_vars_even_256="38;5;228"; # RGB #ffaf5f
+LOG_TAG_package_vars_odd_256="38;5;226"; # RGB #ffaf00
+
+#
+# Package info tags
+#
+LOG_TAG_info_build_group=93; # Bright yellow
+LOG_TAG_info_build_group_256="38;5;221"; # RGB #ffd75f
+LOG_TAG_info_pkg_direct_deps=93; # Bright yellow
+LOG_TAG_info_pkg_direct_deps_256="38;5;215"; # RGB #ffaf5f
+LOG_TAG_info_pkg_no_deps=96; # Bright cyan
+LOG_TAG_info_pkg_no_deps_256="38;5;205"; # RGB #ff5faf
+LOG_TAG_info_pkg_disabled=96; # Bright cyan
+LOG_TAG_info_pkg_disabled_256="38;5;207"; # RGB #ff5fff
+LOG_TAG_info_pkg_deps_full=93; # Bright yellow
+LOG_TAG_info_pkg_deps_full_256="38;5;208"; # RGB #ff8700
+LOG_TAG_info_pkg_deps_full_disabled=96; # Bright cyan
+LOG_TAG_info_pkg_deps_full_disabled_256="38;5;147"; # RGB #afafff
+
+#
+# Package mirror tags
+#
+LOG_TAG_mirror_pkg_archive_mirroring=93; # Bright yellow
+LOG_TAG_mirror_pkg_archive_mirroring_even_256="38;5;123"; # RGB #87ffff
+LOG_TAG_mirror_pkg_archive_mirroring_odd_256="38;5;122"; # RGB #87ffd7
+LOG_TAG_mirror_pkg_archive_mirroring_parent=93; # Bright yellow
+LOG_TAG_mirror_pkg_archive_mirroring_parent_even_256="38;5;123"; # RGB #87ffff
+LOG_TAG_mirror_pkg_archive_mirroring_parent_odd_256="38;5;122"; # RGB #87ffd7
+LOG_TAG_mirror_pkg_git_mirroring=93; # Bright yellow
+LOG_TAG_mirror_pkg_git_mirroring_even_256="38;5;117"; # RGB #87d7ff
+LOG_TAG_mirror_pkg_git_mirroring_odd_256="38;5;116"; # RGB #87d7d7
+LOG_TAG_mirror_pkg_git_mirroring_parent=93; # Bright yellow
+LOG_TAG_mirror_pkg_git_mirroring_parent_even_256="38;5;117"; # RGB #87d7ff
+LOG_TAG_mirror_pkg_git_mirroring_parent_odd_256="38;5;116"; # RGB #87d7d7
# vim:foldmethod=marker ft=sh
diff --git a/etc/pkgtool.usage b/etc/pkgtool.usage
index 48126908..a07f8e47 100644
--- a/etc/pkgtool.usage
+++ b/etc/pkgtool.usage
@@ -1,17 +1,18 @@
-usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-i|-m <dname> -M <dname>|-r|-s|-t] [-v]
- [<variable name>=<variable override>[ ..]] name
+usage: ./pkgtool.sh [-a nt32|nt64] [-b debug|release] [-e|-f|-i|-m <dname> -M <dname>|-p|-r|-t]
+ [--theme theme] [-v]
+ [<variable name>=<variable override>[ ..]] name[,name..]
-a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64.
-b debug|release Selects debug or release build kind; defaults to debug.
- -i List package variables and dependencies of single named package.
+ -e Edit package group file of single named package with ${EDITOR}.
+ -f List files installed by single package.
+ -i List package variables and dependencies of named package(s).
-m <dname> Setup package archives mirror in <dname> and/or
-M <dname> Setup Git repositories mirror in <dname>
- -r List reverse dependencies of single named package.
- -s Enter interactive package build shell environment for single
- named package; requires a package dump file. If the package
- has not been built yet or built successfully, it will be rebuilt
- at build steps up until, by default, the `build' build step and
- forcibly aborted and dumped prior to enterting the shell.
+ Specify "" or '' as <dname> to default to the defaults in
+ ${HOME}/pkgtool.vars, if present.
+ -p <log_fname> Profile last build.
+ -r List recursive reverse dependencies of single named package.
-t Produce tarball of package build root directory and build log
file for the purpose of distribution given build failure.
-v Increase verbosity.
diff --git a/etc/pkgtool.usage.short b/etc/pkgtool.usage.short
new file mode 120000
index 00000000..6c372437
--- /dev/null
+++ b/etc/pkgtool.usage.short
@@ -0,0 +1 @@
+pkgtool.usage \ No newline at end of file
diff --git a/etc/rtl.msgs.C b/etc/rtl.msgs.C
index 6cbc93ed..3f393357 120000..100644
--- a/etc/rtl.msgs.C
+++ b/etc/rtl.msgs.C
@@ -1 +1,35 @@
-rtl.msgs.en \ No newline at end of file
+#
+# en_* locale messages file for subr.rtl/*.subr
+#
+
+MSG_rtl_fetch_fail="2;Error: failed to fetch URL \`%s' (wget(1) exit status: %s)";
+MSG_rtl_fetch_fail_retryurl="2;Warning: failed to fetch URL \`%s', retrying with alternative URL... (wget(1) exit status: %s)";
+MSG_rtl_fetch_hashfail1="3;Error: hash mismatch for URL \`%s' (should be: %s vs.: %s.)";
+MSG_rtl_fetch_hashfail2="2;Error: hash mismatch for URL \`%s' (should be: %s.)";
+MSG_rtl_fetch_hashfail_retryurl="2;Warning: hash mismatch for URL \`%s', retrying with alternative URL... (from build variables: %s.)";
+MSG_rtl_fetch_lockfail="1;Error: failed to acquire fetching lock for URL \`%s'.";
+MSG_rtl_fetch_lockfail_retryurl="1;Warning: failed to acquire fetching lock for URL \`%s', retrying with alternative URL...";
+MSG_rtl_fetch_rm_redundant="2;Deleting redundant file \`%s' for package \`%s'.";
+
+MSG_rtl_fileop_invalid_dir="1;Error: Invalid or non-existent directory \`%s'.";
+MSG_rtl_fileop_invparm_chgrp="1;Error: Missing parameters (in: chgrp %s.)";
+MSG_rtl_fileop_invparm_chmod="1;Error: Missing parameters (in: chmod %s.)";
+MSG_rtl_fileop_invparm_chown="1;Error: Missing parameters (in: chown %s.)";
+MSG_rtl_fileop_invparm_cp="1;Error: Missing parameters (in: cp %s.)";
+MSG_rtl_fileop_invparm_cp_follow="1;Error: Missing parameters (in: cp_follow %s.)";
+MSG_rtl_fileop_invparm="2;Error: Missing parameters (in: %s %s.)";
+MSG_rtl_fileop_invparm_fileop="1;Error: rtl_fileop() called w/ invalid parameter(s): %s";
+MSG_rtl_fileop_invparm_install="1;Error: Missing parameters (in: install %s.)";
+MSG_rtl_fileop_invparm_ln_symbolic="1;Error: Missing parameters (in: ln_symbolic %s.)";
+MSG_rtl_fileop_invparm_mv="1;Error: Missing parameters (in: mv %s.)";
+MSG_rtl_fileop_invparm_touch="1;Error: Missing parameters (in: touch %s.)";
+
+MSG_rtl_install_v2_rc="1;%s";
+
+MSG_rtl_log_vars_header="1;Variables for this %s:";
+MSG_rtl_log_unknown_tag="1;==> FIXME TODO XXX UNKNOWN TAG \`%s' PASSED TO rtl_log_msgVV()\n";
+
+MSG_rtl_platform_rc1="2;Command line: %s %s";
+MSG_rtl_platform_rc2="1;Command line: %s";
+
+# vim:foldmethod=marker ft=sh
diff --git a/etc/rtl.msgs.en b/etc/rtl.msgs.en
index 4298dae3..522640c5 100644
--- a/etc/rtl.msgs.en
+++ b/etc/rtl.msgs.en
@@ -27,7 +27,7 @@ MSG_rtl_fileop_invparm_touch="1;Error: Missing parameters (in: touch %s.)";
MSG_rtl_install_v2_rc="1;%s";
MSG_rtl_log_vars_header="1;Variables for this %s:";
-MSG_rtl_log_unknown_tag="1;==> FIXME TODO XXX UNKNOWN TAG \`%s' PASSED TO rtl_log_msg()\n";
+MSG_rtl_log_unknown_tag="1;==> FIXME TODO XXX UNKNOWN TAG \`%s' PASSED TO rtl_log_msgV()\n";
MSG_rtl_platform_rc1="2;Command line: %s %s";
MSG_rtl_platform_rc2="1;Command line: %s";
diff --git a/files/autoconf_2_69_host/bin/%[FNAME]-2.69 b/files/autoconf_2_69_host/bin/%[FNAME]-2.69
new file mode 100755
index 00000000..0cd46b92
--- /dev/null
+++ b/files/autoconf_2_69_host/bin/%[FNAME]-2.69
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+AUTOTOOL_COMMAND="${0##*/}"; AUTOTOOL_COMMAND="${AUTOTOOL_COMMAND%-2.69}";
+PREFIX=""; [ ${PREFIX:="${0%/*}"} = "${0}" ] && PREFIX="."; PREFIX="${PREFIX:+${PREFIX}/}..";
+export ACLOCAL="${ACLOCAL:-${PREFIX}/binaclocal-1.11}";
+export AC_MACRODIR="${AC_MACRODIR:-${PREFIX}/share/autoconf-2.69}";
+export AUTOCONF="${AUTOCONF:-${PREFIX}/libexec/autoconf-2.69/autoconf}";
+export AUTOHEADER="${AUTOHEADER:-${PREFIX}/libexec/autoconf-2.69/autoheader}";
+export AUTOM4TE="${AUTOM4TE:-${PREFIX}/libexec/autoconf-2.69/autom4te}";
+export AUTOM4TE_CFG="${AUTOM4TE_CFG:-${PREFIX}/share/autoconf-2.69/autom4te.cfg}";
+export autom4te_perllibdir="${autom4te_perllibdir:-${PREFIX}/share/autoconf-2.69}";
+export AUTOMAKE="${AUTOMAKE:-${PREFIX}/bin/automake-1.11}";
+export AUTOPOINT="${AUTOPOINT:-${PREFIX}/libexec/autoconf-2.69/autopoint}";
+export LIBTOOLIZE="${LIBTOOLIZE:-${PREFIX}/libexec/autoconf-2.69/libtoolize}";
+
+AUTOTOOL_COMMAND="${PREFIX}/libexec/autoconf-2.69/${AUTOTOOL_COMMAND}"; unset PREFIX;
+exec "${AUTOTOOL_COMMAND}" "${@}";
diff --git a/files/libiconv/lib/pkgconfig/iconv.pc b/files/libiconv/lib/pkgconfig/iconv.pc
new file mode 100644
index 00000000..0e78f9d4
--- /dev/null
+++ b/files/libiconv/lib/pkgconfig/iconv.pc
@@ -0,0 +1,13 @@
+prefix=
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: iconv
+Description: library that provides an iconv() implementation, for use on systems which don't have one, or whose implementation cannot convert from/to Unicode
+Version: 1.17
+Cflags: -I${includedir}
+Cflags.private:
+Libs: -L${libdir} -liconv
+Libs.private:
+Requires.private:
diff --git a/files/pkgconf_host/bin/%[_target]-pkg-config b/files/pkgconf_host/bin/%[_target]-pkg-config
index 28e59e3c..8dfd760d 100644
--- a/files/pkgconf_host/bin/%[_target]-pkg-config
+++ b/files/pkgconf_host/bin/%[_target]-pkg-config
@@ -4,5 +4,5 @@ if [ "${#}" -eq 1 ]\
&& [ "x${1}" = "x--version" ]; then
"${PREFIX}/bin/pkgconf" --version;
else
- "${PREFIX}/bin/pkgconf" --define-variable=prefix="${PREFIX%/}/native/" --keep-system-cflags "${@}";
+ "${PREFIX}/bin/pkgconf" --define-prefix "${@}";
fi;
diff --git a/groups.d/000.host_tools.d/autoconf_2_64_host.package b/groups.d/000.host_tools.d/autoconf_2_64_host.package
new file mode 100644
index 00000000..25c930e5
--- /dev/null
+++ b/groups.d/000.host_tools.d/autoconf_2_64_host.package
@@ -0,0 +1,24 @@
+: ${PKG_AUTOCONF_2_64_HOST_DEPENDS:="m4_host pkgconf_host slibtool_host"};
+: ${PKG_AUTOCONF_2_64_HOST_SHA256SUM:=32d977213320b8ae76c71175305301197f2b0e04e72d70694bc3d3e2ae6c7248};
+: ${PKG_AUTOCONF_2_64_HOST_VERSION:=2.64};
+: ${PKG_AUTOCONF_2_64_HOST_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_2_64_HOST_VERSION}.tar.xz};
+: ${PKG_AUTOCONF_2_64_HOST_INSTALL_FILES_V2:="
+ /=libexec/autoconf-2.64
+ !bin/%<*>=libexec/autoconf-2.64/%[FNAME]
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autoconf-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autoheader-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autom4te-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autoreconf-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autoscan-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/autoupdate-2.64
+ +%[_files]/bin/\%[FNAME]-2.64=bin/ifnames-2.64
+ !share/autoconf-2.64/autom4te.cfg=share/autoconf/autom4te.cfg
+ -=share/autoconf-2.64/
+ !share/autoconf=share/autoconf-2.64/
+ -=share/info/dir
+ !share/info/%<*.info>=share/info/%[FNAME%.info]-2.64.info
+ !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.64.1"};
+
+ex_pkg_register "autoconf_2_64_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/autoconf_2_69_host.package b/groups.d/000.host_tools.d/autoconf_2_69_host.package
new file mode 100644
index 00000000..d7406420
--- /dev/null
+++ b/groups.d/000.host_tools.d/autoconf_2_69_host.package
@@ -0,0 +1,24 @@
+: ${PKG_AUTOCONF_2_69_HOST_DEPENDS:="m4_host pkgconf_host slibtool_host"};
+: ${PKG_AUTOCONF_2_69_HOST_SHA256SUM:=64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684};
+: ${PKG_AUTOCONF_2_69_HOST_VERSION:=2.69};
+: ${PKG_AUTOCONF_2_69_HOST_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_2_69_HOST_VERSION}.tar.xz};
+: ${PKG_AUTOCONF_2_69_HOST_INSTALL_FILES_V2:="
+ /=libexec/autoconf-2.69
+ !bin/%<*>=libexec/autoconf-2.69/%[FNAME]
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autoconf-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autoheader-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autom4te-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autoreconf-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autoscan-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/autoupdate-2.69
+ +%[_files]/bin/\%[FNAME]-2.69=bin/ifnames-2.69
+ !share/autoconf-2.69/autom4te.cfg=share/autoconf/autom4te.cfg
+ -=share/autoconf-2.69/
+ !share/autoconf=share/autoconf-2.69/
+ -=share/info/dir
+ !share/info/%<*.info>=share/info/%[FNAME%.info]-2.69.info
+ !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.69.1"}
+
+ex_pkg_register "autoconf_2_69_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/autoconf_host.package b/groups.d/000.host_tools.d/autoconf_host.package
new file mode 100644
index 00000000..37ead7aa
--- /dev/null
+++ b/groups.d/000.host_tools.d/autoconf_host.package
@@ -0,0 +1,8 @@
+: ${PKG_AUTOCONF_HOST_DEPENDS:="m4_host pkgconf_host slibtool_host"};
+: ${PKG_AUTOCONF_HOST_SHA256SUM:=f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4};
+: ${PKG_AUTOCONF_HOST_VERSION:=2.71};
+: ${PKG_AUTOCONF_HOST_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "autoconf_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/automake_1_11_6_host.package b/groups.d/000.host_tools.d/automake_1_11_6_host.package
new file mode 100644
index 00000000..beddbcb5
--- /dev/null
+++ b/groups.d/000.host_tools.d/automake_1_11_6_host.package
@@ -0,0 +1,15 @@
+: ${PKG_AUTOMAKE_1_11_6_HOST_DEPENDS:="autoconf_2_64_host pkgconf_host slibtool_host"};
+: ${PKG_AUTOMAKE_1_11_6_HOST_SHA256SUM:=1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5};
+: ${PKG_AUTOMAKE_1_11_6_HOST_VERSION:=1.11.6};
+: ${PKG_AUTOMAKE_1_11_6_HOST_URL:=https://ftp.gnu.org/gnu/automake/automake-${PKG_AUTOMAKE_1_11_6_HOST_VERSION}.tar.xz};
+: ${PKG_AUTOMAKE_1_11_6_HOST_INSTALL_FILES_V2:="
+ -=bin/%<*-1.11>
+ !bin/%<*>=bin/%[FNAME]-1.11
+ -=share/info/dir
+ !share/doc/automake=share/doc/automake-1.11.6
+ !share/info/%<*.info*>=share/info/%[FNAME%.info*]-1.11.6.%[FNAME#*.]
+ !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-1.11.6.1"};
+
+ex_pkg_register "automake_1_11_6_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/automake_host.package b/groups.d/000.host_tools.d/automake_host.package
new file mode 100644
index 00000000..882984b4
--- /dev/null
+++ b/groups.d/000.host_tools.d/automake_host.package
@@ -0,0 +1,8 @@
+: ${PKG_AUTOMAKE_HOST_DEPENDS:="autoconf_host pkgconf_host slibtool_host"};
+: ${PKG_AUTOMAKE_HOST_SHA256SUM:=ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a};
+: ${PKG_AUTOMAKE_HOST_VERSION:=1.16.3};
+: ${PKG_AUTOMAKE_HOST_URL:=https://ftp.gnu.org/gnu/automake/automake-${PKG_AUTOMAKE_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "automake_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/gettext_tiny_host.package b/groups.d/000.host_tools.d/gettext_tiny_host.package
new file mode 100644
index 00000000..42cc6f79
--- /dev/null
+++ b/groups.d/000.host_tools.d/gettext_tiny_host.package
@@ -0,0 +1,10 @@
+: ${PKG_GETTEXT_TINY_HOST_DEPENDS:="pkgconf_host slibtool_host"};
+: ${PKG_GETTEXT_TINY_HOST_SHA256SUM:=29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383};
+: ${PKG_GETTEXT_TINY_HOST_VERSION:=0.3.2};
+: ${PKG_GETTEXT_TINY_HOST_URL:=https://toolchains.bootlin.com/downloads/releases/sources/gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}/gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}.tar.gz};
+: ${PKG_GETTEXT_TINY_HOST_BUILD_DIR:=gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}};
+: ${PKG_GETTEXT_TINY_HOST_MAKEFLAGS_BUILD_EXTRA:="prefix=${PREFIX}"};
+
+ex_pkg_register "gettext_tiny_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/install_strip_host.package b/groups.d/000.host_tools.d/install_strip_host.package
new file mode 100644
index 00000000..8041312d
--- /dev/null
+++ b/groups.d/000.host_tools.d/install_strip_host.package
@@ -0,0 +1,9 @@
+: ${PKG_INSTALL_STRIP_HOST_BUILD_STEPS_DISABLE:="build install_make install_rpm"};
+: ${PKG_INSTALL_STRIP_HOST_NO_LOG_VARS:=1};
+: ${PKG_INSTALL_STRIP_HOST_INSTALL_FILES_V2:="
+ +%[_files]/bin/\%[_target]-install-strip=bin/%[_target]-install-strip
+ m0755=bin/%[_target]-install-strip"};
+
+ex_pkg_register "install_strip_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/libtool_host.package b/groups.d/000.host_tools.d/libtool_host.package
new file mode 100644
index 00000000..aa1de1ad
--- /dev/null
+++ b/groups.d/000.host_tools.d/libtool_host.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBTOOL_HOST_DEPENDS:="autoconf_host automake_host pkgconf_host slibtool_host"}:
+: ${PKG_LIBTOOL_HOST_SHA256SUM:=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f};
+: ${PKG_LIBTOOL_HOST_VERSION:=2.4.6};
+: ${PKG_LIBTOOL_HOST_URL:=https://ftp.gnu.org/gnu/libtool/libtool-${PKG_LIBTOOL_HOST_VERSION}.tar.xz};
+: ${PKG_LIBTOOL_HOST_LIBTOOL:=none};
+
+ex_pkg_register "libtool_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/m4_host.package b/groups.d/000.host_tools.d/m4_host.package
new file mode 100644
index 00000000..f4b81ee9
--- /dev/null
+++ b/groups.d/000.host_tools.d/m4_host.package
@@ -0,0 +1,8 @@
+: ${PKG_M4_HOST_DEPENDS:="pkgconf_host slibtool_host"};
+: ${PKG_M4_HOST_SHA256SUM:=63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96};
+: ${PKG_M4_HOST_VERSION:=1.4.19};
+: ${PKG_M4_HOST_URL:=https://ftp.gnu.org/gnu/m4/m4-${PKG_M4_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "m4_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/pkgconf_host.package b/groups.d/000.host_tools.d/pkgconf_host.package
new file mode 100644
index 00000000..100c697c
--- /dev/null
+++ b/groups.d/000.host_tools.d/pkgconf_host.package
@@ -0,0 +1,13 @@
+: ${PKG_PKGCONF_HOST_DEPENDS:="slibtool_host"};
+: ${PKG_PKGCONF_HOST_SHA256SUM:=ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf};
+: ${PKG_PKGCONF_HOST_VERSION:=1.8.0};
+: ${PKG_PKGCONF_HOST_URL:=https://distfiles.dereferenced.org/pkgconf/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.xz};
+: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="--prefix=${PREFIX} --with-system-libdir=${PREFIX_NATIVE}/lib --with-system-includedir=${PREFIX_NATIVE}/include --with-pkg-config-dir=${PREFIX_NATIVE}/lib/pkgconfig --with-personality-dir=${PREFIX_NATIVE}/share/pkgconfig/personality.d"};
+: ${PKG_PKGCONF_HOST_INSTALL_FILES_V2:="
+ @pkgconf=bin/pkg-config
+ +%[_files]/bin/\%[_target]-pkg-config=bin/%[_target]-pkg-config
+ m0755=bin/%[_target]-pkg-config"};
+
+ex_pkg_register "pkgconf_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/slibtool_host.package b/groups.d/000.host_tools.d/slibtool_host.package
new file mode 100644
index 00000000..3fe32604
--- /dev/null
+++ b/groups.d/000.host_tools.d/slibtool_host.package
@@ -0,0 +1,6 @@
+: ${PKG_SLIBTOOL_HOST_URLS_GIT:="slibtool=${DEFAULT_GITROOT}/slibtool"};
+: ${PKG_SLIBTOOL_HOST_CONFIGURE_ARGS:=--prefix=};
+
+ex_pkg_register "slibtool_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.d/tpax_host.package b/groups.d/000.host_tools.d/tpax_host.package
new file mode 100644
index 00000000..07396c69
--- /dev/null
+++ b/groups.d/000.host_tools.d/tpax_host.package
@@ -0,0 +1,6 @@
+: ${PKG_TPAX_HOST_URLS_GIT:="tpax=https://git.midipix.org/tpax@main"};
+: ${PKG_TPAX_HOST_CONFIGURE_ARGS:=--prefix=};
+
+ex_pkg_register "tpax_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/000.host_tools.group b/groups.d/000.host_tools.group
new file mode 100644
index 00000000..b00996a8
--- /dev/null
+++ b/groups.d/000.host_tools.group
@@ -0,0 +1,12 @@
+#
+# Build group host_tools
+#
+HOST_TOOLS_BUILD_TYPE="host";
+HOST_TOOLS_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX}";
+HOST_TOOLS_MAKEFLAGS_INSTALL="prefix= PREFIX=";
+HOST_TOOLS_PREFIX="${PREFIX}";
+HOST_TOOLS_RPM_DISABLE=1;
+
+ex_pkg_register_group "host_tools" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/binutils_build.package b/groups.d/010.host_deps.d/binutils_build.package
new file mode 100644
index 00000000..3aef1d1b
--- /dev/null
+++ b/groups.d/010.host_deps.d/binutils_build.package
@@ -0,0 +1,14 @@
+: ${PKG_BINUTILS_BUILD_DEPENDS:="texinfo_host"};
+: ${PKG_BINUTILS_BUILD_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_BUILD_VERSION:=2.24.51};
+: ${PKG_BINUTILS_BUILD_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_BUILD_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_BUILD_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_BUILD_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --enable-install-libbfd --prefix=${PREFIX}/opt"};
+: ${PKG_BINUTILS_BUILD_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_BUILD_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_BUILD_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_BUILD_PREFIX:="${PREFIX}/opt"};
+: ${PKG_BINUTILS_BUILD_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_build" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/bison_host.package b/groups.d/010.host_deps.d/bison_host.package
new file mode 100644
index 00000000..f020201d
--- /dev/null
+++ b/groups.d/010.host_deps.d/bison_host.package
@@ -0,0 +1,9 @@
+: ${PKG_BISON_HOST_DEPENDS:="readline_host"};
+: ${PKG_BISON_HOST_SHA256SUM:=67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf};
+: ${PKG_BISON_HOST_VERSION:=3.7.6};
+: ${PKG_BISON_HOST_URL:=https://ftp.gnu.org/gnu/bison/bison-${PKG_BISON_HOST_VERSION}.tar.xz};
+: ${PKG_BISON_HOST_ENV_VARS_EXTRA:="M4=${PREFIX}/bin/m4"};
+
+ex_pkg_register "bison_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/bmake_host.package b/groups.d/010.host_deps.d/bmake_host.package
new file mode 100644
index 00000000..e888593f
--- /dev/null
+++ b/groups.d/010.host_deps.d/bmake_host.package
@@ -0,0 +1,10 @@
+: ${PKG_BMAKE_HOST_VERSION:=20240401};
+: ${PKG_BMAKE_HOST_URL:=https://srcbase.foss21.org/base/bmake/srcbase.bmake-${PKG_BMAKE_HOST_VERSION}.tar.xz};
+: ${PKG_BMAKE_HOST_SHA256SUM:=4b760506cd1fdada8c1012558e78530ccd2deaa29aeb463411bc9d8755a40a7e};
+: ${PKG_BMAKE_HOST_SUBDIR:=bmake-20240401};
+: ${PKG_BMAKE_HOST_CONFIGURE_TYPE:="sofort"};
+: ${PKG_BMAKE_HOST_CONFIGURE_ARGS:="--prefix= --with-default-sys-path=${PREFIX}/share/mk"};
+
+ex_pkg_register "bmake_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/bzip2_host.package b/groups.d/010.host_deps.d/bzip2_host.package
new file mode 100644
index 00000000..21d424d0
--- /dev/null
+++ b/groups.d/010.host_deps.d/bzip2_host.package
@@ -0,0 +1,10 @@
+: ${PKG_BZIP2_HOST_SHA256SUM:=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269};
+: ${PKG_BZIP2_HOST_VERSION:=1.0.8};
+: ${PKG_BZIP2_HOST_URL:=https://sourceware.org/pub/bzip2/bzip2-${PKG_BZIP2_HOST_VERSION}.tar.gz};
+: ${PKG_BZIP2_HOST_IN_TREE:=1};
+: ${PKG_BZIP2_HOST_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so};
+: ${PKG_BZIP2_HOST_MAKE_INSTALL_VNAME:=PREFIX};
+
+ex_pkg_register "bzip2_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/ca_certificates_host.package b/groups.d/010.host_deps.d/ca_certificates_host.package
new file mode 100644
index 00000000..3aacffc6
--- /dev/null
+++ b/groups.d/010.host_deps.d/ca_certificates_host.package
@@ -0,0 +1,11 @@
+: ${PKG_CA_CERTIFICATES_HOST_DEPENDS:="libressl_host"};
+: ${PKG_CA_CERTIFICATES_HOST_URLS_GIT:="ca-certificates=https://github.com/Redfoxmoon3/ca-certificates@master"};
+: ${PKG_CA_CERTIFICATES_HOST_IN_TREE:=1};
+: ${PKG_CA_CERTIFICATES_HOST_CFLAGS_BUILD_EXTRA:=-I${PREFIX}/include};
+: ${PKG_CA_CERTIFICATES_HOST_LDFLAGS_BUILD_EXTRA:=-L${PREFIX}/lib};
+: ${PKG_CA_CERTIFICATES_HOST_ENV_VARS_EXTRA:="HOST_CC=gcc"};
+: ${PKG_CA_CERTIFICATES_HOST_VARS_FILE:="vars/ca_certificates.vars"};
+
+ex_pkg_register "ca_certificates_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/chainport_host.package b/groups.d/010.host_deps.d/chainport_host.package
new file mode 100644
index 00000000..f0272ed1
--- /dev/null
+++ b/groups.d/010.host_deps.d/chainport_host.package
@@ -0,0 +1,10 @@
+: ${PKG_CHAINPORT_HOST_URLS_GIT:="chainport=${DEFAULT_GITROOT}/ports/chainport"};
+: ${PKG_CHAINPORT_HOST_BUILD_STEPS_DISABLE:="build install_make install_rpm"};
+: ${PKG_CHAINPORT_HOST_NO_LOG_VARS:=1};
+: ${PKG_CHAINPORT_HOST_INSTALL_FILES_V2:="
+ -=%[_workdir]/chainport
+ +../chainport=%[_workdir]/chainport"};
+
+ex_pkg_register "chainport_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/clzip_host.package b/groups.d/010.host_deps.d/clzip_host.package
new file mode 100644
index 00000000..9c91be69
--- /dev/null
+++ b/groups.d/010.host_deps.d/clzip_host.package
@@ -0,0 +1,9 @@
+: ${PKG_CLZIP_HOST_SHA256SUM:=d9d51212afa80371dc2546d278ef8ebbb3cd57c06fdd761b7b204497586d24c0};
+: ${PKG_CLZIP_HOST_VERSION:=1.11};
+: ${PKG_CLZIP_HOST_URL:=http://download.savannah.gnu.org/releases/lzip/clzip/clzip-${PKG_CLZIP_HOST_VERSION}.tar.gz};
+: ${PKG_CLZIP_HOST_IN_TREE:=1};
+: ${PKG_CLZIP_HOST_INSTALL_FILES_V2:="@clzip=bin/lzip"};
+
+ex_pkg_register "clzip_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/cmake_host.package b/groups.d/010.host_deps.d/cmake_host.package
new file mode 100644
index 00000000..bc6f9efb
--- /dev/null
+++ b/groups.d/010.host_deps.d/cmake_host.package
@@ -0,0 +1,14 @@
+: ${PKG_CMAKE_HOST_DEPENDS:="bzip2_host musl_fts_host ncurses_host"};
+: ${PKG_CMAKE_HOST_SHA256SUM:=dc1246c4e6d168ea4d6e042cfba577c1acd65feea27e56f5ff37df920c30cae0};
+: ${PKG_CMAKE_HOST_VERSION:=3.7.2};
+: ${PKG_CMAKE_HOST_URL:=https://cmake.org/files/v${PKG_CMAKE_HOST_VERSION%.*}/cmake-${PKG_CMAKE_HOST_VERSION}.tar.gz};
+: ${PKG_CMAKE_HOST_CONFIGURE_TYPE:="cmake"};
+: ${PKG_CMAKE_HOST_CMAKE_ARGS_EXTRA:="
+ -DCURSES_NCURSES_LIBRARY=${PREFIX}/lib/libncurses.so
+ -DLIBMD_LIBRARY=
+"};
+: ${PKG_CMAKE_HOST_INSTALL_FILES_V2:="+../cmake-${PKG_CMAKE_HOST_VERSION}/Modules/Platform/BSDOS.cmake=share/cmake-${PKG_CMAKE_HOST_VERSION%.*}/Modules/Platform/Midipix.cmake"};
+
+ex_pkg_register "cmake_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/expat_host.package b/groups.d/010.host_deps.d/expat_host.package
new file mode 100644
index 00000000..41d5ef27
--- /dev/null
+++ b/groups.d/010.host_deps.d/expat_host.package
@@ -0,0 +1,10 @@
+: ${PKG_EXPAT_HOST_SHA256SUM:=cb5f5a8ea211e1cabd59be0a933a52e3c02cc326e86a4d387d8d218e7ee47a3e};
+: ${PKG_EXPAT_HOST_VERSION:=2.6.0};
+: ${PKG_EXPAT_HOST_URL:=http://download.openpkg.org/components/cache/expat/expat-${PKG_EXPAT_HOST_VERSION}.tar.xz};
+: ${PKG_EXPAT_HOST_CONFIGURE_ARGS_EXTRA:="--without-docbook"};
+: ${PKG_EXPAT_HOST_CONFIGURE_TYPE:="autotools"};
+: ${PKG_EXPAT_HOST_LDFLAGS_CONFIGURE:="-Wl,-rpath,${PREFIX}/lib"};
+
+ex_pkg_register "expat_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/file_host.package b/groups.d/010.host_deps.d/file_host.package
new file mode 100644
index 00000000..4a0fb614
--- /dev/null
+++ b/groups.d/010.host_deps.d/file_host.package
@@ -0,0 +1,8 @@
+: ${PKG_FILE_HOST_SHA256SUM:=fc97f51029bb0e2c9f4e3bffefdaf678f0e039ee872b9de5c002a6d09c784d82};
+: ${PKG_FILE_HOST_VERSION:=5.45};
+: ${PKG_FILE_HOST_URL:=http://ftp.astron.com/pub/file/file-${PKG_FILE_HOST_VERSION}.tar.gz};
+: ${PKG_FILE_HOST_CONFIGURE_ARGS_EXTRA:="--disable-xzlib"};
+
+ex_pkg_register "file_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/flex_host.package b/groups.d/010.host_deps.d/flex_host.package
new file mode 100644
index 00000000..2fb1456d
--- /dev/null
+++ b/groups.d/010.host_deps.d/flex_host.package
@@ -0,0 +1,9 @@
+: ${PKG_FLEX_HOST_DEPENDS:="bison_host"};
+: ${PKG_FLEX_HOST_SHA256SUM:=e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995};
+: ${PKG_FLEX_HOST_VERSION:=2.6.4};
+: ${PKG_FLEX_HOST_URL:=https://github.com/westes/flex/releases/download/v${PKG_FLEX_HOST_VERSION}/flex-${PKG_FLEX_HOST_VERSION}.tar.gz};
+: ${PKG_FLEX_HOST_CFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
+
+ex_pkg_register "flex_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/gdb_host.package b/groups.d/010.host_deps.d/gdb_host.package
new file mode 100644
index 00000000..fc28def1
--- /dev/null
+++ b/groups.d/010.host_deps.d/gdb_host.package
@@ -0,0 +1,17 @@
+: ${PKG_GDB_HOST_DISABLED:=1};
+: ${PKG_GDB_HOST_DEPENDS:="chainport_host expat_host ncurses_host python2_host"};
+: ${PKG_GDB_HOST_SHA256SUM:=149abac4add030a5713f15964bd7465bef7a23712bcc91377ca40949f33e93fb};
+: ${PKG_GDB_HOST_VERSION:=7.12};
+: ${PKG_GDB_HOST_URL:=ftp://sourceware.org/pub/gdb/releases/gdb-${PKG_GDB_HOST_VERSION}.tar.gz};
+: ${PKG_GDB_HOST_CFLAGS_CONFIGURE_EXTRA:="-g3 -O0 -I${PREFIX}/include/python2.7"};
+: ${PKG_GDB_HOST_CONFIGURE_ARGS:="--disable-nls --prefix= --target=${DEFAULT_TARGET} --with-system-libiberty --with-system-readline --with-system-zlib --with-python=python2.7 --with-guile=no --enable-guile=no"};
+: ${PKG_GDB_HOST_CXXFLAGS_CONFIGURE_EXTRA:="-fpermissive -g3 -O0 -I${PREFIX}/include/python2.7"};
+: ${PKG_GDB_HOST_ENV_VARS_EXTRA:="CFLAGS_FOR_TARGET=-g3 -O0 -I${PREFIX}/include/python2.7"};
+: ${PKG_GDB_HOST_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX}/lib"};
+: ${PKG_GDB_HOST_LIBTOOL:=rdlibtool};
+: ${PKG_GDB_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gdb/gdb-${PKG_GDB_HOST_VERSION}.midipix.patch"};
+: ${PKG_GDB_HOST_VARS_FILE:="vars/gdb.vars"};
+
+ex_pkg_register "gdb_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/gdbm_host.package b/groups.d/010.host_deps.d/gdbm_host.package
new file mode 100644
index 00000000..6b610cc0
--- /dev/null
+++ b/groups.d/010.host_deps.d/gdbm_host.package
@@ -0,0 +1,10 @@
+: ${PKG_GDBM_HOST_DEPENDS:="readline_host ncurses_host"};
+: ${PKG_GDBM_HOST_SHA256SUM:=86e613527e5dba544e73208f42b78b7c022d4fa5a6d5498bf18c8d6f745b91dc};
+: ${PKG_GDBM_HOST_VERSION:=1.18.1};
+: ${PKG_GDBM_HOST_URL:=ftp://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_HOST_VERSION}.tar.gz};
+: ${PKG_GDBM_HOST_CONFIGURE_ARGS_EXTRA:=--enable-libgdbm-compat};
+: ${PKG_GDBM_HOST_CFLAGS_CONFIGURE_EXTRA:="-fcommon"};
+
+ex_pkg_register "gdbm_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/glib_host.package b/groups.d/010.host_deps.d/glib_host.package
new file mode 100644
index 00000000..4853165e
--- /dev/null
+++ b/groups.d/010.host_deps.d/glib_host.package
@@ -0,0 +1,14 @@
+: ${PKG_GLIB_HOST_DEPENDS:="python3_host"};
+: ${PKG_GLIB_HOST_SHA256SUM:=d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789};
+: ${PKG_GLIB_HOST_VERSION:=2.56.2};
+: ${PKG_GLIB_HOST_URL:="https://download.gnome.org/sources/glib/${PKG_GLIB_HOST_VERSION%.[0-9]}/glib-${PKG_GLIB_HOST_VERSION}.tar.xz https://ftp.pieskovisko.sk/slackware/slackware-current/source/l/glib2/glib-${PKG_GLIB_HOST_VERSION}.tar.xz"};
+: ${PKG_GLIB_HOST_BUILD_STEPS_DISABLE:=configure_patch};
+: ${PKG_GLIB_HOST_CONFIGURE_ARGS_EXTRA:="--with-pcre=internal --with-python=${PREFIX}/bin/python3 --disable-dtrace --disable-libelf --disable-libmount"};
+: ${PKG_GLIB_HOST_CFLAGS_BUILD_EXTRA:="-Wno-missing-include-dirs -Wno-format-nonliteral -Wno-format-overflow"};
+: ${PKG_GLIB_HOST_ENV_VARS_EXTRA:="LIBFFI_CFLAGS=-I${PREFIX}/lib/libffi-3.2.1/include:LIBFFI_LIBS=-L${PREFIX}/lib -lffi"};
+: ${PKG_GLIB_HOST_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX}/lib};
+: ${PKG_GLIB_HOST_VARS_FILE:="vars/glib.vars"}
+
+ex_pkg_register "glib_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/gperf_host.package b/groups.d/010.host_deps.d/gperf_host.package
new file mode 100644
index 00000000..8407d03b
--- /dev/null
+++ b/groups.d/010.host_deps.d/gperf_host.package
@@ -0,0 +1,7 @@
+: ${PKG_GPERF_HOST_SHA256SUM:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2};
+: ${PKG_GPERF_HOST_VERSION:=3.1};
+: ${PKG_GPERF_HOST_URL:=https://ftp.gnu.org/gnu/gperf/gperf-${PKG_GPERF_HOST_VERSION}.tar.gz};
+
+ex_pkg_register "gperf_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/infounzip_host.package b/groups.d/010.host_deps.d/infounzip_host.package
new file mode 100644
index 00000000..508f62f4
--- /dev/null
+++ b/groups.d/010.host_deps.d/infounzip_host.package
@@ -0,0 +1,6 @@
+: ${PKG_INFOUNZIP_HOST_URLS_GIT:=infounzip-host=https://github.com/Redfoxmoon3/infounzip.git@master};
+: ${PKG_INFOUNZIP_HOST_IN_TREE:=1};
+
+ex_pkg_register "infounzip_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/infozip_host.package b/groups.d/010.host_deps.d/infozip_host.package
new file mode 100644
index 00000000..a5d83f5c
--- /dev/null
+++ b/groups.d/010.host_deps.d/infozip_host.package
@@ -0,0 +1,6 @@
+: ${PKG_INFOZIP_HOST_URLS_GIT:=infozip-host=https://github.com/Redfoxmoon3/infozip.git@master};
+: ${PKG_INFOZIP_HOST_IN_TREE:=1};
+
+ex_pkg_register "infozip_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/intltool_host.package b/groups.d/010.host_deps.d/intltool_host.package
new file mode 100644
index 00000000..4bd30336
--- /dev/null
+++ b/groups.d/010.host_deps.d/intltool_host.package
@@ -0,0 +1,7 @@
+: ${PKG_INTLTOOL_HOST_SHA256SUM:=67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd};
+: ${PKG_INTLTOOL_HOST_VERSION:=0.51.0};
+: ${PKG_INTLTOOL_HOST_URL:=https://launchpad.net/intltool/trunk/${PKG_INTLTOOL_HOST_VERSION}/+download/intltool-${PKG_INTLTOOL_HOST_VERSION}.tar.gz};
+
+ex_pkg_register "intltool_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/libffi_host.package b/groups.d/010.host_deps.d/libffi_host.package
new file mode 100644
index 00000000..f28e011c
--- /dev/null
+++ b/groups.d/010.host_deps.d/libffi_host.package
@@ -0,0 +1,11 @@
+: ${PKG_LIBFFI_HOST_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37};
+: ${PKG_LIBFFI_HOST_VERSION:=3.2.1};
+: ${PKG_LIBFFI_HOST_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_HOST_VERSION}.tar.gz};
+: ${PKG_LIBFFI_HOST_INSTALL_FILES_V2:="
+ @../lib/libffi-3.2.1/include/ffi.h=include/ffi.h
+ @../lib/libffi-3.2.1/include/ffitarget.h=include/ffitarget.h"};
+: ${PKG_LIBFFI_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libffi/libffi-${PKG_LIBFFI_HOST_VERSION}.midipix.patch"};
+
+ex_pkg_register "libffi_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/libressl_host.package b/groups.d/010.host_deps.d/libressl_host.package
new file mode 100644
index 00000000..d8c6d205
--- /dev/null
+++ b/groups.d/010.host_deps.d/libressl_host.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBRESSL_HOST_SHA256SUM:=acfac61316e93b919c28d62d53037ca734de85c46b4d703f19fd8395cf006774};
+: ${PKG_LIBRESSL_HOST_VERSION:=3.6.1};
+: ${PKG_LIBRESSL_HOST_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_HOST_VERSION}.tar.gz};
+: ${PKG_LIBRESSL_HOST_LDFLAGS_CONFIGURE:="-Wl,-rpath,${PREFIX}/lib"};
+
+ex_pkg_register "libressl_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/libz_host.package b/groups.d/010.host_deps.d/libz_host.package
new file mode 100644
index 00000000..55a84afa
--- /dev/null
+++ b/groups.d/010.host_deps.d/libz_host.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBZ_HOST_SHA256SUM:=abcc2831b7a0e891d0875fa852e9b9510b420d843d3d20aad010f65493fe4f7b};
+: ${PKG_LIBZ_HOST_VERSION:=1.2.8.2015.12.26};
+: ${PKG_LIBZ_HOST_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_HOST_VERSION}.tar.gz};
+: ${PKG_LIBZ_HOST_CONFIGURE_ARGS:="--enable-shared --prefix="};
+
+ex_pkg_register "libz_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/libzip_host.package b/groups.d/010.host_deps.d/libzip_host.package
new file mode 100644
index 00000000..ff15ed15
--- /dev/null
+++ b/groups.d/010.host_deps.d/libzip_host.package
@@ -0,0 +1,11 @@
+: ${PKG_LIBZIP_HOST_DEPENDS:="cmake_host libz_host"};
+: ${PKG_LIBZIP_HOST_SHA256SUM:=a020dc1b17a79faa748e43a05f8605d65e403813e8e97ad3a300a90ddba097ac};
+: ${PKG_LIBZIP_HOST_VERSION:=1.7.1};
+: ${PKG_LIBZIP_HOST_URL:=https://libzip.org/download/libzip-${PKG_LIBZIP_HOST_VERSION}.tar.xz};
+: ${PKG_LIBZIP_HOST_CMAKE_ARGS_EXTRA:="
+ -DENABLE_GNUTLS=:BOOL=OFF
+ -DENABLE_MBEDTLS=:BOOL=OFF"};
+
+ex_pkg_register "libzip_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/mdso_host.package b/groups.d/010.host_deps.d/mdso_host.package
new file mode 100644
index 00000000..d55b8d06
--- /dev/null
+++ b/groups.d/010.host_deps.d/mdso_host.package
@@ -0,0 +1,10 @@
+: ${PKG_MDSO_HOST_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"};
+: ${PKG_MDSO_HOST_CONFIGURE_ARGS:="--prefix="};
+: ${PKG_MDSO_HOST_INSTALL_FILES_V2:="
+ @mdso=bin/${DEFAULT_TARGET}-mdso
+ /=${DEFAULT_TARGET}/bin
+ +bin/mdso=${DEFAULT_TARGET}/bin/mdso"};
+
+ex_pkg_register "mdso_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/mpackage_host.package b/groups.d/010.host_deps.d/mpackage_host.package
new file mode 100644
index 00000000..2128a50c
--- /dev/null
+++ b/groups.d/010.host_deps.d/mpackage_host.package
@@ -0,0 +1,11 @@
+: ${PKG_MPACKAGE_HOST_URLS_GIT:=mpackage=${DEFAULT_GITROOT}/mpackage};
+: ${PKG_MPACKAGE_HOST_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
+: ${PKG_MPACKAGE_HOST_IN_TREE:=1};
+: ${PKG_MPACKAGE_HOST_NO_CLEAN_BUILD_DIR:=1};
+: ${PKG_MPACKAGE_HOST_PKGLIST_DISABLE:=1};
+: ${PKG_MPACKAGE_HOST_PREFIX:=${PREFIX_NATIVE}};
+: ${PKG_MPACKAGE_HOST_RPM_DISABLE:=1};
+
+ex_pkg_register "mpackage_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/musl_fts_host.package b/groups.d/010.host_deps.d/musl_fts_host.package
new file mode 100644
index 00000000..005686df
--- /dev/null
+++ b/groups.d/010.host_deps.d/musl_fts_host.package
@@ -0,0 +1,7 @@
+: ${PKG_MUSL_FTS_HOST_SHA256SUM:=32dfe02768f1d3d91ab04df4fbdb7922cd34cd529ce7081a78c3ca8b8652d1ee};
+: ${PKG_MUSL_FTS_HOST_VERSION:=1.2.7};
+: ${PKG_MUSL_FTS_HOST_URL:=https://midipix.org/mirror/musl-fts/musl-fts-${PKG_MUSL_FTS_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "musl_fts_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/ncurses_host.package b/groups.d/010.host_deps.d/ncurses_host.package
new file mode 100644
index 00000000..fe158932
--- /dev/null
+++ b/groups.d/010.host_deps.d/ncurses_host.package
@@ -0,0 +1,11 @@
+: ${PKG_NCURSES_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSES_HOST_VERSION:=6.3};
+: ${PKG_NCURSES_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_HOST_VERSION}.tar.gz};
+: ${PKG_NCURSES_HOST_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
+: ${PKG_NCURSES_HOST_CONFIGURE_ARGS:="-C --disable-nls --prefix=${PREFIX} --program-prefix= --with-curses"};
+: ${PKG_NCURSES_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --without-pthread"};
+: ${PKG_NCURSES_HOST_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+
+ex_pkg_register "ncurses_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/ncursestw_host.package b/groups.d/010.host_deps.d/ncursestw_host.package
new file mode 100644
index 00000000..da3e4028
--- /dev/null
+++ b/groups.d/010.host_deps.d/ncursestw_host.package
@@ -0,0 +1,8 @@
+: ${PKG_NCURSESTW_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSESTW_HOST_VERSION:=6.3};
+: ${PKG_NCURSESTW_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_HOST_VERSION}.tar.gz};
+: ${PKG_NCURSESTW_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --with-pthread"};
+
+ex_pkg_register "ncursestw_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/ncursesw_host.package b/groups.d/010.host_deps.d/ncursesw_host.package
new file mode 100644
index 00000000..685c5fc9
--- /dev/null
+++ b/groups.d/010.host_deps.d/ncursesw_host.package
@@ -0,0 +1,9 @@
+: ${PKG_NCURSESW_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSESW_HOST_VERSION:=6.3};
+: ${PKG_NCURSESW_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_HOST_VERSION}.tar.gz};
+: ${PKG_NCURSESW_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --with-manpages --with-progs --with-shared --with-termlib --without-ada --without-tests --enable-widec --without-pthread"};
+: ${PKG_NCURSESW_HOST_INSTALL_FILES_V2:="@ncursesw/ncurses.h=include/ncurses.h"};
+
+ex_pkg_register "ncursesw_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/pcre_host.package b/groups.d/010.host_deps.d/pcre_host.package
new file mode 100644
index 00000000..031f7994
--- /dev/null
+++ b/groups.d/010.host_deps.d/pcre_host.package
@@ -0,0 +1,9 @@
+: ${PKG_PCRE_HOST_DEPENDS:="bzip2_host"};
+: ${PKG_PCRE_HOST_SHA256SUM:=0b8e7465dc5e98c757cc3650a20a7843ee4c3edf50aaf60bb33fd879690d2c73};
+: ${PKG_PCRE_HOST_VERSION:=8.43};
+: ${PKG_PCRE_HOST_URL:="https://osdn.net/frs/g_redir.php?m=gigenet&f=pcre%2Fpcre%2F8.43%2Fpcre-${PKG_PCRE_HOST_VERSION}.tar.gz"};
+: ${PKG_PCRE_HOST_FNAME:="pcre-${PKG_PCRE_HOST_VERSION}.tar.gz"};
+
+ex_pkg_register "pcre_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/perk_host.package b/groups.d/010.host_deps.d/perk_host.package
new file mode 100644
index 00000000..4147ab18
--- /dev/null
+++ b/groups.d/010.host_deps.d/perk_host.package
@@ -0,0 +1,9 @@
+: ${PKG_PERK_HOST_DEPENDS:="mdso_host"};
+: ${PKG_PERK_HOST_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"};
+: ${PKG_PERK_HOST_CONFIGURE_ARGS:="--prefix="};
+: ${PKG_PERK_HOST_INSTALL_FILES_V2:="@perk=bin/${DEFAULT_TARGET}-perk"};
+: ${PKG_PERK_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
+
+ex_pkg_register "perk_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/python2_host.package b/groups.d/010.host_deps.d/python2_host.package
new file mode 100644
index 00000000..8da337b2
--- /dev/null
+++ b/groups.d/010.host_deps.d/python2_host.package
@@ -0,0 +1,17 @@
+: ${PKG_PYTHON2_HOST_DEPENDS:="bzip2_host expat_host gdbm_host libffi_host readline_host libz_host ncurses_host ncursesw_host sqlite3_host"};
+: ${PKG_PYTHON2_HOST_SHA256SUM:=b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43};
+: ${PKG_PYTHON2_HOST_VERSION:=2.7.18};
+: ${PKG_PYTHON2_HOST_URL:="https://www.python.org/ftp/python/${PKG_PYTHON2_HOST_VERSION}/Python-${PKG_PYTHON2_HOST_VERSION}.tar.xz"};
+: ${PKG_PYTHON2_HOST_URLS_GIT:="build/sbpython2=${DEFAULT_GITROOT}/python/sbpython2@main"};
+: ${PKG_PYTHON2_HOST_BASE_DIR:=${BUILD_WORKDIR}/python2_host-host-${DEFAULT_TARGET}};
+: ${PKG_PYTHON2_HOST_BUILD_DIR:=build/python2};
+: ${PKG_PYTHON2_HOST_CONFIGURE:=build/sbpython2/configure};
+: ${PKG_PYTHON2_HOST_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON2_HOST_VERSION} --prefix=${PREFIX}"};
+: ${PKG_PYTHON2_HOST_CONFIGURE_TYPE:="sofort"};
+: ${PKG_PYTHON2_HOST_INSTALL_FILES_V2:="+%[_files]/bin/python2.7-config=bin/%[FNAME]"};
+: ${PKG_PYTHON2_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= EXEC_PREFIX= BINDIR=/bin SBINDIR=/sbin LIBDIR=/lib INCLUDEDIR=/include OLDINCLUDEDIR=/include MANDIR=/share/man DOCDIR=/share/doc LIBEXECDIR=/libexec"};
+: ${PKG_PYTHON2_HOST_SUBDIR:=Python-${PKG_PYTHON2_HOST_VERSION}};
+
+ex_pkg_register "python2_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/python3_host.package b/groups.d/010.host_deps.d/python3_host.package
new file mode 100644
index 00000000..9d38e427
--- /dev/null
+++ b/groups.d/010.host_deps.d/python3_host.package
@@ -0,0 +1,17 @@
+: ${PKG_PYTHON3_HOST_DEPENDS:="bzip2_host expat_host gdbm_host libffi_host readline_host libressl_host libz_host ncurses_host ncursesw_host sqlite3_host xz_host"};
+: ${PKG_PYTHON3_HOST_SHA256SUM:=f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b};
+: ${PKG_PYTHON3_HOST_VERSION:=3.7.10};
+: ${PKG_PYTHON3_HOST_URL:="https://www.python.org/ftp/python/${PKG_PYTHON3_HOST_VERSION}/Python-${PKG_PYTHON3_HOST_VERSION}.tar.xz"};
+: ${PKG_PYTHON3_HOST_URLS_GIT:="build/sbpython3=${DEFAULT_GITROOT}/python/sbpython3@main"};
+: ${PKG_PYTHON3_HOST_BASE_DIR:=${BUILD_WORKDIR}/python3_host-host-${DEFAULT_TARGET}};
+: ${PKG_PYTHON3_HOST_BUILD_DIR:=build/python3};
+: ${PKG_PYTHON3_HOST_CONFIGURE:=build/sbpython3/configure};
+: ${PKG_PYTHON3_HOST_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON3_HOST_VERSION} --prefix=${PREFIX}"};
+: ${PKG_PYTHON3_HOST_CONFIGURE_TYPE:="sofort"};
+: ${PKG_PYTHON3_HOST_INSTALL_FILES_V2:="@python3=bin/python"};
+: ${PKG_PYTHON3_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= EXEC_PREFIX= BINDIR=/bin SBINDIR=/sbin LIBDIR=/lib INCLUDEDIR=/include OLDINCLUDEDIR=/include MANDIR=/share/man DOCDIR=/share/doc LIBEXECDIR=/libexec"};
+: ${PKG_PYTHON3_HOST_SUBDIR:=Python-${PKG_PYTHON3_HOST_VERSION}};
+
+ex_pkg_register "python3_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/re2c_host.package b/groups.d/010.host_deps.d/re2c_host.package
new file mode 100644
index 00000000..9ef2b225
--- /dev/null
+++ b/groups.d/010.host_deps.d/re2c_host.package
@@ -0,0 +1,8 @@
+: ${PKG_RE2C_HOST_DEPENDS:="python3_host"};
+: ${PKG_RE2C_HOST_SHA256SUM:=0ac299ad359e3f512b06a99397d025cfff81d3be34464ded0656f8a96676c029};
+: ${PKG_RE2C_HOST_VERSION:=3.1};
+: ${PKG_RE2C_HOST_URL:=https://github.com/skvadrik/re2c/releases/download/${PKG_RE2C_HOST_VERSION}/re2c-${PKG_RE2C_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "re2c_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/readline_host.package b/groups.d/010.host_deps.d/readline_host.package
new file mode 100644
index 00000000..071a7210
--- /dev/null
+++ b/groups.d/010.host_deps.d/readline_host.package
@@ -0,0 +1,11 @@
+: ${PKG_READLINE_HOST_DEPENDS:="ncurses_host ncursestw_host ncursesw_host"};
+: ${PKG_READLINE_HOST_SHA256SUM:=3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35};
+: ${PKG_READLINE_HOST_VERSION:=8.2};
+: ${PKG_READLINE_HOST_URL:=https://ftp.gnu.org/gnu/readline/readline-${PKG_READLINE_HOST_VERSION}.tar.gz};
+: ${PKG_READLINE_HOST_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
+: ${PKG_READLINE_HOST_CONFIGURE_ARGS_EXTRA:="--with-curses"};
+: ${PKG_READLINE_HOST_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+
+ex_pkg_register "readline_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/ruby_host.package b/groups.d/010.host_deps.d/ruby_host.package
new file mode 100644
index 00000000..53df7757
--- /dev/null
+++ b/groups.d/010.host_deps.d/ruby_host.package
@@ -0,0 +1,12 @@
+: ${PKG_RUBY_HOST_SHA256SUM:=ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507};
+: ${PKG_RUBY_HOST_VERSION:=2.3.0};
+: ${PKG_RUBY_HOST_URL:=https://cache.ruby-lang.org/pub/ruby/${PKG_RUBY_HOST_VERSION%.*}/ruby-${PKG_RUBY_HOST_VERSION}.tar.gz};
+: ${PKG_RUBY_HOST_BUILD_STEPS_DISABLE:=configure_patch};
+: ${PKG_RUBY_HOST_CFLAGS_CONFIGURE:="-g0 -O1 -DHAVE_RL_USERNAME_COMPLETION_FUNCTION=1"};
+: ${PKG_RUBY_HOST_CONFIGURE_ARGS_EXTRA:="--disable-install-rdoc --with-out-ext=fiddle,openssl"};
+: ${PKG_RUBY_HOST_MAKEFLAGS_VERBOSITY:="none"};
+: ${PKG_RUBY_HOST_VARS_FILE:="vars/ruby.vars"}
+
+ex_pkg_register "ruby_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/sbsigntools_host.package b/groups.d/010.host_deps.d/sbsigntools_host.package
new file mode 100644
index 00000000..2bdc5d68
--- /dev/null
+++ b/groups.d/010.host_deps.d/sbsigntools_host.package
@@ -0,0 +1,10 @@
+: ${PKG_SBSIGNTOOLS_HOST_DEPENDS:="binutils_build libressl_host util_linux_host"};
+: ${PKG_SBSIGNTOOLS_HOST_URLS_GIT:=sbsigntools-master=https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git@master};
+: ${PKG_SBSIGNTOOLS_HOST_SUBDIR:=sbsigntools-master};
+: ${PKG_SBSIGNTOOLS_HOST_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX}/opt/include"};
+: ${PKG_SBSIGNTOOLS_HOST_IN_TREE:=1};
+: ${PKG_SBSIGNTOOLS_HOST_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX}/opt/lib"};
+
+ex_pkg_register "sbsigntools_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/sqlite3_host.package b/groups.d/010.host_deps.d/sqlite3_host.package
new file mode 100644
index 00000000..a1584fed
--- /dev/null
+++ b/groups.d/010.host_deps.d/sqlite3_host.package
@@ -0,0 +1,8 @@
+: ${PKG_SQLITE3_HOST_DEPENDS:="readline_host ncurses_host"};
+: ${PKG_SQLITE3_HOST_SHA256SUM:=bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3};
+: ${PKG_SQLITE3_HOST_VERSION:=3360000};
+: ${PKG_SQLITE3_HOST_URL:=https://sqlite.org/2021/sqlite-autoconf-${PKG_SQLITE3_HOST_VERSION}.tar.gz};
+
+ex_pkg_register "sqlite3_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/texinfo_host.package b/groups.d/010.host_deps.d/texinfo_host.package
new file mode 100644
index 00000000..75d6ea4f
--- /dev/null
+++ b/groups.d/010.host_deps.d/texinfo_host.package
@@ -0,0 +1,12 @@
+: ${PKG_TEXINFO_HOST_SHA256SUM:=988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa};
+: ${PKG_TEXINFO_HOST_VERSION:=6.7};
+: ${PKG_TEXINFO_HOST_URL:=https://ftp.gnu.org/gnu/texinfo/texinfo-${PKG_TEXINFO_HOST_VERSION}.tar.xz};
+: ${PKG_TEXINFO_HOST_INSTALL_FILES_V2:="
+ !bin/makeinfo=bin/makeinfo.dist
+ +%[_files]/bin/makeinfo=bin/makeinfo
+ m0755=bin/makeinfo"};
+: ${PKG_TEXINFO_HOST_LIBTOOL:=rdlibtool};
+
+ex_pkg_register "texinfo_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/tzdb_host.package b/groups.d/010.host_deps.d/tzdb_host.package
new file mode 100644
index 00000000..1db45d1c
--- /dev/null
+++ b/groups.d/010.host_deps.d/tzdb_host.package
@@ -0,0 +1,10 @@
+: ${PKG_TZDB_HOST_DEPENDS:="clzip_host"};
+: ${PKG_TZDB_HOST_SHA256SUM:=511af6b467f40b1ec9ac3684d1701793af470f3e29ddfb97b82be438e8601a7a};
+: ${PKG_TZDB_HOST_VERSION:=2024a};
+: ${PKG_TZDB_HOST_URL:=https://data.iana.org/time-zones/releases/tzdb-${PKG_TZDB_HOST_VERSION}.tar.lz};
+: ${PKG_TZDB_HOST_BUILD_DIR:="tzdb-${PKG_TZDB_HOST_VERSION}"};
+: ${PKG_TZDB_HOST_INSTALL_FILES_V2:="-=etc/%<*>"};
+
+ex_pkg_register "tzdb_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/util_linux_host.package b/groups.d/010.host_deps.d/util_linux_host.package
new file mode 100644
index 00000000..5d0881df
--- /dev/null
+++ b/groups.d/010.host_deps.d/util_linux_host.package
@@ -0,0 +1,9 @@
+: ${PKG_UTIL_LINUX_HOST_DEPENDS:="ncursesw_host"};
+: ${PKG_UTIL_LINUX_HOST_SHA256SUM:=37de03dbb98cdeffdf9e754122b0aca2a9bbdc19769f6570dfcb6f123643bf53};
+: ${PKG_UTIL_LINUX_HOST_VERSION:=2.36.1};
+: ${PKG_UTIL_LINUX_HOST_URL:=https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${PKG_UTIL_LINUX_HOST_VERSION%.*}/util-linux-${PKG_UTIL_LINUX_HOST_VERSION}.tar.gz};
+: ${PKG_UTIL_LINUX_HOST_CONFIGURE_ARGS_EXTRA:="--disable-all-programs --enable-libuuid"};
+
+ex_pkg_register "util_linux_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.d/xz_host.package b/groups.d/010.host_deps.d/xz_host.package
new file mode 100644
index 00000000..0e30bf06
--- /dev/null
+++ b/groups.d/010.host_deps.d/xz_host.package
@@ -0,0 +1,7 @@
+: ${PKG_XZ_HOST_SHA256SUM:=3e1e518ffc912f86608a8cb35e4bd41ad1aec210df2a47aaa1f95e7f5576ef56};
+: ${PKG_XZ_HOST_VERSION:=5.2.5};
+: ${PKG_XZ_HOST_URL:=https://mirror.midipix.org/xz/xz-${PKG_XZ_HOST_VERSION}.tar.xz};
+
+ex_pkg_register "xz_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/010.host_deps.group b/groups.d/010.host_deps.group
new file mode 100644
index 00000000..6c7c8280
--- /dev/null
+++ b/groups.d/010.host_deps.group
@@ -0,0 +1,18 @@
+#
+# Build group host_deps
+#
+HOST_DEPS_BUILD_TYPE="host";
+rtl_lconcat2 \$HOST_DEPS_CFLAGS_CONFIGURE \$DEFAULT_CFLAGS_HOST "-I${PREFIX}/include";
+rtl_lconcat2 \$HOST_DEPS_CPPFLAGS_CONFIGURE \$DEFAULT_CPPFLAGS_HOST "-I${PREFIX}/include";
+rtl_lconcat2 \$HOST_DEPS_CXXFLAGS_CONFIGURE \$DEFAULT_CXXFLAGS_HOST "-I${PREFIX}/include";
+HOST_DEPS_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX} --program-prefix=";
+HOST_DEPS_GROUP_DEPENDS="host_tools";
+HOST_DEPS_LDFLAGS_CONFIGURE="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib";
+HOST_DEPS_MAKEFLAGS_INSTALL="prefix= PREFIX=";
+HOST_DEPS_PKG_CONFIG="${PREFIX}/bin/pkgconf";
+HOST_DEPS_PREFIX="${PREFIX}";
+HOST_DEPS_TOOLS_RPM_DISABLE=1;
+
+ex_pkg_register_group "host_deps" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/020.host_deps_rpm.d/libarchive_host.package b/groups.d/020.host_deps_rpm.d/libarchive_host.package
new file mode 100644
index 00000000..028c1907
--- /dev/null
+++ b/groups.d/020.host_deps_rpm.d/libarchive_host.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBARCHIVE_HOST_SHA256SUM:=f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0};
+: ${PKG_LIBARCHIVE_HOST_VERSION:=3.5.2};
+: ${PKG_LIBARCHIVE_HOST_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_HOST_VERSION}.tar.xz};
+: ${PKG_LIBARCHIVE_HOST_CONFIGURE_ARGS_EXTRA:="--without-xml2"};
+: ${PKG_LIBARCHIVE_HOST_LIBTOOL:=rdlibtool};
+
+ex_pkg_register "libarchive_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps_rpm";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/020.host_deps_rpm.d/popt_host.package b/groups.d/020.host_deps_rpm.d/popt_host.package
new file mode 100644
index 00000000..209fa0e2
--- /dev/null
+++ b/groups.d/020.host_deps_rpm.d/popt_host.package
@@ -0,0 +1,7 @@
+: ${PKG_POPT_HOST_SHA256SUM:=5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1};
+: ${PKG_POPT_HOST_VERSION:=1.18};
+: ${PKG_POPT_HOST_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/popt/popt-${PKG_POPT_HOST_VERSION}.tar.gz};
+
+ex_pkg_register "popt_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps_rpm";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/020.host_deps_rpm.d/rpm_host.package b/groups.d/020.host_deps_rpm.d/rpm_host.package
new file mode 100644
index 00000000..f5f5039e
--- /dev/null
+++ b/groups.d/020.host_deps_rpm.d/rpm_host.package
@@ -0,0 +1,16 @@
+: ${PKG_RPM_HOST_DEPENDS:="libarchive_host popt_host file_host"};
+: ${PKG_RPM_HOST_SHA256SUM:=ca5974e9da2939afb422598818ef187385061889ba766166c4a3829c5ef8d411};
+: ${PKG_RPM_HOST_VERSION:=4.16.0};
+: ${PKG_RPM_HOST_URL:=http://ftp.rpm.org/releases/rpm-${PKG_RPM_HOST_VERSION%.*}.x/rpm-${PKG_RPM_HOST_VERSION}.tar.bz2};
+: ${PKG_RPM_HOST_LIBTOOL:=rdlibtool};
+: ${PKG_RPM_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include -I${PREFIX}/include/dbus-1.0 -I${PREFIX}/lib/dbus-1.0/include"};
+: ${PKG_RPM_HOST_CONFIGURE_ARGS_EXTRA:="--enable-bdb=no --enable-ndb --with-crypto=openssl --with-vendor=midipix --without-lua --disable-libelf"};
+: ${PKG_RPM_HOST_INSTALL_FILES_V2:="
+ +%[_files]/lib/rpm/elfdeps=lib/rpm/elfdeps
+ m0755=lib/rpm/elfdeps
+ -=var/%<*>"};
+: ${PKG_RPM_HOST_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "rpm_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_deps_rpm";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/020.host_deps_rpm.group b/groups.d/020.host_deps_rpm.group
new file mode 100644
index 00000000..6376d247
--- /dev/null
+++ b/groups.d/020.host_deps_rpm.group
@@ -0,0 +1,18 @@
+#
+# Build group host_deps_rpm
+#
+HOST_DEPS_RPM_BUILD_TYPE="host";
+rtl_lconcat2 \$HOST_DEPS_RPM_CFLAGS_CONFIGURE \$DEFAULT_CFLAGS_HOST "-I${PREFIX}/include";
+rtl_lconcat2 \$HOST_DEPS_RPM_CPPFLAGS_CONFIGURE \$DEFAULT_CPPFLAGS_HOST "-I${PREFIX}/include";
+rtl_lconcat2 \$HOST_DEPS_RPM_CXXFLAGS_CONFIGURE \$DEFAULT_CXXFLAGS_HOST "-I${PREFIX}/include";
+HOST_DEPS_RPM_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX}";
+HOST_DEPS_RPM_GROUP_DEPENDS="host_deps host_tools";
+HOST_DEPS_RPM_LDFLAGS_CONFIGURE="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib";
+HOST_DEPS_RPM_MAKEFLAGS_INSTALL_EXTRA="prefix= PREFIX=";
+HOST_DEPS_RPM_PKG_CONFIG="${PREFIX}/bin/pkgconf";
+HOST_DEPS_RPM_PREFIX="${PREFIX}";
+HOST_DEPS_RPM_RPM_DISABLE=1;
+
+ex_pkg_register_group "host_deps_rpm" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/binutils_cross.package b/groups.d/030.cross_toolchain.d/binutils_cross.package
new file mode 100644
index 00000000..6340dc5d
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/binutils_cross.package
@@ -0,0 +1,20 @@
+: ${PKG_BINUTILS_CROSS_DEPENDS:="perk_cross"};
+: ${PKG_BINUTILS_CROSS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_CROSS_VERSION:=2.24.51};
+: ${PKG_BINUTILS_CROSS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_CROSS_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_CROSS_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_CROSS_CFLAGS_CONFIGURE:="-I${PREFIX_LOCAL}/include -g2 -O0"};
+: ${PKG_BINUTILS_CROSS_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --prefix=${PREFIX_LOCAL} --target=${DEFAULT_TARGET} --with-sysroot=${PREFIX_CROSS}"};
+: ${PKG_BINUTILS_CROSS_INSTALL_FILES_V2:="
+ @%[_target]-windmc=bin/windmc
+ @%[_target]-windres=bin/windres"};
+: ${PKG_BINUTILS_CROSS_LDFLAGS_CONFIGURE:="-L${PREFIX_LOCAL}/lib -Wl,-rpath,${PREFIX_LOCAL}/lib"};
+: ${PKG_BINUTILS_CROSS_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_CROSS_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= prefix="};
+: ${PKG_BINUTILS_CROSS_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_CROSS_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_CROSS_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_BINUTILS_CROSS_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/binutils_cross_mingw32.package b/groups.d/030.cross_toolchain.d/binutils_cross_mingw32.package
new file mode 100644
index 00000000..33d477e7
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/binutils_cross_mingw32.package
@@ -0,0 +1,15 @@
+: ${PKG_BINUTILS_CROSS_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_CROSS_MINGW32_VERSION:=2.24.51};
+: ${PKG_BINUTILS_CROSS_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_CROSS_MINGW32_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_CROSS_MINGW32_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_CROSS_MINGW32_CONFIGURE_ARGS:="--disable-nls --disable-werror --enable-deterministic-archives --prefix=${PREFIX_LOCAL} --target=x86_64-w64-mingw32 --with-sysroot=${PREFIX_MINGW32}"};
+: ${PKG_BINUTILS_CROSS_MINGW32_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_CROSS_MINGW32_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+: ${PKG_BINUTILS_CROSS_MINGW32_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_CROSS_MINGW32_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_CROSS_MINGW32_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_BINUTILS_CROSS_MINGW32_TARGET:="x86_64-w64-mingw32"};
+: ${PKG_BINUTILS_CROSS_MINGW32_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_cross_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gcc_full_cross.package b/groups.d/030.cross_toolchain.d/gcc_full_cross.package
new file mode 100644
index 00000000..2ac35d37
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gcc_full_cross.package
@@ -0,0 +1,12 @@
+: ${PKG_GCC_FULL_CROSS_DEPENDS:="gcc_stage1_cross gcc_libstdcpp_v3_cross ldso_cross musl_full_cross"};
+: ${PKG_GCC_FULL_CROSS_VERSION:=4.6.4};
+: ${PKG_GCC_FULL_CROSS_BASE_DIR:=${BUILD_WORKDIR}/gcc-cross-${DEFAULT_TARGET}};
+: ${PKG_GCC_FULL_CROSS_BUILD_DIR:="cbb-gcc-4.6.4-cross-x86_64-nt64-midipix"};
+: ${PKG_GCC_FULL_CROSS_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_FULL_CROSS_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_FULL_CROSS_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_GCC_FULL_CROSS_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_full_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gcc_libstdcpp_v3_cross.package b/groups.d/030.cross_toolchain.d/gcc_libstdcpp_v3_cross.package
new file mode 100644
index 00000000..2414ac9c
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gcc_libstdcpp_v3_cross.package
@@ -0,0 +1,11 @@
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_DEPENDS:="gcc_runtime_cross gcc_stage1_cross ldso_cross musl_full_cross"};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_VERSION:=4.6.4};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_BASE_DIR:=${BUILD_WORKDIR}/gcc-cross-${DEFAULT_TARGET}};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_GCC_LIBSTDCPP_V3_CROSS_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_libstdcpp_v3_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gcc_runtime_cross.package b/groups.d/030.cross_toolchain.d/gcc_runtime_cross.package
new file mode 100644
index 00000000..5e01a513
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gcc_runtime_cross.package
@@ -0,0 +1,11 @@
+: ${PKG_GCC_RUNTIME_CROSS_DEPENDS:="gcc_stage1_cross musl_no_complex_cross psxtypes_cross psxstub_cross mdso_cross perk_cross"};
+: ${PKG_GCC_RUNTIME_CROSS_VERSION:=4.6.4};
+: ${PKG_GCC_RUNTIME_CROSS_BASE_DIR:=${BUILD_WORKDIR}/gcc-cross-${DEFAULT_TARGET}};
+: ${PKG_GCC_RUNTIME_CROSS_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_RUNTIME_CROSS_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_RUNTIME_CROSS_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_GCC_RUNTIME_CROSS_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_runtime_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gcc_stage1_cross.package b/groups.d/030.cross_toolchain.d/gcc_stage1_cross.package
new file mode 100644
index 00000000..16978a83
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gcc_stage1_cross.package
@@ -0,0 +1,12 @@
+: ${PKG_GCC_STAGE1_CROSS_DEPENDS:="binutils_cross gmp_cross mpc_cross mpfr_cross"};
+: ${PKG_GCC_STAGE1_CROSS_VERSION:=4.6.4};
+: ${PKG_GCC_STAGE1_CROSS_BASE_DIR:=${BUILD_WORKDIR}/gcc-cross-${DEFAULT_TARGET}};
+: ${PKG_GCC_STAGE1_CROSS_CFLAGS_CONFIGURE:="-I${PREFIX_LOCAL}/include -g3 -O0"};
+: ${PKG_GCC_STAGE1_CROSS_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_STAGE1_CROSS_LDFLAGS_CONFIGURE:="-L${PREFIX_LOCAL}/lib -Wl,-rpath,${PREFIX_LOCAL}/lib"};
+: ${PKG_GCC_STAGE1_CROSS_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_GCC_STAGE1_CROSS_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_stage1_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gcc_stage1_cross_mingw32.package b/groups.d/030.cross_toolchain.d/gcc_stage1_cross_mingw32.package
new file mode 100644
index 00000000..d223ce80
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gcc_stage1_cross_mingw32.package
@@ -0,0 +1,14 @@
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_DEPENDS:="binutils_cross_mingw32 gmp_cross mpc_cross mpfr_cross"};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_VERSION:=4.6.4};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_BASE_DIR:=${BUILD_WORKDIR}/gcc-cross-x86_64-w64-mingw32};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_CFLAGS_CONFIGURE:="-I${PREFIX_LOCAL}/include"};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_CONFIGURE_ARGS:="--disable-nls --prefix=${PREFIX_LOCAL} --target=x86_64-w64-mingw32"};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_LDFLAGS_CONFIGURE:="-L${PREFIX_LOCAL}/lib -Wl,-rpath,${PREFIX_LOCAL}/lib"};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_PREFIX:=${PREFIX_LOCAL}};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_TARGET:="x86_64-w64-mingw32"};
+: ${PKG_GCC_STAGE1_CROSS_MINGW32_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_stage1_cross_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/gmp_cross.package b/groups.d/030.cross_toolchain.d/gmp_cross.package
new file mode 100644
index 00000000..f20f7c01
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/gmp_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_GMP_CROSS_SHA256SUM:=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2};
+: ${PKG_GMP_CROSS_VERSION:=6.1.2};
+: ${PKG_GMP_CROSS_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_CROSS_VERSION}.tar.bz2};
+: ${PKG_GMP_CROSS_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix="};
+: ${PKG_GMP_CROSS_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gmp/gmp-${PKG_GMP_CROSS_VERSION}.midipix.patch"};
+: ${PKG_GMP_CROSS_PREFIX:=${PREFIX_LOCAL}};
+
+ex_pkg_register "gmp_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/ldso_cross.package b/groups.d/030.cross_toolchain.d/ldso_cross.package
new file mode 100644
index 00000000..df9fc13c
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/ldso_cross.package
@@ -0,0 +1,13 @@
+: ${PKG_LDSO_CROSS_PREFIX="${PREFIX_CROSS}"};
+: ${PKG_LDSO_CROSS_DEPENDS:="gcc_stage1_cross musl_full_cross psxtypes_cross"};
+: ${PKG_LDSO_CROSS_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
+: ${PKG_LDSO_CROSS_BUILD_TYPE:=cross};
+: ${PKG_LDSO_CROSS_CFLAGS_CONFIGURE_EXTRA:="-O0 -DPE_LDSO"};
+: ${PKG_LDSO_CROSS_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET} --disable-shared"};
+: ${PKG_LDSO_CROSS_INSTALL_FILES_V2:="@../%[_target]/lib/libldso.a=%[_prefix]/lib/libldso.a"};
+: ${PKG_LDSO_CROSS_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a};
+: ${PKG_LDSO_CROSS_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a};
+
+ex_pkg_register "ldso_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/mdso_cross.package b/groups.d/030.cross_toolchain.d/mdso_cross.package
new file mode 100644
index 00000000..8dccd1b0
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/mdso_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_MDSO_CROSS_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"};
+: ${PKG_MDSO_CROSS_CONFIGURE_ARGS:="--prefix="};
+: ${PKG_MDSO_CROSS_INSTALL_FILES_V2:="
+ @mdso=bin/${DEFAULT_TARGET}-mdso
+ /=${DEFAULT_TARGET}/bin
+ +bin/mdso=${DEFAULT_TARGET}/bin/mdso"};
+
+ex_pkg_register "mdso_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/mpc_cross.package b/groups.d/030.cross_toolchain.d/mpc_cross.package
new file mode 100644
index 00000000..5c9f4d2a
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/mpc_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_MPC_CROSS_DEPENDS:="gmp_cross mpfr_cross"};
+: ${PKG_MPC_CROSS_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff};
+: ${PKG_MPC_CROSS_VERSION:=1.0.1};
+: ${PKG_MPC_CROSS_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_CROSS_VERSION}.tar.gz};
+: ${PKG_MPC_CROSS_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX_LOCAL} --with-mpfr=${PREFIX_LOCAL}"};
+: ${PKG_MPC_CROSS_PREFIX:=${PREFIX_LOCAL}};
+
+ex_pkg_register "mpc_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/mpfr_cross.package b/groups.d/030.cross_toolchain.d/mpfr_cross.package
new file mode 100644
index 00000000..1cd156f0
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/mpfr_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_MPFR_CROSS_DEPENDS:="gmp_cross"};
+: ${PKG_MPFR_CROSS_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b};
+: ${PKG_MPFR_CROSS_VERSION:=3.1.2};
+: ${PKG_MPFR_CROSS_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_CROSS_VERSION}.tar.bz2};
+: ${PKG_MPFR_CROSS_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX_LOCAL}"};
+: ${PKG_MPFR_CROSS_PREFIX:=${PREFIX_LOCAL}};
+
+ex_pkg_register "mpfr_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/musl_full_cross.package b/groups.d/030.cross_toolchain.d/musl_full_cross.package
new file mode 100644
index 00000000..25fe6955
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/musl_full_cross.package
@@ -0,0 +1,17 @@
+: ${PKG_MUSL_FULL_CROSS_DEPENDS:="gcc_stage1_cross gcc_runtime_cross"};
+: ${PKG_MUSL_FULL_CROSS_SHA256SUM:=a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4};
+: ${PKG_MUSL_FULL_CROSS_VERSION:=1.2.5};
+: ${PKG_MUSL_FULL_CROSS_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_FULL_CROSS_VERSION}.tar.gz"}
+: ${PKG_MUSL_FULL_CROSS_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
+: ${PKG_MUSL_FULL_CROSS_BASE_DIR:=${BUILD_WORKDIR}/musl_full-cross-${DEFAULT_TARGET}};
+: ${PKG_MUSL_FULL_CROSS_BUILD_DIR:=build/musl};
+: ${PKG_MUSL_FULL_CROSS_BUILD_TYPE:=cross};
+: ${PKG_MUSL_FULL_CROSS_CONFIGURE:=build/mmglue/configure};
+: ${PKG_MUSL_FULL_CROSS_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_FULL_CROSS_VERSION} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MUSL_FULL_CROSS_INSTALL_FILES_V2:="-=include/iconv.h"};
+: ${PKG_MUSL_FULL_CROSS_SUBDIR:=musl-${PKG_MUSL_FULL_CROSS_VERSION}};
+: ${PKG_MUSL_FULL_CROSS_VARS_FILE:="vars/musl.vars"};
+
+ex_pkg_register "musl_full_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/musl_no_complex_cross.package b/groups.d/030.cross_toolchain.d/musl_no_complex_cross.package
new file mode 100644
index 00000000..50af268b
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/musl_no_complex_cross.package
@@ -0,0 +1,18 @@
+: ${PKG_MUSL_NO_COMPLEX_CROSS_PREFIX:="${PREFIX_CROSS}"};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_DEPENDS:="gcc_stage1_cross "};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_SHA256SUM:=${PKG_MUSL_FULL_CROSS_SHA256SUM}};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_VERSION:=${PKG_MUSL_FULL_CROSS_VERSION}};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_NO_COMPLEX_CROSS_VERSION}.tar.gz"}
+: ${PKG_MUSL_NO_COMPLEX_CROSS_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_BASE_DIR:=${BUILD_WORKDIR}/musl_no_complex-cross-${DEFAULT_TARGET}};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_BUILD_DIR:=build/musl};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_BUILD_TYPE:=cross};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_CONFIGURE:=build/mmglue/configure};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_NO_COMPLEX_CROSS_VERSION} --no-complex --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_INSTALL_FILES_V2:="-=include/iconv.h"};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_SUBDIR:=musl-${PKG_MUSL_NO_COMPLEX_CROSS_VERSION}};
+: ${PKG_MUSL_NO_COMPLEX_CROSS_VARS_FILE:="vars/musl.vars"};
+
+ex_pkg_register "musl_no_complex_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/nasm_cross.package b/groups.d/030.cross_toolchain.d/nasm_cross.package
new file mode 100644
index 00000000..097413a2
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/nasm_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_NASM_CROSS_SHA256SUM:=c77745f4802375efeee2ec5c0ad6b7f037ea9c87c92b149a9637ff099f162558};
+: ${PKG_NASM_CROSS_VERSION:=2.16.01};
+: ${PKG_NASM_CROSS_URL:=http://www.nasm.us/pub/nasm/releasebuilds/${PKG_NASM_CROSS_VERSION}/nasm-${PKG_NASM_CROSS_VERSION}.tar.xz};
+: ${PKG_NASM_CROSS_CFLAGS_CONFIGURE_EXTRA:=-DCOFF_MIDIPIX};
+: ${PKG_NASM_CROSS_INSTALL_FILES_V2:="!bin/%<*>=bin/%[_target]-%[FNAME]"};
+: ${PKG_NASM_CROSS_PREFIX:=${PREFIX_LOCAL}};
+
+ex_pkg_register "nasm_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/perk_cross.package b/groups.d/030.cross_toolchain.d/perk_cross.package
new file mode 100644
index 00000000..1e6145a6
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/perk_cross.package
@@ -0,0 +1,9 @@
+: ${PKG_PERK_CROSS_DEPENDS:="mdso_cross"};
+: ${PKG_PERK_CROSS_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"};
+: ${PKG_PERK_CROSS_CONFIGURE_ARGS:="--prefix="};
+: ${PKG_PERK_CROSS_INSTALL_FILES_V2:="@perk=bin/${DEFAULT_TARGET}-perk"};
+: ${PKG_PERK_CROSS_CFLAGS_CONFIGURE:="-I${PREFIX_LOCAL}/include"};
+
+ex_pkg_register "perk_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/psxstub_cross.package b/groups.d/030.cross_toolchain.d/psxstub_cross.package
new file mode 100644
index 00000000..586e8a40
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/psxstub_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_PSXSTUB_CROSS_PREFIX:="${PREFIX_CROSS}"};
+: ${PKG_PSXSTUB_CROSS_DEPENDS:="gcc_stage1_cross"};
+: ${PKG_PSXSTUB_CROSS_URLS_GIT:="psxstub=${DEFAULT_GITROOT}/psxstub"};
+: ${PKG_PSXSTUB_CROSS_BUILD_STEPS_DISABLE:=build};
+: ${PKG_PSXSTUB_CROSS_ENV_VARS_EXTRA:=TARGET=${DEFAULT_TARGET}};
+: ${PKG_PSXSTUB_CROSS_IN_TREE:=1};
+
+ex_pkg_register "psxstub_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.d/psxtypes_cross.package b/groups.d/030.cross_toolchain.d/psxtypes_cross.package
new file mode 100644
index 00000000..aee82d3e
--- /dev/null
+++ b/groups.d/030.cross_toolchain.d/psxtypes_cross.package
@@ -0,0 +1,10 @@
+: ${PKG_PSXTYPES_CROSS_PREFIX:="${PREFIX_CROSS}"};
+: ${PKG_PSXTYPES_CROSS_DEPENDS:="gcc_stage1_cross"};
+: ${PKG_PSXTYPES_CROSS_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes};
+: ${PKG_PSXTYPES_CROSS_BUILD_STEPS_DISABLE:=build};
+: ${PKG_PSXTYPES_CROSS_CONFIGURE_ARGS:="--disable-nls --prefix="};
+: ${PKG_PSXTYPES_CROSS_IN_TREE:=1};
+
+ex_pkg_register "psxtypes_cross" "${RTL_FILEOP_SOURCE_FNAME}" "cross_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/030.cross_toolchain.group b/groups.d/030.cross_toolchain.group
new file mode 100644
index 00000000..148f93d5
--- /dev/null
+++ b/groups.d/030.cross_toolchain.group
@@ -0,0 +1,14 @@
+#
+# Build group cross_toolchain
+#
+CROSS_TOOLCHAIN_BUILD_TYPE="host";
+CROSS_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --prefix= --target=${DEFAULT_TARGET}";
+CROSS_TOOLCHAIN_GROUP_DEPENDS="host_deps host_deps_rpm host_tools";
+CROSS_TOOLCHAIN_MAKEFLAGS_INSTALL_EXTRA="prefix= PREFIX=";
+CROSS_TOOLCHAIN_PKG_CONFIG="${PREFIX}/bin/pkgconf";
+CROSS_TOOLCHAIN_PREFIX="${PREFIX_LOCAL}";
+CROSS_TOOLCHAIN_RPM_DISABLE=1;
+
+ex_pkg_register_group "cross_toolchain" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/binutils_host.package b/groups.d/040.host_toolchain.d/binutils_host.package
new file mode 100644
index 00000000..c4e2ce41
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/binutils_host.package
@@ -0,0 +1,19 @@
+: ${PKG_BINUTILS_HOST_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_HOST_VERSION:=2.24.51};
+: ${PKG_BINUTILS_HOST_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_HOST_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include -g2 -O0"};
+: ${PKG_BINUTILS_HOST_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --prefix=${PREFIX} --target=${DEFAULT_TARGET} --with-sysroot=${PREFIX_NATIVE}"};
+: ${PKG_BINUTILS_HOST_INSTALL_FILES_V2:="
+ @%[_target]-windmc=bin/windmc
+ @%[_target]-windres=bin/windres"};
+: ${PKG_BINUTILS_HOST_LDFLAGS_CONFIGURE:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"};
+: ${PKG_BINUTILS_HOST_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= prefix="};
+: ${PKG_BINUTILS_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_HOST_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_HOST_PREFIX:=${PREFIX}};
+: ${PKG_BINUTILS_HOST_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/binutils_host_mingw32.package b/groups.d/040.host_toolchain.d/binutils_host_mingw32.package
new file mode 100644
index 00000000..020971b1
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/binutils_host_mingw32.package
@@ -0,0 +1,15 @@
+: ${PKG_BINUTILS_HOST_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_HOST_MINGW32_VERSION:=2.24.51};
+: ${PKG_BINUTILS_HOST_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_MINGW32_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_HOST_MINGW32_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_HOST_MINGW32_CONFIGURE_ARGS:="--disable-nls --disable-werror --enable-deterministic-archives --prefix=${PREFIX} --target=x86_64-w64-mingw32 --with-sysroot=${PREFIX_MINGW32}"};
+: ${PKG_BINUTILS_HOST_MINGW32_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_HOST_MINGW32_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+: ${PKG_BINUTILS_HOST_MINGW32_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_HOST_MINGW32_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_HOST_MINGW32_PREFIX:=${PREFIX}};
+: ${PKG_BINUTILS_HOST_MINGW32_TARGET:="x86_64-w64-mingw32"};
+: ${PKG_BINUTILS_HOST_MINGW32_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_host_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gcc_full_host.package b/groups.d/040.host_toolchain.d/gcc_full_host.package
new file mode 100644
index 00000000..79dd9079
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gcc_full_host.package
@@ -0,0 +1,12 @@
+: ${PKG_GCC_FULL_HOST_DEPENDS:="gcc_stage1_host gcc_libstdcpp_v3_host ldso_host musl_full_host"};
+: ${PKG_GCC_FULL_HOST_VERSION:=4.6.4};
+: ${PKG_GCC_FULL_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
+: ${PKG_GCC_FULL_HOST_BUILD_DIR:="cbb-gcc-4.6.4-host-x86_64-nt64-midipix"};
+: ${PKG_GCC_FULL_HOST_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_FULL_HOST_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_FULL_HOST_PREFIX:=${PREFIX}};
+: ${PKG_GCC_FULL_HOST_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_full_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gcc_libstdcpp_v3_host.package b/groups.d/040.host_toolchain.d/gcc_libstdcpp_v3_host.package
new file mode 100644
index 00000000..0d0534aa
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gcc_libstdcpp_v3_host.package
@@ -0,0 +1,11 @@
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_DEPENDS:="gcc_runtime_host gcc_stage1_host ldso_host musl_full_host"};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_VERSION:=4.6.4};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_PREFIX:=${PREFIX}};
+: ${PKG_GCC_LIBSTDCPP_V3_HOST_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_libstdcpp_v3_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gcc_runtime_host.package b/groups.d/040.host_toolchain.d/gcc_runtime_host.package
new file mode 100644
index 00000000..52111b1a
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gcc_runtime_host.package
@@ -0,0 +1,11 @@
+: ${PKG_GCC_RUNTIME_HOST_DEPENDS:="gcc_stage1_host musl_no_complex_host psxstub_host"};
+: ${PKG_GCC_RUNTIME_HOST_VERSION:=4.6.4};
+: ${PKG_GCC_RUNTIME_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
+: ${PKG_GCC_RUNTIME_HOST_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_RUNTIME_HOST_NO_CLEAN_BASE_DIR:=1};
+: ${PKG_GCC_RUNTIME_HOST_PREFIX:=${PREFIX}};
+: ${PKG_GCC_RUNTIME_HOST_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_runtime_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gcc_stage1_host.package b/groups.d/040.host_toolchain.d/gcc_stage1_host.package
new file mode 100644
index 00000000..77e098c9
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gcc_stage1_host.package
@@ -0,0 +1,12 @@
+: ${PKG_GCC_STAGE1_HOST_DEPENDS:="binutils_host gmp_host mpc_host mpfr_host"};
+: ${PKG_GCC_STAGE1_HOST_VERSION:=4.6.4};
+: ${PKG_GCC_STAGE1_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
+: ${PKG_GCC_STAGE1_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
+: ${PKG_GCC_STAGE1_HOST_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_STAGE1_HOST_LDFLAGS_CONFIGURE:="-Wl,-rpath,${PREFIX}/lib"};
+: ${PKG_GCC_STAGE1_HOST_PREFIX:=${PREFIX}};
+: ${PKG_GCC_STAGE1_HOST_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_stage1_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gcc_stage1_host_mingw32.package b/groups.d/040.host_toolchain.d/gcc_stage1_host_mingw32.package
new file mode 100644
index 00000000..56dc568c
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gcc_stage1_host_mingw32.package
@@ -0,0 +1,14 @@
+: ${PKG_GCC_STAGE1_HOST_MINGW32_DEPENDS:="binutils_host_mingw32 gmp_host mpc_host mpfr_host"};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_VERSION:=4.6.4};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-x86_64-w64-mingw32};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_CONFIGURE_ARGS:="--disable-nls --prefix=${PREFIX} --target=x86_64-w64-mingw32"};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_LDFLAGS_CONFIGURE:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_PREFIX:=${PREFIX}};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_TARGET:="x86_64-w64-mingw32"};
+: ${PKG_GCC_STAGE1_HOST_MINGW32_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_stage1_host_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/gmp_host.package b/groups.d/040.host_toolchain.d/gmp_host.package
new file mode 100644
index 00000000..67dd2c44
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/gmp_host.package
@@ -0,0 +1,10 @@
+: ${PKG_GMP_HOST_SHA256SUM:=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2};
+: ${PKG_GMP_HOST_VERSION:=6.1.2};
+: ${PKG_GMP_HOST_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_HOST_VERSION}.tar.bz2};
+: ${PKG_GMP_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix="};
+: ${PKG_GMP_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gmp/gmp-${PKG_GMP_HOST_VERSION}.midipix.patch"};
+: ${PKG_GMP_HOST_PREFIX:=${PREFIX}};
+
+ex_pkg_register "gmp_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/ldso_host.package b/groups.d/040.host_toolchain.d/ldso_host.package
new file mode 100644
index 00000000..1f918045
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/ldso_host.package
@@ -0,0 +1,13 @@
+: ${PKG_LDSO_HOST_PREFIX="${PREFIX_NATIVE}"};
+: ${PKG_LDSO_HOST_DEPENDS:="gcc_stage1_host musl_full_host psxtypes_host"};
+: ${PKG_LDSO_HOST_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
+: ${PKG_LDSO_HOST_BUILD_TYPE:=cross};
+: ${PKG_LDSO_HOST_CFLAGS_CONFIGURE_EXTRA:="-O0 -DPE_LDSO"};
+: ${PKG_LDSO_HOST_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET} --disable-shared"};
+: ${PKG_LDSO_HOST_INSTALL_FILES_V2:="@../%[_target]/lib/libldso.a=%[_prefix]/lib/libldso.a"};
+: ${PKG_LDSO_HOST_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a};
+: ${PKG_LDSO_HOST_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a};
+
+ex_pkg_register "ldso_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/mpc_host.package b/groups.d/040.host_toolchain.d/mpc_host.package
new file mode 100644
index 00000000..3b5cb5d4
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/mpc_host.package
@@ -0,0 +1,10 @@
+: ${PKG_MPC_HOST_DEPENDS:="gmp_host mpfr_host"};
+: ${PKG_MPC_HOST_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff};
+: ${PKG_MPC_HOST_VERSION:=1.0.1};
+: ${PKG_MPC_HOST_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_HOST_VERSION}.tar.gz};
+: ${PKG_MPC_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX} --with-mpfr=${PREFIX}"};
+: ${PKG_MPC_HOST_PREFIX:=${PREFIX}};
+
+ex_pkg_register "mpc_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/mpfr_host.package b/groups.d/040.host_toolchain.d/mpfr_host.package
new file mode 100644
index 00000000..462184cf
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/mpfr_host.package
@@ -0,0 +1,10 @@
+: ${PKG_MPFR_HOST_DEPENDS:="gmp_host"};
+: ${PKG_MPFR_HOST_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b};
+: ${PKG_MPFR_HOST_VERSION:=3.1.2};
+: ${PKG_MPFR_HOST_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_HOST_VERSION}.tar.bz2};
+: ${PKG_MPFR_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX}"};
+: ${PKG_MPFR_HOST_PREFIX:=${PREFIX}};
+
+ex_pkg_register "mpfr_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/musl_full_host.package b/groups.d/040.host_toolchain.d/musl_full_host.package
new file mode 100644
index 00000000..c774ed52
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/musl_full_host.package
@@ -0,0 +1,17 @@
+: ${PKG_MUSL_FULL_HOST_DEPENDS:="gcc_stage1_host gcc_runtime_host"};
+: ${PKG_MUSL_FULL_HOST_SHA256SUM:=a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4};
+: ${PKG_MUSL_FULL_HOST_VERSION:=1.2.5};
+: ${PKG_MUSL_FULL_HOST_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_FULL_HOST_VERSION}.tar.gz"}
+: ${PKG_MUSL_FULL_HOST_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
+: ${PKG_MUSL_FULL_HOST_BASE_DIR:=${BUILD_WORKDIR}/musl_full-host-${DEFAULT_TARGET}};
+: ${PKG_MUSL_FULL_HOST_BUILD_DIR:=build/musl};
+: ${PKG_MUSL_FULL_HOST_BUILD_TYPE:=cross};
+: ${PKG_MUSL_FULL_HOST_CONFIGURE:=build/mmglue/configure};
+: ${PKG_MUSL_FULL_HOST_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_FULL_HOST_VERSION} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MUSL_FULL_HOST_INSTALL_FILES_V2:="-=include/iconv.h"};
+: ${PKG_MUSL_FULL_HOST_SUBDIR:=musl-${PKG_MUSL_FULL_HOST_VERSION}};
+: ${PKG_MUSL_FULL_HOST_VARS_FILE:="vars/musl.vars"};
+
+ex_pkg_register "musl_full_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/musl_no_complex_host.package b/groups.d/040.host_toolchain.d/musl_no_complex_host.package
new file mode 100644
index 00000000..da35c193
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/musl_no_complex_host.package
@@ -0,0 +1,18 @@
+: ${PKG_MUSL_NO_COMPLEX_HOST_PREFIX:="${PREFIX_NATIVE}"};
+: ${PKG_MUSL_NO_COMPLEX_HOST_DEPENDS:="gcc_stage1_host"};
+: ${PKG_MUSL_NO_COMPLEX_HOST_SHA256SUM:=${PKG_MUSL_FULL_HOST_SHA256SUM}};
+: ${PKG_MUSL_NO_COMPLEX_HOST_VERSION:=${PKG_MUSL_FULL_HOST_VERSION}};
+: ${PKG_MUSL_NO_COMPLEX_HOST_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION}.tar.gz"}
+: ${PKG_MUSL_NO_COMPLEX_HOST_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
+: ${PKG_MUSL_NO_COMPLEX_HOST_BASE_DIR:=${BUILD_WORKDIR}/musl_no_complex-host-${DEFAULT_TARGET}};
+: ${PKG_MUSL_NO_COMPLEX_HOST_BUILD_DIR:=build/musl};
+: ${PKG_MUSL_NO_COMPLEX_HOST_BUILD_TYPE:=cross};
+: ${PKG_MUSL_NO_COMPLEX_HOST_CONFIGURE:=build/mmglue/configure};
+: ${PKG_MUSL_NO_COMPLEX_HOST_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION} --no-complex --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MUSL_NO_COMPLEX_HOST_INSTALL_FILES_V2:="-=include/iconv.h"};
+: ${PKG_MUSL_NO_COMPLEX_HOST_SUBDIR:=musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION}};
+: ${PKG_MUSL_NO_COMPLEX_HOST_VARS_FILE:="vars/musl.vars"};
+
+ex_pkg_register "musl_no_complex_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/nasm_host.package b/groups.d/040.host_toolchain.d/nasm_host.package
new file mode 100644
index 00000000..049ca217
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/nasm_host.package
@@ -0,0 +1,10 @@
+: ${PKG_NASM_HOST_SHA256SUM:=c77745f4802375efeee2ec5c0ad6b7f037ea9c87c92b149a9637ff099f162558};
+: ${PKG_NASM_HOST_VERSION:=2.16.01};
+: ${PKG_NASM_HOST_URL:=http://www.nasm.us/pub/nasm/releasebuilds/${PKG_NASM_HOST_VERSION}/nasm-${PKG_NASM_HOST_VERSION}.tar.xz};
+: ${PKG_NASM_HOST_CFLAGS_CONFIGURE_EXTRA:=-DCOFF_MIDIPIX};
+: ${PKG_NASM_HOST_INSTALL_FILES_V2:="!bin/%<*>=bin/%[_target]-%[FNAME]"};
+: ${PKG_NASM_HOST_PREFIX:=${PREFIX}};
+
+ex_pkg_register "nasm_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/psxstub_host.package b/groups.d/040.host_toolchain.d/psxstub_host.package
new file mode 100644
index 00000000..0cbcdda8
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/psxstub_host.package
@@ -0,0 +1,10 @@
+: ${PKG_PSXSTUB_HOST_PREFIX:="${PREFIX_NATIVE}"};
+: ${PKG_PSXSTUB_HOST_DEPENDS:="gcc_stage1_host"};
+: ${PKG_PSXSTUB_HOST_URLS_GIT:="psxstub=${DEFAULT_GITROOT}/psxstub"};
+: ${PKG_PSXSTUB_HOST_BUILD_STEPS_DISABLE:=build};
+: ${PKG_PSXSTUB_HOST_ENV_VARS_EXTRA:=TARGET=${DEFAULT_TARGET}};
+: ${PKG_PSXSTUB_HOST_IN_TREE:=1};
+
+ex_pkg_register "psxstub_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.d/psxtypes_host.package b/groups.d/040.host_toolchain.d/psxtypes_host.package
new file mode 100644
index 00000000..bfca6b58
--- /dev/null
+++ b/groups.d/040.host_toolchain.d/psxtypes_host.package
@@ -0,0 +1,10 @@
+: ${PKG_PSXTYPES_HOST_PREFIX:="${PREFIX_NATIVE}"};
+: ${PKG_PSXTYPES_HOST_DEPENDS:="gcc_stage1_host"};
+: ${PKG_PSXTYPES_HOST_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes};
+: ${PKG_PSXTYPES_HOST_BUILD_STEPS_DISABLE:=build};
+: ${PKG_PSXTYPES_HOST_CONFIGURE_ARGS:="--disable-nls --prefix="};
+: ${PKG_PSXTYPES_HOST_IN_TREE:=1};
+
+ex_pkg_register "psxtypes_host" "${RTL_FILEOP_SOURCE_FNAME}" "host_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/040.host_toolchain.group b/groups.d/040.host_toolchain.group
new file mode 100644
index 00000000..649feba1
--- /dev/null
+++ b/groups.d/040.host_toolchain.group
@@ -0,0 +1,14 @@
+#
+# Build group host_toolchain
+#
+HOST_TOOLCHAIN_BUILD_TYPE="host";
+HOST_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --prefix= --target=${DEFAULT_TARGET}";
+HOST_TOOLCHAIN_GROUP_DEPENDS="host_deps host_deps_rpm host_tools cross_toolchain";
+HOST_TOOLCHAIN_MAKEFLAGS_INSTALL_EXTRA="prefix= PREFIX=";
+HOST_TOOLCHAIN_PKG_CONFIG="${PREFIX}/bin/pkgconf";
+HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}";
+HOST_TOOLCHAIN_RPM_DISABLE=1;
+
+ex_pkg_register_group "host_toolchain" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.d/mdso.package b/groups.d/100.native_tools.d/mdso.package
new file mode 100644
index 00000000..10a2c05a
--- /dev/null
+++ b/groups.d/100.native_tools.d/mdso.package
@@ -0,0 +1,10 @@
+: ${PKG_MDSO_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"};
+: ${PKG_MDSO_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MDSO_INSTALL_FILES_V2:="
+ @mdso=bin/${DEFAULT_TARGET}-mdso
+ /=${DEFAULT_TARGET}/bin
+ @../../bin/mdso=${DEFAULT_TARGET}/bin/mdso"};
+
+ex_pkg_register "mdso" "${RTL_FILEOP_SOURCE_FNAME}" "native_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.d/perk.package b/groups.d/100.native_tools.d/perk.package
new file mode 100644
index 00000000..2ff84603
--- /dev/null
+++ b/groups.d/100.native_tools.d/perk.package
@@ -0,0 +1,9 @@
+: ${PKG_PERK_DEPENDS:="mdso"};
+: ${PKG_PERK_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"};
+: ${PKG_PERK_CFLAGS_CONFIGURE:="-I${PREFIX_NATIVE}/include"};
+: ${PKG_PERK_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_PERK_INSTALL_FILES_V2:="@perk=bin/${DEFAULT_TARGET}-perk"};
+
+ex_pkg_register "perk" "${RTL_FILEOP_SOURCE_FNAME}" "native_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.d/pkgconf.package b/groups.d/100.native_tools.d/pkgconf.package
new file mode 100644
index 00000000..826f198a
--- /dev/null
+++ b/groups.d/100.native_tools.d/pkgconf.package
@@ -0,0 +1,11 @@
+: ${PKG_PKGCONF_SHA256SUM:=ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf};
+: ${PKG_PKGCONF_VERSION:=1.9.0};
+: ${PKG_PKGCONF_URL:=https://distfiles.dereferenced.org/pkgconf/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.xz};
+: ${PKG_PKGCONF_CONFIGURE_ARGS:="--prefix= --host=${DEFAULT_TARGET} --with-sysroot=/"};
+: ${PKG_PKGCONF_INSTALL_FILES_V2:="
+ @pkgconf=bin/pkg-config
+ /=lib/pkgconfig"};
+
+ex_pkg_register "pkgconf" "${RTL_FILEOP_SOURCE_FNAME}" "native_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.d/slibtool.package b/groups.d/100.native_tools.d/slibtool.package
new file mode 100644
index 00000000..383b63ec
--- /dev/null
+++ b/groups.d/100.native_tools.d/slibtool.package
@@ -0,0 +1,6 @@
+: ${PKG_SLIBTOOL_URLS_GIT:="slibtool=https://git.midipix.org/slibtool"};
+: ${PKG_SLIBTOOL_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
+
+ex_pkg_register "slibtool" "${RTL_FILEOP_SOURCE_FNAME}" "native_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.d/tpax.package b/groups.d/100.native_tools.d/tpax.package
new file mode 100644
index 00000000..d7b04331
--- /dev/null
+++ b/groups.d/100.native_tools.d/tpax.package
@@ -0,0 +1,6 @@
+: ${PKG_TPAX_URLS_GIT:="tpax=https://git.midipix.org/tpax@main"};
+: ${PKG_TPAX_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
+
+ex_pkg_register "tpax" "${RTL_FILEOP_SOURCE_FNAME}" "native_tools";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/100.native_tools.group b/groups.d/100.native_tools.group
new file mode 100644
index 00000000..eea03fef
--- /dev/null
+++ b/groups.d/100.native_tools.group
@@ -0,0 +1,12 @@
+#
+# Build group native_tools
+#
+NATIVE_TOOLS_CONFIGURE_ARGS="--disable-nls --host=${DEFAULT_TARGET} --program-prefix= --prefix=/ --target=${DEFAULT_TARGET}";
+NATIVE_TOOLS_GROUP_DEPENDS="host_deps host_deps_rpm cross_toolchain host_toolchain host_tools";
+NATIVE_TOOLS_MAKEFLAGS_INSTALL="PREFIX= prefix=";
+NATIVE_TOOLS_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
+NATIVE_TOOLS_PREFIX="${PREFIX_NATIVE}";
+
+ex_pkg_register_group "native_tools" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/binutils.package b/groups.d/110.native_toolchain.d/binutils.package
new file mode 100644
index 00000000..6664c3e2
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/binutils.package
@@ -0,0 +1,18 @@
+: ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_VERSION:=2.24.51};
+: ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_CONFIGURE_ARGS_EXTRA:="--enable-deterministic-archives --with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/"};
+: ${PKG_BINUTILS_CFLAGS_CONFIGURE:="-isystem ${PREFIX_NATIVE}/include -Wno-error=cpp"};
+: ${PKG_BINUTILS_LDFLAGS_CONFIGURE:="-L${PREFIX_NATIVE}/lib"};
+: ${PKG_BINUTILS_INSTALL_FILES_V2:="
+ +%[_builddir]/bfd/bfd.h=include/%[FNAME]
+ +%[_builddir]/bfd/.libs/libbfd.a=lib/%[FNAME]
+ +%[_subdir]/include/ansidecl.h=include/%[FNAME]
+ +%[_subdir]/include/symcat.h=include/%[FNAME]"};
+: ${PKG_BINUTILS_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_LIBTOOL:=slibtool-static};
+
+ex_pkg_register "binutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/binutils_mingw32.package b/groups.d/110.native_toolchain.d/binutils_mingw32.package
new file mode 100644
index 00000000..2e751876
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/binutils_mingw32.package
@@ -0,0 +1,13 @@
+: ${PKG_BINUTILS_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
+: ${PKG_BINUTILS_MINGW32_VERSION:=2.24.51};
+: ${PKG_BINUTILS_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_MINGW32_VERSION}.tar.bz2};
+: ${PKG_BINUTILS_MINGW32_AUTOCONF_CONFIG_GUESS:="keep"};
+: ${PKG_BINUTILS_MINGW32_CONFIGURE_ARGS:="--disable-nls --enable-deterministic-archives --host=${DEFAULT_TARGET} --prefix=/ --target=x86_64-w64-mingw32 --with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/"};
+: ${PKG_BINUTILS_MINGW32_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_MINGW32_VERSION}.midipix.patch"};
+: ${PKG_BINUTILS_MINGW32_PREFIX:="${PREFIX_NATIVE}"};
+: ${PKG_BINUTILS_MINGW32_LIBTOOL:=slibtool-static};
+: ${PKG_BINUTILS_MINGW32_VARS_FILE:="vars/binutils.vars"};
+
+ex_pkg_register "binutils_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/gcc_full.package b/groups.d/110.native_toolchain.d/gcc_full.package
new file mode 100644
index 00000000..66dba814
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/gcc_full.package
@@ -0,0 +1,10 @@
+: ${PKG_GCC_FULL_DEPENDS:="binutils gmp mpc mpfr musl_full"};
+: ${PKG_GCC_FULL_VERSION:=4.6.4};
+: ${PKG_GCC_FULL_BASE_DIR:=${BUILD_WORKDIR}/gcc-native-${DEFAULT_TARGET}};
+: ${PKG_GCC_FULL_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
+: ${PKG_GCC_FULL_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_FULL_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_full" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/gcc_stage1_native_mingw32.package b/groups.d/110.native_toolchain.d/gcc_stage1_native_mingw32.package
new file mode 100644
index 00000000..fc2ffd61
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/gcc_stage1_native_mingw32.package
@@ -0,0 +1,13 @@
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_DEPENDS:="binutils_mingw32 gmp mpc mpfr"};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_VERSION:=4.6.4};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_BASE_DIR:=${BUILD_WORKDIR}/gcc-native-x86_64-w64-mingw32};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix=/ --target=x86_64-w64-mingw32"};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_GITROOT:=${DEFAULT_GITROOT}};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_PREFIX:="${PREFIX_NATIVE}"};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_TARGET:=x86_64-w64-mingw32};
+: ${PKG_GCC_STAGE1_NATIVE_MINGW32_VARS_FILE:="vars/gcc.vars"};
+
+ex_pkg_register "gcc_stage1_native_mingw32" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/gmp.package b/groups.d/110.native_toolchain.d/gmp.package
new file mode 100644
index 00000000..8898f6c1
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/gmp.package
@@ -0,0 +1,9 @@
+: ${PKG_GMP_SHA256SUM:=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2};
+: ${PKG_GMP_VERSION:=6.1.2};
+: ${PKG_GMP_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_VERSION}.tar.bz2};
+: ${PKG_GMP_CONFIGURE_ARGS_EXTRA:=--disable-assembly};
+: ${PKG_GMP_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gmp/gmp-${PKG_GMP_VERSION}.midipix.patch"};
+
+ex_pkg_register "gmp" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/mpc.package b/groups.d/110.native_toolchain.d/mpc.package
new file mode 100644
index 00000000..8b71c0f5
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/mpc.package
@@ -0,0 +1,9 @@
+: ${PKG_MPC_DEPENDS:="gmp mpfr"};
+: ${PKG_MPC_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff};
+: ${PKG_MPC_VERSION:=1.0.1};
+: ${PKG_MPC_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_VERSION}.tar.gz};
+: ${PKG_MPC_CONFIGURE_ARGS_EXTRA:="--disable-assembly --with-gmp=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE}"};
+
+ex_pkg_register "mpc" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/mpfr.package b/groups.d/110.native_toolchain.d/mpfr.package
new file mode 100644
index 00000000..7ce52b59
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/mpfr.package
@@ -0,0 +1,9 @@
+: ${PKG_MPFR_DEPENDS:="gmp"};
+: ${PKG_MPFR_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b};
+: ${PKG_MPFR_VERSION:=3.1.2};
+: ${PKG_MPFR_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_VERSION}.tar.bz2};
+: ${PKG_MPFR_CONFIGURE_ARGS_EXTRA:="--disable-assembly --with-gmp=${PREFIX_NATIVE}"};
+
+ex_pkg_register "mpfr" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.d/musl_full.package b/groups.d/110.native_toolchain.d/musl_full.package
new file mode 100644
index 00000000..b7a5cbc7
--- /dev/null
+++ b/groups.d/110.native_toolchain.d/musl_full.package
@@ -0,0 +1,16 @@
+: ${PKG_MUSL_FULL_DEPENDS:="binutils"};
+: ${PKG_MUSL_FULL_SHA256SUM:=a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4};
+: ${PKG_MUSL_FULL_VERSION:=1.2.5};
+: ${PKG_MUSL_FULL_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_FULL_VERSION}.tar.gz"}
+: ${PKG_MUSL_FULL_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
+: ${PKG_MUSL_FULL_BASE_DIR:=${BUILD_WORKDIR}/musl_full-native-${DEFAULT_TARGET}};
+: ${PKG_MUSL_FULL_BUILD_DIR:=build/musl};
+: ${PKG_MUSL_FULL_CONFIGURE:=build/mmglue/configure};
+: ${PKG_MUSL_FULL_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_FULL_VERSION} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_MUSL_FULL_INSTALL_FILES_V2:="-=include/iconv.h"};
+: ${PKG_MUSL_FULL_SUBDIR:=musl-${PKG_MUSL_FULL_VERSION}};
+: ${PKG_MUSL_FULL_VARS_FILE:="vars/musl.vars"};
+
+ex_pkg_register "musl_full" "${RTL_FILEOP_SOURCE_FNAME}" "native_toolchain";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/110.native_toolchain.group b/groups.d/110.native_toolchain.group
new file mode 100644
index 00000000..bc197645
--- /dev/null
+++ b/groups.d/110.native_toolchain.group
@@ -0,0 +1,10 @@
+#
+# Build group native_toolchain
+#
+NATIVE_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --host=${DEFAULT_TARGET} --program-prefix= --prefix=/ --target=${DEFAULT_TARGET}";
+NATIVE_TOOLCHAIN_GROUP_DEPENDS="host_deps host_deps_rpm cross_toolchain host_toolchain host_tools native_tools";
+NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}";
+
+ex_pkg_register_group "native_toolchain" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/dalist.package b/groups.d/120.native_runtime.d/dalist.package
new file mode 100644
index 00000000..ff2075d9
--- /dev/null
+++ b/groups.d/120.native_runtime.d/dalist.package
@@ -0,0 +1,7 @@
+: ${PKG_DALIST_DEPENDS:="ldso psxtypes"};
+: ${PKG_DALIST_URLS_GIT:=dalist=${DEFAULT_GITROOT}/dalist};
+: ${PKG_DALIST_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "dalist" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ldso.package b/groups.d/120.native_runtime.d/ldso.package
new file mode 100644
index 00000000..ff966d64
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ldso.package
@@ -0,0 +1,13 @@
+: ${PKG_LDSO_DEPENDS:="psxtypes"};
+: ${PKG_LDSO_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
+: ${PKG_LDSO_CFLAGS_CONFIGURE_EXTRA:="-O0 -DPE_LDSO"};
+: ${PKG_LDSO_CONFIGURE_ARGS_EXTRA:=--disable-shared};
+: ${PKG_LDSO_INSTALL_FILES_V2:="
+ /=${DEFAULT_TARGET}/lib
+ @../../lib/libldso.a=${DEFAULT_TARGET}/lib/libldso.a"};
+: ${PKG_LDSO_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a};
+: ${PKG_LDSO_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a};
+
+ex_pkg_register "ldso" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ntapi.package b/groups.d/120.native_runtime.d/ntapi.package
new file mode 100644
index 00000000..a3be3768
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ntapi.package
@@ -0,0 +1,7 @@
+: ${PKG_NTAPI_DEPENDS:="dalist ldso pemagine psxtypes"};
+: ${PKG_NTAPI_URLS_GIT:=ntapi=${DEFAULT_GITROOT}/ntapi};
+: ${PKG_NTAPI_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "ntapi" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ntcon.package b/groups.d/120.native_runtime.d/ntcon.package
new file mode 100644
index 00000000..2c7cc21c
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ntcon.package
@@ -0,0 +1,7 @@
+: ${PKG_NTCON_DEPENDS:="ldso pemagine"};
+: ${PKG_NTCON_URLS_GIT:=ntcon=${DEFAULT_GITROOT}/ntcon};
+: ${PKG_NTCON_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "ntcon" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ntctty.package b/groups.d/120.native_runtime.d/ntctty.package
new file mode 100644
index 00000000..19a795fa
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ntctty.package
@@ -0,0 +1,8 @@
+: ${PKG_NTCTTY_DEPENDS:="dalist ldso ntapi pemagine"};
+: ${PKG_NTCTTY_URLS_GIT:=ntctty=${DEFAULT_GITROOT_HEAD}/ntctty};
+: ${PKG_NTCTTY_CFLAGS_CONFIGURE_EXTRA:=-O0};
+: ${PKG_NTCTTY_MIRRORS_GIT:="skip"};
+
+ex_pkg_register "ntctty" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ntux.package b/groups.d/120.native_runtime.d/ntux.package
new file mode 100644
index 00000000..e41e869d
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ntux.package
@@ -0,0 +1,8 @@
+: ${PKG_NTUX_DEPENDS:="dalist ldso ntapi pemagine psxscl"};
+: ${PKG_NTUX_URLS_GIT:=ntux=${DEFAULT_GITROOT}/ntux};
+: ${PKG_NTUX_CFLAGS_CONFIGURE_EXTRA:=-O0};
+: ${PKG_NTUX_HOST_INSTALL_FILES_V2:="+ntux/bin/ntux=bin/%[FNAME]"};
+
+ex_pkg_register "ntux" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/pemagine.package b/groups.d/120.native_runtime.d/pemagine.package
new file mode 100644
index 00000000..4971ea0b
--- /dev/null
+++ b/groups.d/120.native_runtime.d/pemagine.package
@@ -0,0 +1,8 @@
+: ${PKG_PEMAGINE_DEPENDS:="ldso psxtypes"};
+: ${PKG_PEMAGINE_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
+: ${PKG_PEMAGINE_CFLAGS_CONFIGURE_EXTRA:=-O0};
+: ${PKG_PEMAGINE_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "pemagine" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/psxscl.package b/groups.d/120.native_runtime.d/psxscl.package
new file mode 100644
index 00000000..d179403d
--- /dev/null
+++ b/groups.d/120.native_runtime.d/psxscl.package
@@ -0,0 +1,17 @@
+: ${PKG_PSXSCL_DEPENDS:="dalist ldso ntapi pemagine psxtypes"};
+: ${PKG_PSXSCL_URLS_GIT:=psxscl=${DEFAULT_GITROOT_HEAD}/psxscl};
+: ${PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA:=-O0};
+: ${PKG_PSXSCL_INSTALL_TARGET_EXTRA:=install-lib};
+: ${PKG_PSXSCL_MIRRORS_GIT:="skip"};
+: ${PKG_PSXSCL_STRACE_DEPENDS:="dalist ldso ntapi pemagine psxtypes"};
+: ${PKG_PSXSCL_STRACE_URLS_GIT:=psxscl=${DEFAULT_GITROOT_HEAD}/psxscl};
+: ${PKG_PSXSCL_STRACE_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_PSXSCL_STRACE_CFLAGS_CONFIGURE_EXTRA:="-DPSX_EXTENDED_STRACE -O0"};
+: ${PKG_PSXSCL_STRACE_INSTALL_FILES_V2:="
+ /=lib/debug
+ +../obj/lib/libpsxscl.so=lib/debug/%[FNAME]"};
+: ${PKG_PSXSCL_STRACE_MIRRORS_GIT:="skip"};
+
+ex_pkg_register "psxscl" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/psxtypes.package b/groups.d/120.native_runtime.d/psxtypes.package
new file mode 100644
index 00000000..02ecab36
--- /dev/null
+++ b/groups.d/120.native_runtime.d/psxtypes.package
@@ -0,0 +1,7 @@
+: ${PKG_PSXTYPES_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes};
+: ${PKG_PSXTYPES_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
+: ${PKG_PSXTYPES_IN_TREE:=1};
+
+ex_pkg_register "psxtypes" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/ptycon.package b/groups.d/120.native_runtime.d/ptycon.package
new file mode 100644
index 00000000..5bb5bbc0
--- /dev/null
+++ b/groups.d/120.native_runtime.d/ptycon.package
@@ -0,0 +1,8 @@
+: ${PKG_PTYCON_DEPENDS:="dalist ldso ntapi ntcon psxscl"};
+: ${PKG_PTYCON_URLS_GIT:=ptycon=${DEFAULT_GITROOT}/ptycon};
+: ${PKG_PTYCON_CFLAGS_CONFIGURE_EXTRA:=-O0};
+: ${PKG_PTYCON_INSTALL_TARGET_EXTRA:="install-app install-lib"};
+
+ex_pkg_register "ptycon" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/sltdl.package b/groups.d/120.native_runtime.d/sltdl.package
new file mode 100644
index 00000000..bb9b0982
--- /dev/null
+++ b/groups.d/120.native_runtime.d/sltdl.package
@@ -0,0 +1,8 @@
+: ${PKG_SLTDL_DEPENDS:="ldso"};
+: ${PKG_SLTDL_URLS_GIT:=sltdl=${DEFAULT_GITROOT}/sltdl};
+: ${PKG_SLTDL_CONFIGURE_ARGS_EXTRA:=--as-ltdl-drop-in-replacement};
+: ${PKG_SLTDL_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "sltdl" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/toksvc.package b/groups.d/120.native_runtime.d/toksvc.package
new file mode 100644
index 00000000..0359b317
--- /dev/null
+++ b/groups.d/120.native_runtime.d/toksvc.package
@@ -0,0 +1,7 @@
+: ${PKG_TOKSVC_DEPENDS:="dalist ldso ntapi ntcon psxscl"};
+: ${PKG_TOKSVC_URLS_GIT:=toksvc=${DEFAULT_GITROOT}/toksvc};
+: ${PKG_TOKSVC_CFLAGS_CONFIGURE_EXTRA:=-O0};
+
+ex_pkg_register "toksvc" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.d/u16ports.package b/groups.d/120.native_runtime.d/u16ports.package
new file mode 100644
index 00000000..46bd3b87
--- /dev/null
+++ b/groups.d/120.native_runtime.d/u16ports.package
@@ -0,0 +1,8 @@
+: ${PKG_U16PORTS_DEPENDS:="ldso"};
+: ${PKG_U16PORTS_URLS_GIT:=u16ports=${DEFAULT_GITROOT}/u16ports};
+: ${PKG_U16PORTS_CFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -Wno-missing-field-initializers"};
+: ${PKG_U16PORTS_INSTALL_TARGET_EXTRA:=install-lib};
+
+ex_pkg_register "u16ports" "${RTL_FILEOP_SOURCE_FNAME}" "native_runtime";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/120.native_runtime.group b/groups.d/120.native_runtime.group
new file mode 100644
index 00000000..89986cda
--- /dev/null
+++ b/groups.d/120.native_runtime.group
@@ -0,0 +1,14 @@
+#
+# Build group native_runtime
+#
+NATIVE_RUNTIME_BUILD_TYPE="native";
+NATIVE_RUNTIME_CFLAGS_CONFIGURE="${DEFAULT_CFLAGS_RUNTIME}";
+NATIVE_RUNTIME_CXXFLAGS_CONFIGURE="${DEFAULT_CXXFLAGS_RUNTIME}";
+NATIVE_RUNTIME_CONFIGURE_ARGS="--prefix= --strict --host=${DEFAULT_TARGET}";
+NATIVE_RUNTIME_ENV_VARS_EXTRA="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib";
+NATIVE_RUNTIME_GROUP_DEPENDS="host_deps host_deps_rpm cross_toolchain host_toolchain host_tools native_toolchain native_tools";
+NATIVE_RUNTIME_PREFIX="${PREFIX_NATIVE}";
+
+ex_pkg_register_group "native_runtime" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups/200.native_packages.group b/groups.d/200.native_packages.group
index 886fab53..f64b924c 100644
--- a/groups/200.native_packages.group
+++ b/groups.d/200.native_packages.group
@@ -1,11 +1,12 @@
#
# Build group native_packages
#
-NATIVE_PACKAGES_CFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
-NATIVE_PACKAGES_CXXFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CXXFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
+rtl_lconcat2 \$NATIVE_PACKAGES_CFLAGS_CONFIGURE \$DEFAULT_CFLAGS "--sysroot=${PREFIX_NATIVE}";
+rtl_lconcat2 \$NATIVE_PACKAGES_CPPFLAGS_CONFIGURE \$DEFAULT_CPPFLAGS "--sysroot=${PREFIX_NATIVE}";
+rtl_lconcat2 \$NATIVE_PACKAGES_CXXFLAGS_CONFIGURE \$DEFAULT_CFLAGS "--sysroot=${PREFIX_NATIVE}";
NATIVE_PACKAGES_CONFIG_CACHE_LOCAL="${CONFIG_CACHE_GNULIB}";
NATIVE_PACKAGES_CONFIGURE_ARGS="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}";
-NATIVE_PACKAGES_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools native_toolchain native_tools";
+NATIVE_PACKAGES_GROUP_DEPENDS="host_deps host_deps_rpm cross_toolchain host_toolchain host_tools native_toolchain native_tools";
NATIVE_PACKAGES_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}";
NATIVE_PACKAGES_MAKEFLAGS_INSTALL="PREFIX= prefix=";
NATIVE_PACKAGES_PACKAGES="";
@@ -13,4 +14,6 @@ NATIVE_PACKAGES_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
NATIVE_PACKAGES_PREFIX="${PREFIX_NATIVE}";
NATIVE_PACKAGES_PYTHON="${PREFIX}/bin/python2";
+ex_pkg_register_group "native_packages" "${RTL_FILEOP_SOURCE_FNAME}";
+
# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/bas.package b/groups.d/211.native_packages_cmdline.d/bas.package
new file mode 100644
index 00000000..95f10e08
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/bas.package
@@ -0,0 +1,10 @@
+: ${PKG_BAS_DEPENDS:="ncurses"};
+: ${PKG_BAS_SHA256SUM:=ec45efa90aaa7f15647fe7898fa0789ba26dc8e10b7ecf8e049b1310f626b884};
+: ${PKG_BAS_VERSION:=2.6};
+: ${PKG_BAS_URL:=www.moria.de/~michael/bas/bas-${PKG_BAS_VERSION}.tar.gz};
+: ${PKG_BAS_IN_TREE:=1};
+: ${PKG_BAS_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "bas" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/bash.package b/groups.d/211.native_packages_cmdline.d/bash.package
new file mode 100644
index 00000000..d910abf5
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/bash.package
@@ -0,0 +1,10 @@
+: ${PKG_BASH_DEPENDS:="ncurses"};
+: ${PKG_BASH_SHA256SUM:=c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8};
+: ${PKG_BASH_VERSION:=5.2.21};
+: ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz};
+: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"};
+: ${PKG_BASH_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "bash" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/bc.package b/groups.d/211.native_packages_cmdline.d/bc.package
new file mode 100644
index 00000000..057334ea
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/bc.package
@@ -0,0 +1,7 @@
+: ${PKG_BC_SHA256SUM:=62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a};
+: ${PKG_BC_VERSION:=1.07.1};
+: ${PKG_BC_URL:=https://ftp.gnu.org/gnu/bc/bc-${PKG_BC_VERSION}.tar.gz};
+
+ex_pkg_register "bc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/busybox.package b/groups.d/211.native_packages_cmdline.d/busybox.package
new file mode 100644
index 00000000..98a617a5
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/busybox.package
@@ -0,0 +1,13 @@
+: ${PKG_BUSYBOX_DEPENDS:="libarchive"};
+: ${PKG_BUSYBOX_SHA256SUM:=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694};
+: ${PKG_BUSYBOX_VERSION:=1.35.0};
+: ${PKG_BUSYBOX_URL:=https://busybox.net/downloads/busybox-${PKG_BUSYBOX_VERSION}.tar.bz2};
+: ${PKG_BUSYBOX_DESTDIR:=destdir/busybox};
+: ${PKG_BUSYBOX_IN_TREE=1};
+: ${PKG_BUSYBOX_INSTALL_FILES_V2:="
+ :%[_builddir]/_install/bin/%<*>=bin/%[FNAME]"};
+: ${PKG_BUSYBOX_PREFIX:=${PREFIX_NATIVE}/busybox};
+
+ex_pkg_register "busybox" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/cabextract.package b/groups.d/211.native_packages_cmdline.d/cabextract.package
new file mode 100644
index 00000000..dc0c1eb8
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/cabextract.package
@@ -0,0 +1,9 @@
+: ${PKG_CABEXTRACT_DEPENDS:="libiconv libmspack"};
+: ${PKG_CABEXTRACT_SHA256SUM:=b5546db1155e4c718ff3d4b278573604f30dd64c3c5bfd4657cd089b823a3ac6};
+: ${PKG_CABEXTRACT_VERSION:=1.11};
+: ${PKG_CABEXTRACT_URL:=https://www.cabextract.org.uk/cabextract-${PKG_CABEXTRACT_VERSION}.tar.gz};
+: ${PKG_CABEXTRACT_CONFIGURE_ARGS_EXTRA:=--with-external-libmspack};
+
+ex_pkg_register "cabextract" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/calcurse.package b/groups.d/211.native_packages_cmdline.d/calcurse.package
new file mode 100644
index 00000000..e38c906c
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/calcurse.package
@@ -0,0 +1,10 @@
+: ${PKG_CALCURSE_DEPENDS:="ncursesw"};
+: ${PKG_CALCURSE_SHA256SUM:=d86bb37014fd69b8d83ccb904ac979c6b8ddf59ee3dbc80f5a274525e4d5830a};
+: ${PKG_CALCURSE_VERSION:=4.8.1};
+: ${PKG_CALCURSE_URL:=https://www.calcurse.org/files/calcurse-${PKG_CALCURSE_VERSION}.tar.gz};
+: ${PKG_CALCURSE_CONFIGURE_ARGS_EXTRA:="--without-asciidoc"};
+: ${PKG_CALCURSE_ENV_VARS_EXTRA:="LIBS=-ltinfow"};
+
+ex_pkg_register "calcurse" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/clipboard_utils.package b/groups.d/211.native_packages_cmdline.d/clipboard_utils.package
new file mode 100644
index 00000000..35f58bda
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/clipboard_utils.package
@@ -0,0 +1,9 @@
+: ${PKG_CLIPBOARD_UTILS_DEPENDS:="w32lib"};
+: ${PKG_CLIPBOARD_UTILS_URLS_GIT:=clipboard-utils=https://github.com/redfoxymoon/clipboard-utils.git@master};
+: ${PKG_CLIPBOARD_UTILS_BUILD_DIR:=clipboard-utils};
+: ${PKG_CLIPBOARD_UTILS_CFLAGS_BUILD_EXTRA:="-g2 -O0"};
+: ${PKG_CLIPBOARD_UTILS_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
+
+ex_pkg_register "clipboard_utils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/coreutils.package b/groups.d/211.native_packages_cmdline.d/coreutils.package
new file mode 100644
index 00000000..82063621
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/coreutils.package
@@ -0,0 +1,13 @@
+: ${PKG_COREUTILS_DEPENDS:="libiconv"};
+: ${PKG_COREUTILS_SHA256SUM:=61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423};
+: ${PKG_COREUTILS_VERSION:=9.1};
+: ${PKG_COREUTILS_URL:=https://ftp.gnu.org/gnu/coreutils/coreutils-${PKG_COREUTILS_VERSION}.tar.xz};
+: ${PKG_COREUTILS_CONFIGURE_ARGS_EXTRA:="--enable-no-install-program=kill"}
+: ${PKG_COREUTILS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/pemagine -I${PREFIX_NATIVE}/include/dalist"};
+: ${PKG_COREUTILS_ENV_VARS_EXTRA:="LIBS=-lntapi"};
+: ${PKG_COREUTILS_CONFIG_CACHE_EXTRA:="
+gl_cv_have_proc_uptime=yes"};
+
+ex_pkg_register "coreutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/cpio.package b/groups.d/211.native_packages_cmdline.d/cpio.package
new file mode 100644
index 00000000..db47990b
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/cpio.package
@@ -0,0 +1,7 @@
+: ${PKG_CPIO_SHA256SUM:=937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db};
+: ${PKG_CPIO_VERSION:=2.15};
+: ${PKG_CPIO_URL:=https://ftp.gnu.org/gnu/cpio/cpio-${PKG_CPIO_VERSION}.tar.bz2};
+
+ex_pkg_register "cpio" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/dash.package b/groups.d/211.native_packages_cmdline.d/dash.package
new file mode 100644
index 00000000..7a01ca7a
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/dash.package
@@ -0,0 +1,9 @@
+: ${PKG_DASH_SHA256SUM:=0d632f6b945058d84809cac7805326775bd60cb4a316907d0bd4228ff7107154};
+: ${PKG_DASH_VERSION:=0.5.12};
+: ${PKG_DASH_URL:=https://git.kernel.org/pub/scm/utils/dash/dash.git/snapshot/dash-${PKG_DASH_VERSION}.tar.gz};
+: ${PKG_DASH_CONFIGURE_ARGS_EXTRA:="--disable-glob --enable-fnmatch"};
+: ${PKG_DASH_INSTALL_FILES_V2:="@dash=bin/sh"};
+
+ex_pkg_register "dash" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/datamash.package b/groups.d/211.native_packages_cmdline.d/datamash.package
new file mode 100644
index 00000000..d160a3b8
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/datamash.package
@@ -0,0 +1,7 @@
+: ${PKG_DATAMASH_SHA256SUM:=7ad97e8c7ef616dd03aa5bd67ae24c488272db3e7d1f5774161c18b75f29f6fd};
+: ${PKG_DATAMASH_VERSION:=1.8};
+: ${PKG_DATAMASH_URL:=https://ftp.gnu.org/gnu/datamash/datamash-${PKG_DATAMASH_VERSION}.tar.gz};
+
+ex_pkg_register "datamash" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/dos2unix.package b/groups.d/211.native_packages_cmdline.d/dos2unix.package
new file mode 100644
index 00000000..f97a75f5
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/dos2unix.package
@@ -0,0 +1,14 @@
+: ${PKG_DOS2UNIX_SHA256SUM:=264742446608442eb48f96c20af6da303cb3a92b364e72cb7e24f88239c4bf3a};
+: ${PKG_DOS2UNIX_VERSION:=7.5.2};
+: ${PKG_DOS2UNIX_URL:=http://waterlan.home.xs4all.nl/dos2unix/dos2unix-${PKG_DOS2UNIX_VERSION}.tar.gz};
+: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+: ${PKG_DOS2UNIX_IN_TREE:=1};
+: ${PKG_DOS2UNIX_INSTALL_FILES_V2:="
+ +../dos2unix-${PKG_DOS2UNIX_VERSION}/dos2unix=bin/%[FNAME]
+ +../dos2unix-${PKG_DOS2UNIX_VERSION}/unix2dos=bin/%[FNAME]
+ @dos2unix=bin/mac2unix
+ @unix2dos=bin/unix2mac"};
+
+ex_pkg_register "dos2unix" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/ed.package b/groups.d/211.native_packages_cmdline.d/ed.package
new file mode 100644
index 00000000..70addede
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/ed.package
@@ -0,0 +1,8 @@
+: ${PKG_ED_SHA256SUM:=c6030defe6ae172f1687906d7354054c75a6a9130af319d4e73c50a91959c5a6};
+: ${PKG_ED_VERSION:=1.20};
+: ${PKG_ED_URL:=https://ftp.gnu.org/gnu/ed/ed-${PKG_ED_VERSION}.tar.lz};
+: ${PKG_ED_CONFIGURE_ARGS_LIST:="--prefix=:CC=${DEFAULT_NATIVE_CC}"};
+
+ex_pkg_register "ed" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/exif.package b/groups.d/211.native_packages_cmdline.d/exif.package
new file mode 100644
index 00000000..408b25b0
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/exif.package
@@ -0,0 +1,8 @@
+: ${PKG_EXIF_DEPENDS:="libexif popt"};
+: ${PKG_EXIF_SHA256SUM:=0fe268736e0ca0538d4af941022761a438854a64c8024a4175e57bf0418117b9};
+: ${PKG_EXIF_VERSION:=0.6.22};
+: ${PKG_EXIF_URL:=https://github.com/libexif/exif/releases/download/exif-0_6_22-release/exif-${PKG_EXIF_VERSION}.tar.xz};
+
+ex_pkg_register "exif" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/figlet.package b/groups.d/211.native_packages_cmdline.d/figlet.package
new file mode 100644
index 00000000..2401f518
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/figlet.package
@@ -0,0 +1,9 @@
+: ${PKG_FIGLET_SHA256SUM:=bf88c40fd0f077dab2712f54f8d39ac952e4e9f2e1882f1195be9e5e4257417d};
+: ${PKG_FIGLET_VERSION:=2.2.5};
+: ${PKG_FIGLET_URL:=ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-${PKG_FIGLET_VERSION}.tar.gz};
+: ${PKG_FIGLET_IN_TREE:=1};
+: ${PKG_FIGLET_MAKEFLAGS_BUILD_LIST:=CC=${DEFAULT_NATIVE_CC}:LD=${DEFAULT_NATIVE_CCLD}};
+
+ex_pkg_register "figlet" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/findutils.package b/groups.d/211.native_packages_cmdline.d/findutils.package
new file mode 100644
index 00000000..e84670b2
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/findutils.package
@@ -0,0 +1,7 @@
+: ${PKG_FINDUTILS_SHA256SUM:=a2bfb8c09d436770edc59f50fa483e785b161a3b7b9d547573cb08065fd462fe};
+: ${PKG_FINDUTILS_VERSION:=4.9.0};
+: ${PKG_FINDUTILS_URL:=https://ftp.gnu.org/gnu/findutils/findutils-${PKG_FINDUTILS_VERSION}.tar.xz};
+
+ex_pkg_register "findutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/gawk.package b/groups.d/211.native_packages_cmdline.d/gawk.package
new file mode 100644
index 00000000..f0492add
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/gawk.package
@@ -0,0 +1,8 @@
+: ${PKG_GAWK_DEPENDS:="readline"};
+: ${PKG_GAWK_SHA256SUM:=d87629386e894bbea11a5e00515fc909dc9b7249529dad9e6a3a2c77085f7ea2};
+: ${PKG_GAWK_VERSION:=5.1.1};
+: ${PKG_GAWK_URL:=https://ftp.gnu.org/gnu/gawk/gawk-${PKG_GAWK_VERSION}.tar.xz};
+
+ex_pkg_register "gawk" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/gcal.package b/groups.d/211.native_packages_cmdline.d/gcal.package
new file mode 100644
index 00000000..63acb5ce
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/gcal.package
@@ -0,0 +1,10 @@
+: ${PKG_GCAL_DEPENDS:="ncurses libunistring"};
+: ${PKG_GCAL_SHA256SUM:=91b56c40b93eee9bda27ec63e95a6316d848e3ee047b5880ed71e5e8e60f61ab};
+: ${PKG_GCAL_VERSION:=4.1};
+: ${PKG_GCAL_URL:=https://ftp.gnu.org/gnu/gcal/gcal-${PKG_GCAL_VERSION}.tar.xz};
+: ${PKG_GCAL_CONFIGURE_ARGS_EXTRA:="--enable-unicode"};
+: ${PKG_GCAL_ENV_VARS_EXTRA:="LIBS=-lunistring"};
+
+ex_pkg_register "gcal" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/grep.package b/groups.d/211.native_packages_cmdline.d/grep.package
new file mode 100644
index 00000000..5b5134c3
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/grep.package
@@ -0,0 +1,9 @@
+: ${PKG_GREP_DEPENDS:="pcre2"};
+: ${PKG_GREP_SHA256SUM:=1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab};
+: ${PKG_GREP_VERSION:=3.11};
+: ${PKG_GREP_URL:=https://ftp.gnu.org/gnu/grep/grep-${PKG_GREP_VERSION}.tar.xz};
+: ${PKG_GREP_CONFIGURE_ARGS_EXTRA:=--enable-perl-regexp};
+
+ex_pkg_register "grep" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/html_xml_utils.package b/groups.d/211.native_packages_cmdline.d/html_xml_utils.package
new file mode 100644
index 00000000..39a1a8bb
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/html_xml_utils.package
@@ -0,0 +1,10 @@
+: ${PKG_HTML_XML_UTILS_DEPENDS:="curl libidn2 libiconv"};
+: ${PKG_HTML_XML_UTILS_SHA256SUM:=5e84729ef36ccd3924d2872ed4ee6954c63332dca5400ba8eb4eaef1f2db4fb2};
+: ${PKG_HTML_XML_UTILS_VERSION:=8.6};
+: ${PKG_HTML_XML_UTILS_URL:=https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-${PKG_HTML_XML_UTILS_VERSION}.tar.gz};
+: ${PKG_HTML_XML_UTILS_CONFIG_CACHE_EXTRA:="
+ac_cv_path__libcurl_config=${PREFIX_NATIVE}/bin/curl-config"};
+
+ex_pkg_register "html_xml_utils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/jush.package b/groups.d/211.native_packages_cmdline.d/jush.package
new file mode 100644
index 00000000..8b92ba42
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/jush.package
@@ -0,0 +1,7 @@
+: ${PKG_JUSH_DEPENDS:="libeditline"};
+: ${PKG_JUSH_URLS_GIT:="jush-master=https://github.com/troglobit/jush.git@master"};
+: ${PKG_JUSH_SUBDIR:="jush-master"};
+
+ex_pkg_register "jush" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/lcab.package b/groups.d/211.native_packages_cmdline.d/lcab.package
new file mode 100644
index 00000000..ff3aca69
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/lcab.package
@@ -0,0 +1,8 @@
+: ${PKG_LCAB_SHA256SUM:=065f2c1793b65f28471c0f71b7cf120a7064f28d1c44b07cabf49ec0e97f1fc8};
+: ${PKG_LCAB_VERSION:=1.0b12};
+: ${PKG_LCAB_URL:=http://deb.debian.org/debian/pool/main/l/lcab/lcab_${PKG_LCAB_VERSION}.orig.tar.gz};
+: ${PKG_LCAB_SUBDIR:=lcab-${PKG_LCAB_VERSION}};
+
+ex_pkg_register "lcab" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/lzop.package b/groups.d/211.native_packages_cmdline.d/lzop.package
new file mode 100644
index 00000000..68fca7f6
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/lzop.package
@@ -0,0 +1,8 @@
+: ${PKG_LZOP_DEPENDS:="lzo"};
+: ${PKG_LZOP_SHA256SUM:=7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41};
+: ${PKG_LZOP_VERSION:=1.04};
+: ${PKG_LZOP_URL:=https://www.lzop.org/download/lzop-${PKG_LZOP_VERSION}.tar.gz};
+
+ex_pkg_register "lzop" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/mawk.package b/groups.d/211.native_packages_cmdline.d/mawk.package
new file mode 100644
index 00000000..c73c8cdc
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/mawk.package
@@ -0,0 +1,7 @@
+: ${PKG_MAWK_SHA256SUM:=7fd4cd1e1fae9290fe089171181bbc6291dfd9bca939ca804f0ddb851c8b8237};
+: ${PKG_MAWK_VERSION:=1.3.4-20200120};
+: ${PKG_MAWK_URL:=https://invisible-island.net/archives/mawk/mawk-${PKG_MAWK_VERSION}.tgz};
+
+ex_pkg_register "mawk" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/mc.package b/groups.d/211.native_packages_cmdline.d/mc.package
new file mode 100644
index 00000000..b2113bb9
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/mc.package
@@ -0,0 +1,12 @@
+: ${PKG_MC_DEPENDS:="glib libX11 ncursesw"};
+: ${PKG_MC_SHA256SUM:=31be59225ffa9920816e9a8b3be0ab225a16d19e4faf46890f25bdffa02a4ff4};
+: ${PKG_MC_VERSION:=4.8.27};
+: ${PKG_MC_URL:=http://ftp.midnight-commander.org/mc-${PKG_MC_VERSION}.tar.xz};
+: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-DNCURSES_INTERNALS -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"};
+: ${PKG_MC_CONFIG_CACHE_EXTRA:="ac_list_mounted_fs=found"};
+: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"};
+: ${PKG_MC_LDFLAGS_BUILD_EXTRA:=-ltinfow};
+
+ex_pkg_register "mc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/mksh.package b/groups.d/211.native_packages_cmdline.d/mksh.package
new file mode 100644
index 00000000..e5e941ea
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/mksh.package
@@ -0,0 +1,16 @@
+: ${PKG_MKSH_SHA256SUM:=8bce3837c386684aa7780f085f1a4dbd5e3e26fb5c528ee0d41ae29af7f39013};
+: ${PKG_MKSH_VERSION:=R54};
+: ${PKG_MKSH_URL:="https://sources.voidlinux.org/mksh-${PKG_MKSH_VERSION}/mksh-${PKG_MKSH_VERSION}.tgz http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz"};
+: ${PKG_MKSH_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_MKSH_ENV_VARS_EXTRA:="CC=${DEFAULT_NATIVE_CC}"};
+: ${PKG_MKSH_INSTALL_FILES_V2:="
+ +../mksh/mksh=bin/%[FNAME]
+ /=share/doc/mksh/examples
+ +../mksh/dot.mkshrc=share/doc/mksh/examples/%[FNAME]
+ +../mksh/mksh.1=share/man/man1/%[FNAME]"};
+: ${PKG_MKSH_IN_TREE:=1};
+: ${PKG_MKSH_SUBDIR:=mksh};
+
+ex_pkg_register "mksh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/moe.package b/groups.d/211.native_packages_cmdline.d/moe.package
new file mode 100644
index 00000000..75cf554f
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/moe.package
@@ -0,0 +1,10 @@
+: ${PKG_MOE_DEPENDS:="ncurses ncursesw"};
+: ${PKG_MOE_SHA256SUM:=43a557bc512f89d6c718e5f41029cfe3a055682620eb8dbece6302f34a26146b};
+: ${PKG_MOE_VERSION:=1.13};
+: ${PKG_MOE_URL:=https://ftp.gnu.org/gnu/moe/moe-${PKG_MOE_VERSION}.tar.lz};
+: ${PKG_MOE_CONFIGURE_ARGS_LIST:="--prefix=:CXX=${DEFAULT_NATIVE_CXX}"};
+: ${PKG_MOE_ENV_VARS_EXTRA:="CXXFLAGS=${DEFAULT_CXXFLAGS}"};
+
+ex_pkg_register "moe" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/moon_buggy.package b/groups.d/211.native_packages_cmdline.d/moon_buggy.package
new file mode 100644
index 00000000..05d6867f
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/moon_buggy.package
@@ -0,0 +1,11 @@
+: ${PKG_MOON_BUGGY_DEPENDS:="ncurses"};
+: ${PKG_MOON_BUGGY_SHA256SUM:=352dc16ccae4c66f1e87ab071e6a4ebeb94ff4e4f744ce1b12a769d02fe5d23f};
+: ${PKG_MOON_BUGGY_VERSION:=1.0.51};
+: ${PKG_MOON_BUGGY_URL:=https://m.seehuhn.de/programs/moon-buggy-${PKG_MOON_BUGGY_VERSION}.tar.gz};
+: ${PKG_MOON_BUGGY_CONFIGURE_ARGS_EXTRA:="--sharedstatedir=/etc"};
+: ${PKG_MOON_BUGGY_IN_TREE:=1};
+: ${PKG_MOON_BUGGY_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
+
+ex_pkg_register "moon_buggy" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/mp3splt.package b/groups.d/211.native_packages_cmdline.d/mp3splt.package
new file mode 100644
index 00000000..6af0cde5
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/mp3splt.package
@@ -0,0 +1,9 @@
+: ${PKG_MP3SPLT_DEPENDS:="libmp3splt"};
+: ${PKG_MP3SPLT_SHA256SUM:=3ec32b10ddd8bb11af987b8cd1c76382c48d265d0ffda53041d9aceb1f103baa};
+: ${PKG_MP3SPLT_VERSION:=2.6.2};
+: ${PKG_MP3SPLT_URL:=https://ftp.fau.de/macports/distfiles/mp3splt/mp3splt-${PKG_MP3SPLT_VERSION}.tar.gz};
+: ${PKG_MP3SPLT_CONFIGURE_ARGS_EXTRA:="--enable-oggsplt_symlink --enable-flacsplt_symlink"};
+
+ex_pkg_register "mp3splt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/mpg123.package b/groups.d/211.native_packages_cmdline.d/mpg123.package
new file mode 100644
index 00000000..50dfcdcd
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/mpg123.package
@@ -0,0 +1,11 @@
+: ${PKG_MPG123_DEPENDS:="w32api w32lib"};
+: ${PKG_MPG123_SHA256SUM:=963885d8cc77262f28b77187c7d189e32195e64244de2530b798ddf32183e847};
+: ${PKG_MPG123_VERSION:=1.29.3};
+: ${PKG_MPG123_URL:=https://mpg123.de/download/mpg123-${PKG_MPG123_VERSION}.tar.bz2};
+: ${PKG_MPG123_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_UTF16_DEFAULT"};
+: ${PKG_MPG123_CONFIGURE_ARGS_EXTRA:="--enable-modules --with-cpu=x86-64 --with-audio=win32"};
+: ${PKG_MPG123_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32"};
+
+ex_pkg_register "mpg123" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/nano.package b/groups.d/211.native_packages_cmdline.d/nano.package
new file mode 100644
index 00000000..b3388aea
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/nano.package
@@ -0,0 +1,10 @@
+: ${PKG_NANO_DEPENDS:="file libz ncursesw"};
+: ${PKG_NANO_SHA256SUM:=b4edaab0a037b5760484907c674e980053896f33759e43f834a212145fd085f1};
+: ${PKG_NANO_VERSION:=7.2};
+: ${PKG_NANO_URL:=https://www.nano-editor.org/dist/v${PKG_NANO_VERSION%.[0-9]}/nano-${PKG_NANO_VERSION}.tar.gz};
+: ${PKG_NANO_CFLAGS_CONFIGURE_EXTRA:="-std=gnu99"};
+: ${PKG_NANO_MAKEFLAGS_BUILD:="LIBS=-Wl,-lz,-lmagic,-lncursesw,-ltinfow"};
+
+ex_pkg_register "nano" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/ninvaders.package b/groups.d/211.native_packages_cmdline.d/ninvaders.package
new file mode 100644
index 00000000..bcf6ea12
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/ninvaders.package
@@ -0,0 +1,15 @@
+: ${PKG_NINVADERS_DEPENDS:="ncurses"};
+: ${PKG_NINVADERS_SHA256SUM:=bfbc5c378704d9cf5e7fed288dac88859149bee5ed0850175759d310b61fd30b};
+: ${PKG_NINVADERS_VERSION:=0.1.1};
+: ${PKG_NINVADERS_URL:=http://http.debian.net/debian/pool/main/n/ninvaders/ninvaders_${PKG_NINVADERS_VERSION}.orig.tar.gz};
+: ${PKG_NINVADERS_BUILD_DIR:=ninvaders-${PKG_NINVADERS_VERSION}};
+: ${PKG_NINVADERS_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_NINVADERS_CFLAGS_BUILD_EXTRA:="-g3 -O0 -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
+: ${PKG_NINVADERS_INSTALL_FILES_V2:="+../ninvaders-${PKG_NINVADERS_VERSION}/nInvaders=bin/%[FNAME]"};
+: ${PKG_NINVADERS_IN_TREE:=1};
+: ${PKG_NINVADERS_MAKEFLAGS_BUILD:="CC=${DEFAULT_TARGET}-gcc LIBS=-Wl,-lncurses,-ltinfo"};
+: ${PKG_NINVADERS_SUBDIR:=ninvaders-${PKG_NINVADERS_VERSION}};
+
+ex_pkg_register "ninvaders" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/openbsd_baseutils.package b/groups.d/211.native_packages_cmdline.d/openbsd_baseutils.package
new file mode 100644
index 00000000..083e8434
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/openbsd_baseutils.package
@@ -0,0 +1,13 @@
+: ${PKG_OPENBSD_BASEUTILS_DEPENDS:="musl_compat"};
+: ${PKG_OPENBSD_BASEUTILS_URLS_GIT:="baseutils=https://github.com/ibara/baseutils.git@master"};
+: ${PKG_OPENBSD_BASEUTILS_BUILD_DIR:=baseutils};
+: ${PKG_OPENBSD_BASEUTILS_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_OPENBSD_BASEUTILS_CFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
+: ${PKG_OPENBSD_BASEUTILS_INSTALL_FILES_V2:="
+ +../baseutils/pax/pax=bin/%[FNAME]
+ +../baseutils/pax/%<*.1>=share/man/man1/%[FNAME]"};
+: ${PKG_OPENBSD_BASEUTILS_MAKE_SUBDIRS:="libopenbsd pax"};
+
+ex_pkg_register "openbsd_baseutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/pixz.package b/groups.d/211.native_packages_cmdline.d/pixz.package
new file mode 100644
index 00000000..c4561fbf
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/pixz.package
@@ -0,0 +1,10 @@
+: ${PKG_PIXZ_DEPENDS:="libarchive xz"};
+: ${PKG_PIXZ_SHA256SUM:=e5e32c6eb0bf112b98e74a5da8fb63b9f2cae71800f599d97ce540e150c8ddc5};
+: ${PKG_PIXZ_VERSION:=1.0.7};
+: ${PKG_PIXZ_URL:=https://github.com/vasi/pixz/releases/download/v${PKG_PIXZ_VERSION}/pixz-${PKG_PIXZ_VERSION}.tar.xz};
+: ${PKG_PIXZ_CONFIG_CACHE_EXTRA:="ac_cv_file_src_pixz_1=yes"};
+: ${PKG_PIXZ_INSTALL_FILES_V2:="+../pixz-${PKG_PIXZ_VERSION}/src/pixz.1=share/man/man1/%[FNAME]"};
+
+ex_pkg_register "pixz" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/profanity.package b/groups.d/211.native_packages_cmdline.d/profanity.package
new file mode 100644
index 00000000..c2d3b1ec
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/profanity.package
@@ -0,0 +1,9 @@
+: ${PKG_PROFANITY_DEPENDS:="libffi libstrophe libgcrypt libz glib gpgme ncursesw curl readline sqlite3"};
+: ${PKG_PROFANITY_SHA256SUM:=23f7b2e5c6cf85913b9e7a228802bca9ecb1d1cf3bf8f8f285e9676176a24902};
+: ${PKG_PROFANITY_VERSION:=0.9.5};
+: ${PKG_PROFANITY_URL:=https://profanity-im.github.io/profanity-${PKG_PROFANITY_VERSION}.tar.gz};
+: ${PKG_PROFANITY_CONFIGURE_ARGS_EXTRA:="--disable-python-plugins --disable-icons-and-clipboard --disable-notifications --disable-pgp"};
+
+ex_pkg_register "profanity" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/pv.package b/groups.d/211.native_packages_cmdline.d/pv.package
new file mode 100644
index 00000000..2a692ad8
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/pv.package
@@ -0,0 +1,9 @@
+: ${PKG_PV_SHA256SUM:=e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603};
+: ${PKG_PV_VERSION:=1.6.20};
+: ${PKG_PV_URL:=http://www.ivarch.com/programs/sources/pv-${PKG_PV_VERSION}.tar.bz2};
+: ${PKG_PV_DEBUG_CONFIGURE_ARGS_EXTRA:=--enable-debugging};
+: ${PKG_PV_MAKEFLAGS_BUILD_LIST:="LD=${DEFAULT_NATIVE_LD}"};
+
+ex_pkg_register "pv" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/rc.package b/groups.d/211.native_packages_cmdline.d/rc.package
new file mode 100644
index 00000000..f50f8d9b
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/rc.package
@@ -0,0 +1,14 @@
+: ${PKG_RC_DEPENDS:="ncurses readline"};
+: ${PKG_RC_SHA256SUM:=5ed26334dd0c1a616248b15ad7c90ca678ae3066fa02c5ddd0e6936f9af9bfd8};
+: ${PKG_RC_VERSION:=1.7.4};
+: ${PKG_RC_URL:=https://mirror.midipix.org/rc/rc-${PKG_RC_VERSION}.tar.gz};
+: ${PKG_RC_CONFIG_CACHE_EXTRA:="
+ac_cv_func_setpgrp_void=yes
+rc_cv_sys_dev_fd=yes
+rc_cv_sysv_sigcld=no"};
+: ${PKG_RC_CONFIGURE_ARGS_EXTRA:=--with-edit=readline};
+: ${PKG_RC_IN_TREE=1};
+
+ex_pkg_register "rc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/sash.package b/groups.d/211.native_packages_cmdline.d/sash.package
new file mode 100644
index 00000000..cfb73c67
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/sash.package
@@ -0,0 +1,10 @@
+: ${PKG_SASH_DEPENDS:="libz"};
+: ${PKG_SASH_SHA256SUM:=13c4f9a911526949096bf543c21a41149e6b037061193b15ba6b707eea7b6579};
+: ${PKG_SASH_VERSION:=3.8};
+: ${PKG_SASH_URL:=http://members.tip.net.au/%7Edbell/programs/sash-${PKG_SASH_VERSION}.tar.gz};
+: ${PKG_SASH_BUILD_DIR:=sash-${PKG_SASH_VERSION}};
+: ${PKG_SASH_CFLAGS_BUILD_EXTRA:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE} -DHAVE_GZIP=1 -DHAVE_LINUX_ATTR=0 -DHAVE_LINUX_CHROOT=0 -DHAVE_LINUX_LOSETUP=0 -DHAVE_LINUX_PIVOT=0"};
+
+ex_pkg_register "sash" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/sbase.package b/groups.d/211.native_packages_cmdline.d/sbase.package
new file mode 100644
index 00000000..24dd285a
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/sbase.package
@@ -0,0 +1,11 @@
+: ${PKG_SBASE_URLS_GIT:="sbase=http://git.suckless.org/sbase@master"};
+: ${PKG_SBASE_DESTDIR:=destdir/suckless};
+: ${PKG_SBASE_CFLAGS_BUILD_EXTRA:="-std=c99 --include=sys/sysmacros.h"};
+: ${PKG_SBASE_IN_TREE:=1};
+: ${PKG_SBASE_MAKE_INSTALL_VNAME:=PREFIX};
+: ${PKG_SBASE_PREFIX:=${PREFIX_NATIVE}/suckless};
+: ${PKG_SBASE_DISABLED:=1};
+
+ex_pkg_register "sbase" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/screen.package b/groups.d/211.native_packages_cmdline.d/screen.package
new file mode 100644
index 00000000..ec44e336
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/screen.package
@@ -0,0 +1,11 @@
+: ${PKG_SCREEN_DEPENDS:="ncursesw"};
+: ${PKG_SCREEN_SHA256SUM:=f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4};
+: ${PKG_SCREEN_VERSION:=4.9.0};
+: ${PKG_SCREEN_URL:=https://ftp.gnu.org/gnu/screen/screen-${PKG_SCREEN_VERSION}.tar.gz};
+: ${PKG_SCREEN_CONFIGURE_ARGS_EXTRA:="--disable-pam"};
+: ${PKG_SCREEN_IN_TREE:=1};
+: ${PKG_SCREEN_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "screen" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/sed.package b/groups.d/211.native_packages_cmdline.d/sed.package
new file mode 100644
index 00000000..a86251fd
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/sed.package
@@ -0,0 +1,7 @@
+: ${PKG_SED_SHA256SUM:=6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181};
+: ${PKG_SED_VERSION:=4.9};
+: ${PKG_SED_URL:=https://ftp.gnu.org/gnu/sed/sed-${PKG_SED_VERSION}.tar.xz};
+
+ex_pkg_register "sed" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/sharutils.package b/groups.d/211.native_packages_cmdline.d/sharutils.package
new file mode 100644
index 00000000..ec5b1dd6
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/sharutils.package
@@ -0,0 +1,12 @@
+: ${PKG_SHARUTILS_SHA256SUM:=2b05cff7de5d7b646dc1669bc36c35fdac02ac6ae4b6c19cb3340d87ec553a9a};
+: ${PKG_SHARUTILS_VERSION:=4.15.2};
+: ${PKG_SHARUTILS_URL:=https://ftp.gnu.org/gnu/sharutils/sharutils-${PKG_SHARUTILS_VERSION}.tar.xz};
+: ${PKG_SHARUTILS_CONFIG_CACHE_EXTRA:="
+libopts_cv_test_dev_zero=yes
+libopts_cv_run_realpath=yes
+libopts_cv_run_strftime=yes
+libopts_cv_run_fopen_binary=yes"};
+
+ex_pkg_register "sharutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/sloccount.package b/groups.d/211.native_packages_cmdline.d/sloccount.package
new file mode 100644
index 00000000..512edd55
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/sloccount.package
@@ -0,0 +1,9 @@
+: ${PKG_SLOCCOUNT_SHA256SUM:=fa7fa2bbf2f627dd2d0fdb958bd8ec4527231254c120a8b4322405d8a4e3d12b};
+: ${PKG_SLOCCOUNT_VERSION:=2.26};
+: ${PKG_SLOCCOUNT_URL:=https://www.dwheeler.com/sloccount/sloccount-${PKG_SLOCCOUNT_VERSION}.tar.gz};
+: ${PKG_SLOCCOUNT_IN_TREE:=1};
+: ${PKG_SLOCCOUNT_MAKEFLAGS_INSTALL_EXTRA:="PREFIX=${PREFIX_NATIVE}"};
+
+ex_pkg_register "sloccount" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/tar.package b/groups.d/211.native_packages_cmdline.d/tar.package
new file mode 100644
index 00000000..b879a464
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/tar.package
@@ -0,0 +1,8 @@
+: ${PKG_TAR_DEPENDS:="libiconv"};
+: ${PKG_TAR_SHA256SUM:=66a8344b1dc83a411d311bd1547e0176e56cc311f28ee94a30f84dafb3d9067e};
+: ${PKG_TAR_VERSION:=1.33};
+: ${PKG_TAR_URL:=https://ftp.gnu.org/gnu/tar/tar-${PKG_TAR_VERSION}.tar.xz};
+
+ex_pkg_register "tar" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/tcsh.package b/groups.d/211.native_packages_cmdline.d/tcsh.package
new file mode 100644
index 00000000..4a626020
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/tcsh.package
@@ -0,0 +1,8 @@
+: ${PKG_TCSH_DEPENDS:="ncurses libiconv"};
+: ${PKG_TCSH_SHA256SUM:=e3270ce9667fd5bd2a046687659fcf5fd6a6781326f806ebd724f1e1c9cd4185};
+: ${PKG_TCSH_VERSION:=6.24.12};
+: ${PKG_TCSH_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz};
+
+ex_pkg_register "tcsh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/terminally_tetris.package b/groups.d/211.native_packages_cmdline.d/terminally_tetris.package
new file mode 100644
index 00000000..ae5336ad
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/terminally_tetris.package
@@ -0,0 +1,14 @@
+: ${PKG_TERMINALLY_TETRIS_DEPENDS:="ncurses"};
+: ${PKG_TERMINALLY_TETRIS_URLS_GIT:=terminally_tetris=https://github.com/thecardkid/terminally-tetris.git@master};
+: ${PKG_TERMINALLY_TETRIS_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_TERMINALLY_TETRIS_CFLAGS_BUILD_EXTRA:="-std=gnu99 -g3 -O0 -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
+: ${PKG_TERMINALLY_TETRIS_INSTALL_FILES_V2:="
+ ../terminally_tetris/build/ttetris=bin/%[FNAME]
+ ../terminally_tetris/man/ttetris.1=share/man/man1/%[FNAME]"};
+: ${PKG_TERMINALLY_TETRIS_IN_TREE:=1};
+: ${PKG_TERMINALLY_TETRIS_LDFLAGS_BUILD_EXTRA:="-lncurses -Wl,--as-needed -ltinfo -Wl,--no-as-needed"};
+: ${PKG_TERMINALLY_TETRIS_MAKEFLAGS_BUILD_EXTRA_LIST:=C=${DEFAULT_NATIVE_CC}};
+
+ex_pkg_register "terminally_tetris" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/the_silver_searcher.package b/groups.d/211.native_packages_cmdline.d/the_silver_searcher.package
new file mode 100644
index 00000000..fdaaae1c
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/the_silver_searcher.package
@@ -0,0 +1,9 @@
+: ${PKG_THE_SILVER_SEARCHER_DEPENDS:="libz pcre xz"};
+: ${PKG_THE_SILVER_SEARCHER_SHA256SUM:=d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170};
+: ${PKG_THE_SILVER_SEARCHER_VERSION:=2.2.0};
+: ${PKG_THE_SILVER_SEARCHER_URL:=https://geoff.greer.fm/ag/releases/the_silver_searcher-${PKG_THE_SILVER_SEARCHER_VERSION}.tar.gz};
+: ${PKG_THE_SILVER_SEARCHER_CFLAGS_CONFIGURE_EXTRA:="-D_LARGEFILE64_SOURCE"};
+
+ex_pkg_register "the_silver_searcher" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/toilet.package b/groups.d/211.native_packages_cmdline.d/toilet.package
new file mode 100644
index 00000000..005f6202
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/toilet.package
@@ -0,0 +1,6 @@
+: ${PKG_TOILET_DEPENDS:="libcaca"};
+: ${PKG_TOILET_URLS_GIT:=toilet=https://github.com/cacalabs/toilet@master};
+
+ex_pkg_register "toilet" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/tree.package b/groups.d/211.native_packages_cmdline.d/tree.package
new file mode 100644
index 00000000..963631cf
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/tree.package
@@ -0,0 +1,10 @@
+: ${PKG_TREE_SHA256SUM:=d3c3d55f403af7c76556546325aa1eca90b918cbaaf6d3ab60a49d8367ab90d5};
+: ${PKG_TREE_VERSION:=2.1.1};
+: ${PKG_TREE_URL:=http://mama.indstate.edu/users/ice/tree/src/tree-${PKG_TREE_VERSION}.tgz};
+: ${PKG_TREE_CFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
+: ${PKG_TREE_CFLAGS_BUILD_EXTRA:="-std=c99"};
+: ${PKG_TREE_IN_TREE:=1};
+
+ex_pkg_register "tree" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/ubase.package b/groups.d/211.native_packages_cmdline.d/ubase.package
new file mode 100644
index 00000000..2d3b35f2
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/ubase.package
@@ -0,0 +1,10 @@
+: ${PKG_UBASE_URLS_GIT:="ubase=http://git.suckless.org/ubase@master"};
+: ${PKG_UBASE_DESTDIR:=destdir/suckless};
+: ${PKG_UBASE_CFLAGS_BUILD_EXTRA:="-std=c99 --include=sys/sysmacros.h"};
+: ${PKG_UBASE_IN_TREE:=1};
+: ${PKG_UBASE_MAKE_INSTALL_VNAME:=PREFIX};
+: ${PKG_UBASE_PREFIX:=${PREFIX_NATIVE}/suckless};
+
+ex_pkg_register "ubase" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/which.package b/groups.d/211.native_packages_cmdline.d/which.package
new file mode 100644
index 00000000..19111403
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/which.package
@@ -0,0 +1,7 @@
+: ${PKG_WHICH_SHA256SUM:=f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad};
+: ${PKG_WHICH_VERSION:=2.21};
+: ${PKG_WHICH_URL:=https://ftp.gnu.org/gnu/which/which-${PKG_WHICH_VERSION}.tar.gz};
+
+ex_pkg_register "which" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/211.native_packages_cmdline.d/zsh.package b/groups.d/211.native_packages_cmdline.d/zsh.package
new file mode 100644
index 00000000..cc22cca9
--- /dev/null
+++ b/groups.d/211.native_packages_cmdline.d/zsh.package
@@ -0,0 +1,11 @@
+: ${PKG_ZSH_DEPENDS:="libiconv ncurses ncursesw"};
+: ${PKG_ZSH_SHA256SUM:=9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5};
+: ${PKG_ZSH_VERSION:=5.9};
+: ${PKG_ZSH_URL:=https://www.zsh.org/pub/zsh-${PKG_ZSH_VERSION}.tar.xz};
+: ${PKG_ZSH_CONFIG_CACHE_EXTRA:="zsh_cv_sys_elf=no"};
+: ${PKG_ZSH_CONFIGURE_ARGS_EXTRA:="--enable-libc-musl --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --enable-etcdir=/etc/zsh --enable-multibyte --enable-function-subdirs --enable-zsh-secure-free --with-tcsetpgrp"};
+: ${PKG_ZSH_IN_TREE:=1};
+
+ex_pkg_register "zsh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/algol68g.package b/groups.d/221.native_packages_dev.d/algol68g.package
new file mode 100644
index 00000000..38d06662
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/algol68g.package
@@ -0,0 +1,9 @@
+: ${PKG_ALGOL68G_SHA256SUM:=bd26e3dd89720ace1b003a43ab10247120b556ca106768fe8c829ee7bed6b435};
+: ${PKG_ALGOL68G_VERSION:=3.3.24};
+: ${PKG_ALGOL68G_URL:=https://jmvdveer.home.xs4all.nl/algol68g-${PKG_ALGOL68G_VERSION}.tar.gz}
+: ${PKG_ALGOL68G_CONFIGURE_ARGS_EXTRA:="--disable-mathlib --disable-plotutils --disable-postgresql --disable-gsl --disable-curl"};
+: ${PKG_ALGOL68G_CFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -DHAVE_FLT80=1 -DBUILD_UNIX=1"};
+
+ex_pkg_register "algol68g" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/autoconf.package b/groups.d/221.native_packages_dev.d/autoconf.package
new file mode 100644
index 00000000..ee24220f
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/autoconf.package
@@ -0,0 +1,12 @@
+: ${PKG_AUTOCONF_SHA256SUM:=f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4};
+: ${PKG_AUTOCONF_VERSION:=2.71};
+: ${PKG_AUTOCONF_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_VERSION}.tar.xz};
+: ${PKG_AUTOCONF_CONFIG_CACHE_EXTRA:="
+ac_cv_path_M4=/usr/bin/m4"};
+: ${PKG_AUTOCONF_ARCHIVE_SHA256SUM:=71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33};
+: ${PKG_AUTOCONF_ARCHIVE_VERSION:=2023.02.20};
+: ${PKG_AUTOCONF_ARCHIVE_URL:=https://ftp.gnu.org/gnu/autoconf-archive/autoconf-archive-${PKG_AUTOCONF_ARCHIVE_VERSION}.tar.xz};
+
+ex_pkg_register "autoconf" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/automake.package b/groups.d/221.native_packages_dev.d/automake.package
new file mode 100644
index 00000000..4e69698c
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/automake.package
@@ -0,0 +1,7 @@
+: ${PKG_AUTOMAKE_SHA256SUM:=f01d58cd6d9d77fbdca9eb4bbd5ead1988228fdb73d6f7a201f5f8d6b118b469};
+: ${PKG_AUTOMAKE_VERSION:=1.16.5};
+: ${PKG_AUTOMAKE_URL:=https://ftp.gnu.org/gnu/automake/automake-${PKG_AUTOMAKE_VERSION}.tar.xz};
+
+ex_pkg_register "automake" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/bison.package b/groups.d/221.native_packages_dev.d/bison.package
new file mode 100644
index 00000000..0badda68
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/bison.package
@@ -0,0 +1,11 @@
+: ${PKG_BISON_DEPENDS:="readline libiconv"};
+: ${PKG_BISON_SHA256SUM:=9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2};
+: ${PKG_BISON_VERSION:=3.8.2};
+: ${PKG_BISON_URL:=https://ftp.gnu.org/gnu/bison/bison-${PKG_BISON_VERSION}.tar.xz};
+: ${PKG_BISON_CONFIG_CACHE_EXTRA:="
+ac_cv_path_M4=/bin/m4
+ac_cv_prog_gnu_m4_gnu=yes"};
+
+ex_pkg_register "bison" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/cdecl.package b/groups.d/221.native_packages_dev.d/cdecl.package
new file mode 100644
index 00000000..c73ebd56
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/cdecl.package
@@ -0,0 +1,10 @@
+: ${PKG_CDECL_DEPENDS:="ncurses readline"};
+: ${PKG_CDECL_SHA256SUM:=04d1f4ecc9868771843e0ba55c72100c805ee4de2d0618a69d9dbf853df7eefd};
+: ${PKG_CDECL_VERSION:=13.0};
+: ${PKG_CDECL_URL:=https://github.com/paul-j-lucas/cdecl/releases/download/cdecl-${PKG_CDECL_VERSION}/cdecl-${PKG_CDECL_VERSION}.tar.gz};
+: ${PKG_CDECL_CONFIGURE_ARGS_EXTRA:="--with-readline=${PREFIX_NATIVE}"};
+: ${PKG_CDECL_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/ncurses"};
+
+ex_pkg_register "cdecl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/chicken.package b/groups.d/221.native_packages_dev.d/chicken.package
new file mode 100644
index 00000000..e4d9d83f
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/chicken.package
@@ -0,0 +1,14 @@
+: ${PKG_CHICKEN_SHA256SUM:=c3ad99d8f9e17ed810912ef981ac3b0c2e2f46fb0ecc033b5c3b6dca1bdb0d76};
+: ${PKG_CHICKEN_VERSION:=5.3.0};
+: ${PKG_CHICKEN_URL:=https://code.call-cc.org/releases/${PKG_CHICKEN_VERSION}/chicken-${PKG_CHICKEN_VERSION}.tar.gz};
+: ${PKG_CHICKEN_IN_TREE:=1};
+: ${PKG_CHICKEN_MAKEFLAGS_BUILD_LIST:="PLATFORM=midipix:ARCH=${ARCH}:PREFIX=${PREFIX_NATIVE}:TARGET_PREFIX=${PREFIX_NATIVE}:C_COMPILER=${DEFAULT_NATIVE_CC}:HOSTSYSTEM=${DEFAULT_TARGET}"};
+: ${PKG_CHICKEN_DEBUG_MAKEFLAGS_BUILD_EXTRA_LIST:=DEBUGBUILD=1};
+: ${PKG_CHICKEN_RELEASE_MAKEFLAGS_BUILD_EXTRA_LIST:=DEBUGBUILD=0};
+: ${PKG_CHICKEN_MAKEFLAGS_INSTALL_LIST:="PLATFORM=midipix:ARCH=${ARCH}:PREFIX=${PREFIX_NATIVE}:C_COMPILER=${DEFAULT_NATIVE_CC}:HOSTSYSTEM=${DEFAULT_TARGET}:CROSS_CHICKEN=1"};
+: ${PKG_CHICKEN_MAKEFLAGS_INSTALL_EXTRA_LIST:="PREFIX=:TARGET_PREFIX="};
+: ${PKG_CHICKEN_MAKE_INSTALL_VNAME:=DESTDIR};
+
+ex_pkg_register "chicken" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/cparser.package b/groups.d/221.native_packages_dev.d/cparser.package
new file mode 100644
index 00000000..74517c66
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/cparser.package
@@ -0,0 +1,10 @@
+: ${PKG_CPARSER_DEPENDS:="libfirm"};
+: ${PKG_CPARSER_URLS_GIT:="cparser=http://github.com/lalbornoz/cparser.git@main bcparser=${DEFAULT_GITROOT}/compilers/bcparser@main"};
+: ${PKG_CPARSER_BUILD_DIR:=build/cparser};
+: ${PKG_CPARSER_CONFIGURE:=bcparser/configure};
+: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../cparser --prefix="};
+: ${PKG_CPARSER_VARS_FILE:="vars/libfirm.vars"}
+
+ex_pkg_register "cparser" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/cssc.package b/groups.d/221.native_packages_dev.d/cssc.package
new file mode 100644
index 00000000..0504aa56
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/cssc.package
@@ -0,0 +1,9 @@
+: ${PKG_CSSC_SHA256SUM:=d1bed0c80246ee4cd49d0aa45307c075d0876fe531057bb1c8b28f5330d651ef};
+: ${PKG_CSSC_VERSION:=1.4.1};
+: ${PKG_CSSC_URL:=https://ftp.gnu.org/gnu/cssc/CSSC-${PKG_CSSC_VERSION}.tar.gz};
+: ${PKG_CSSC_CONFIGURE_ARGS_EXTRA:="--enable-binary"};
+: ${PKG_CSSC_CXXFLAGS_CONFIGURE_EXTRA:="-std=gnu++0x"};
+
+ex_pkg_register "cssc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/diffutils.package b/groups.d/221.native_packages_dev.d/diffutils.package
new file mode 100644
index 00000000..d9824bd8
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/diffutils.package
@@ -0,0 +1,8 @@
+: ${PKG_DIFFUTILS_DEPENDS:="libiconv"};
+: ${PKG_DIFFUTILS_SHA256SUM:=90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e};
+: ${PKG_DIFFUTILS_VERSION:=3.10};
+: ${PKG_DIFFUTILS_URL:=https://ftp.gnu.org/gnu/diffutils/diffutils-${PKG_DIFFUTILS_VERSION}.tar.xz};
+
+ex_pkg_register "diffutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/flex.package b/groups.d/221.native_packages_dev.d/flex.package
new file mode 100644
index 00000000..461f9bee
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/flex.package
@@ -0,0 +1,9 @@
+: ${PKG_FLEX_SHA256SUM:=e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995};
+: ${PKG_FLEX_VERSION:=2.6.4};
+: ${PKG_FLEX_URL:=https://github.com/westes/flex/releases/download/v${PKG_FLEX_VERSION}/flex-${PKG_FLEX_VERSION}.tar.gz};
+: ${PKG_FLEX_CFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
+: ${PKG_FLEX_CONFIGURE_ARGS_EXTRA:=--disable-libfl};
+
+ex_pkg_register "flex" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/gdb.package b/groups.d/221.native_packages_dev.d/gdb.package
new file mode 100644
index 00000000..19414b77
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/gdb.package
@@ -0,0 +1,17 @@
+: ${PKG_GDB_DEPENDS:="ncurses python2"};
+: ${PKG_GDB_SHA256SUM:=149abac4add030a5713f15964bd7465bef7a23712bcc91377ca40949f33e93fb};
+: ${PKG_GDB_VERSION:=7.12};
+: ${PKG_GDB_URL:=ftp://sourceware.org/pub/gdb/releases/gdb-${PKG_GDB_VERSION}.tar.gz};
+: ${PKG_GDB_CFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 -L${PREFIX_NATIVE}/lib"};
+: ${PKG_GDB_CONFIGURE_ARGS_EXTRA:="--with-system-libiberty --with-system-readline --with-system-zlib --with-python=${PWD}/files/python2_host/bin/python2.7-config"};
+: ${PKG_GDB_CXXFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 -L${PREFIX_NATIVE}/lib"};
+: ${PKG_GDB_ENV_VARS_EXTRA:="CFLAGS_FOR_TARGET=-g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 --sysroot=${PREFIX_NATIVE}:LDFLAGS_FOR_TARGET=--sysroot=${PREFIX_NATIVE}"};
+: ${PKG_GDB_INSTALL_FILES_V2:="../obj/gdb/.libs/gdb=bin/gdb"};
+: ${PKG_GDB_LIBTOOL:=rdlibtool};
+: ${PKG_GDB_MAKEFLAGS_BUILD_EXTRA:="SYSROOT_FLAGS=--sysroot=${PREFIX_NATIVE}"};
+: ${PKG_GDB_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gdb/gdb-${PKG_GDB_VERSION}.midipix.patch"};
+: ${PKG_GDB_VARS_FILES:="vars/gdb.vars"};
+
+ex_pkg_register "gdb" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/gengetopt.package b/groups.d/221.native_packages_dev.d/gengetopt.package
new file mode 100644
index 00000000..22ea7cc3
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/gengetopt.package
@@ -0,0 +1,7 @@
+: ${PKG_GENGETOPT_SHA256SUM:=b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac};
+: ${PKG_GENGETOPT_VERSION:=2.23};
+: ${PKG_GENGETOPT_URL:=https://ftp.gnu.org/gnu/gengetopt/gengetopt-${PKG_GENGETOPT_VERSION}.tar.xz};
+
+ex_pkg_register "gengetopt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/gnucobol.package b/groups.d/221.native_packages_dev.d/gnucobol.package
new file mode 100644
index 00000000..fce44370
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/gnucobol.package
@@ -0,0 +1,10 @@
+: ${PKG_GNUCOBOL_DEPENDS:="ncursesw"}
+: ${PKG_GNUCOBOL_SHA256SUM:=597005d71fd7d65b90cbe42bbfecd5a9ec0445388639404662e70d53ddf22574};
+: ${PKG_GNUCOBOL_VERSION:=3.1.2};
+: ${PKG_GNUCOBOL_URL:=https://ftp.gnu.org/gnu/gnucobol/gnucobol-${PKG_GNUCOBOL_VERSION}.tar.xz};
+: ${PKG_GNUCOBOL_CONFIGURE_ARGS_EXTRA:="--without-db --without-json --with-math=gmp"};
+: ${PKG_GNUCOBOL_LDFLAGS_CONFIGURE_EXTRA:="-ltinfow"};
+
+ex_pkg_register "gnucobol" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/indent.package b/groups.d/221.native_packages_dev.d/indent.package
new file mode 100644
index 00000000..58c66709
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/indent.package
@@ -0,0 +1,8 @@
+: ${PKG_INDENT_SHA256SUM:=1b81ba4e9a006ca8e6eb5cbbe4cf4f75dfc1fc9301b459aa0d40393e85590a0b};
+: ${PKG_INDENT_VERSION:=2.2.13};
+: ${PKG_INDENT_URL:=https://ftp.gnu.org/gnu/indent/indent-${PKG_INDENT_VERSION}.tar.xz};
+: ${PKG_INDENT_CFLAGS_CONFIGURE_EXTRA:="-DHAVE_LOCALE_H"};
+
+ex_pkg_register "indent" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/lua.package b/groups.d/221.native_packages_dev.d/lua.package
new file mode 100644
index 00000000..3b14fb32
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/lua.package
@@ -0,0 +1,16 @@
+: ${PKG_LUA_DEPENDS:="readline"};
+: ${PKG_LUA_SHA256SUM:=164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61};
+: ${PKG_LUA_VERSION:=5.4.4};
+: ${PKG_LUA_URL:=https://www.lua.org/ftp/lua-${PKG_LUA_VERSION}.tar.gz};
+: ${PKG_LUA_CFLAGS_BUILD:="${DEFAULT_CFLAGS:+${DEFAULT_CFLAGS} }--sysroot=${PREFIX_NATIVE}"};
+: ${PKG_LUA_CFLAGS_BUILD_EXTRA:="-DLUA_COMPAT_5_3 -DLUA_USE_LINUX -DLUA_USE_READLINE"};
+: ${PKG_LUA_LDFLAGS_BUILD_EXTRA:="--sysroot=${PREFIX_NATIVE} -lreadline"};
+: ${PKG_LUA_IN_TREE:=1};
+: ${PKG_LUA_INSTALL_FILES_V2:="
+ +%[_files]/lua.pc=lib/pkgconfig/lua.pc
+ m0644=lib/pkgconfig/lua.pc"};
+: ${PKG_LUA_MAKEFLAGS_VERBOSITY:="none"};
+
+ex_pkg_register "lua" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/lunix.package b/groups.d/221.native_packages_dev.d/lunix.package
new file mode 100644
index 00000000..1b188593
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/lunix.package
@@ -0,0 +1,10 @@
+: ${PKG_LUNIX_DEPENDS:="lua"};
+: ${PKG_LUNIX_URLS_GIT:=lunix=https://github.com/Redfoxmoon3/lunix.git@master};
+: ${PKG_LUNIX_IN_TREE:=1};
+: ${PKG_LUNIX_MAKEFLAGS_BUILD:="all5.3 libdir=${PREFIX_NATIVE}/lib"};
+: ${PKG_LUNIX_MAKEFLAGS_INSTALL_EXTRA:="libdir=lib"};
+: ${PKG_LUNIX_DISABLED:=1};
+
+ex_pkg_register "lunix" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/m4.package b/groups.d/221.native_packages_dev.d/m4.package
new file mode 100644
index 00000000..b672cb7f
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/m4.package
@@ -0,0 +1,9 @@
+: ${PKG_M4_SHA256SUM:=63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96};
+: ${PKG_M4_VERSION:=1.4.19};
+: ${PKG_M4_URL:=https://ftp.gnu.org/gnu/m4/m4-${PKG_M4_VERSION}.tar.xz};
+: ${PKG_M4_CONFIG_CACHE_EXTRA:="
+M4_cv_func_rename_open_file_works=yes"};
+
+ex_pkg_register "m4" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/make.package b/groups.d/221.native_packages_dev.d/make.package
new file mode 100644
index 00000000..e2190dc8
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/make.package
@@ -0,0 +1,10 @@
+: ${PKG_MAKE_SHA256SUM:=e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7};
+: ${PKG_MAKE_VERSION:=4.2.1};
+: ${PKG_MAKE_URL:=https://ftp.gnu.org/gnu/make/make-${PKG_MAKE_VERSION}.tar.gz};
+: ${PKG_MAKE_CONFIG_CACHE_EXTRA:="
+ac_cv_func_gettimeofday=yes
+make_cv_synchronous_posix_spawn=yes"};
+
+ex_pkg_register "make" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/mandoc.package b/groups.d/221.native_packages_dev.d/mandoc.package
new file mode 100644
index 00000000..4dddd229
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/mandoc.package
@@ -0,0 +1,12 @@
+: ${PKG_MANDOC_DEPENDS:="libz musl_fts"};
+: ${PKG_MANDOC_SHA256SUM:=8bf0d570f01e70a6e124884088870cbed7537f36328d512909eb10cd53179d9c};
+: ${PKG_MANDOC_VERSION:=1.14.6};
+: ${PKG_MANDOC_URL:=https://mandoc.bsd.lv/snapshots/mandoc-${PKG_MANDOC_VERSION}.tar.gz};
+: ${PKG_MANDOC_MAKEFLAGS_BUILD_EXTRA_LIST:="CC=${DEFAULT_NATIVE_CC}:LDADD=-Wl,-lz,-lfts"};
+: ${PKG_MANDOC_CFLAGS_BUILD_EXTRA:="-D_GNU_SOURCE ${DEFAULT_CFLAGS}"};
+: ${PKG_MANDOC_BUILD_STEPS_DISABLE:="configure"};
+: ${PKG_MANDOC_IN_TREE:=1};
+
+ex_pkg_register "mandoc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/nasm.package b/groups.d/221.native_packages_dev.d/nasm.package
new file mode 100644
index 00000000..cd8db50f
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/nasm.package
@@ -0,0 +1,8 @@
+: ${PKG_NASM_SHA256SUM:=c77745f4802375efeee2ec5c0ad6b7f037ea9c87c92b149a9637ff099f162558};
+: ${PKG_NASM_VERSION:=2.16.01};
+: ${PKG_NASM_URL:=http://www.nasm.us/pub/nasm/releasebuilds/${PKG_NASM_VERSION}/nasm-${PKG_NASM_VERSION}.tar.xz};
+: ${PKG_NASM_CFLAGS_CONFIGURE_EXTRA:=-DCOFF_MIDIPIX};
+
+ex_pkg_register "nasm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/p2c.package b/groups.d/221.native_packages_dev.d/p2c.package
new file mode 100644
index 00000000..5a507081
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/p2c.package
@@ -0,0 +1,9 @@
+: ${PKG_P2C_SHA256SUM:=8c806babe964f34ebc686fdd945b1bf14f98d88020acabe434fa8764284af282};
+: ${PKG_P2C_VERSION:=2.02};
+: ${PKG_P2C_URL:=https://mirror.midipix.org/p2c/p2c-${PKG_P2C_VERSION}.tar.xz};
+: ${PKG_P2C_ENV_VARS_EXTRA:="HOST_CC=gcc"};
+: ${PKG_P2C_BUILD_DIR:=p2c-${PKG_P2C_VERSION}};
+
+ex_pkg_register "p2c" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/patch.package b/groups.d/221.native_packages_dev.d/patch.package
new file mode 100644
index 00000000..6d564752
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/patch.package
@@ -0,0 +1,10 @@
+: ${PKG_PATCH_SHA256SUM:=ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd};
+: ${PKG_PATCH_VERSION:=2.7.6};
+: ${PKG_PATCH_URL:=https://ftp.gnu.org/gnu/patch/patch-${PKG_PATCH_VERSION}.tar.xz};
+: ${PKG_PATCHUTILS_SHA256SUM:=8875b0965fe33de62b890f6cd793be7fafe41a4e552edbf641f1fed5ebbf45ed};
+: ${PKG_PATCHUTILS_VERSION:=0.4.2};
+: ${PKG_PATCHUTILS_URL:=http://cyberelk.net/tim/data/patchutils/stable/patchutils-${PKG_PATCHUTILS_VERSION}.tar.xz};
+
+ex_pkg_register "patch" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/perl.package b/groups.d/221.native_packages_dev.d/perl.package
new file mode 100644
index 00000000..26f99ea8
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/perl.package
@@ -0,0 +1,17 @@
+: ${PKG_PERL_SHA256SUM:=e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a};
+: ${PKG_PERL_VERSION:=5.36.0};
+: ${PKG_PERL_URL:=http://www.cpan.org/src/5.0/perl-${PKG_PERL_VERSION}.tar.gz};
+: ${PKG_PERL_URLS_GIT:="perl-cross=https://github.com/Redfoxymoon/perl-cross@master"};
+: ${PKG_PERL_BASE_DIR:=${BUILD_WORKDIR}/perl-native-${DEFAULT_TARGET}};
+: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include -Duseshrplib -Darchname=${DEFAULT_TARGET} -Darchlib=/usr/lib/perl5/${PKG_PERL_VERSION}/${DEFAULT_TARGET} -Dsitearch=/usr/lib/perl5/site_perl/${PKG_PERL_VERSION}/${DEFAULT_TARGET} --sysroot=${PREFIX_NATIVE} --target=${DEFAULT_TARGET}"};
+: ${PKG_PERL_CFLAGS_CONFIGURE_EXTRA:="-std=gnu99"};
+: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${DEFAULT_TARGET}"};
+: ${PKG_PERL_MAKEFLAGS_BUILD:="PERL_ARCHIVE_AFTER=${PREFIX}/tmp/perl-native-${DEFAULT_TARGET}/perl-${PKG_PERL_VERSION}/libperl.so OTHERLDFLAGS=--sysroot=${PREFIX_NATIVE}"};
+: ${PKG_PERL_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_PERL_INSTALL_FILES_V2:="+%[_subdir]/libperl.so=lib/libperl.so"};
+: ${PKG_PERL_SUBDIR:=perl-${PKG_PERL_VERSION}};
+: ${PKG_PERL_IN_TREE:=1};
+
+ex_pkg_register "perl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/posix_cc.package b/groups.d/221.native_packages_dev.d/posix_cc.package
new file mode 100644
index 00000000..6d625a8d
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/posix_cc.package
@@ -0,0 +1,9 @@
+: ${PKG_POSIX_CC_DEPENDS:="musl_compat"};
+: ${PKG_POSIX_CC_SHA256SUM:=bd90442d98714f874b6e7e62fa8376ddca282c2174dc582917ecab773f96c095};
+: ${PKG_POSIX_CC_VERSION:=1.4};
+: ${PKG_POSIX_CC_URL:=https://mirror.midipix.org/posix_cc/posix_cc-${PKG_POSIX_CC_VERSION}.tar.bz2};
+: ${PKG_POSIX_CC_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "posix_cc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/python2.package b/groups.d/221.native_packages_dev.d/python2.package
new file mode 100644
index 00000000..771642dd
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/python2.package
@@ -0,0 +1,16 @@
+: ${PKG_PYTHON2_DEPENDS:="bzip2 curl expat gdbm libffi libressl libz ncursesw readline sqlite3"};
+: ${PKG_PYTHON2_SHA256SUM:=b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43};
+: ${PKG_PYTHON2_VERSION:=2.7.18};
+: ${PKG_PYTHON2_URL:="https://www.python.org/ftp/python/${PKG_PYTHON2_VERSION}/Python-${PKG_PYTHON2_VERSION}.tar.xz"};
+: ${PKG_PYTHON2_URLS_GIT:="build/sbpython2=${DEFAULT_GITROOT}/python/sbpython2@main"};
+: ${PKG_PYTHON2_BASE_DIR:=${BUILD_WORKDIR}/python2-native-${DEFAULT_TARGET}};
+: ${PKG_PYTHON2_BUILD_DIR:=build/python2};
+: ${PKG_PYTHON2_CONFIGURE:=build/sbpython2/configure};
+: ${PKG_PYTHON2_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON2_VERSION} --sysroot=${PREFIX_NATIVE} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_PYTHON2_CONFIGURE_TYPE:="sofort"};
+: ${PKG_PYTHON2_SOFORT_NATIVE_CFLAGS_EXTRA:="-std=c99 -D_XOPEN_SOURCE=700"};
+: ${PKG_PYTHON2_SUBDIR:=Python-${PKG_PYTHON2_VERSION}};
+
+ex_pkg_register "python2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/python3.package b/groups.d/221.native_packages_dev.d/python3.package
new file mode 100644
index 00000000..c816c795
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/python3.package
@@ -0,0 +1,17 @@
+: ${PKG_PYTHON3_DEPENDS:="bzip2 curl expat gdbm libffi libressl libz ncursesw readline sqlite3 util_linux xz"};
+: ${PKG_PYTHON3_SHA256SUM:=f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b};
+: ${PKG_PYTHON3_VERSION:=3.7.10};
+: ${PKG_PYTHON3_URL:="https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tar.xz"};
+: ${PKG_PYTHON3_URLS_GIT:="build/sbpython3=${DEFAULT_GITROOT}/python/sbpython3@main"};
+: ${PKG_PYTHON3_BASE_DIR:=${BUILD_WORKDIR}/python3-native-${DEFAULT_TARGET}};
+: ${PKG_PYTHON3_BUILD_DIR:=build/python3};
+: ${PKG_PYTHON3_CONFIGURE:=build/sbpython3/configure};
+: ${PKG_PYTHON3_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON3_VERSION} --sysroot=${PREFIX_NATIVE} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_PYTHON3_CONFIGURE_TYPE:="sofort"};
+: ${PKG_PYTHON3_SOFORT_NATIVE_CFLAGS_EXTRA:="-std=c99 -D_XOPEN_SOURCE=700"};
+: ${PKG_PYTHON3_INSTALL_FILES_V2:="@python3=bin/python"};
+: ${PKG_PYTHON3_SUBDIR:=Python-${PKG_PYTHON3_VERSION}};
+
+ex_pkg_register "python3" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/ruby.package b/groups.d/221.native_packages_dev.d/ruby.package
new file mode 100644
index 00000000..09e23173
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/ruby.package
@@ -0,0 +1,10 @@
+: ${PKG_RUBY_SHA256SUM:=ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507};
+: ${PKG_RUBY_VERSION:=2.3.0};
+: ${PKG_RUBY_URL:=https://cache.ruby-lang.org/pub/ruby/${PKG_RUBY_VERSION%.*}/ruby-${PKG_RUBY_VERSION}.tar.gz};
+: ${PKG_RUBY_CONFIGURE_ARGS_EXTRA:="--disable-install-rdoc --with-baseruby=${PREFIX}/bin/ruby --with-out-ext=fiddle,openssl"};
+: ${PKG_RUBY_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_RUBY_MAKEFLAGS_VERBOSITY:="V=1"};
+
+ex_pkg_register "ruby" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/sbsigntools.package b/groups.d/221.native_packages_dev.d/sbsigntools.package
new file mode 100644
index 00000000..66dc2a71
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/sbsigntools.package
@@ -0,0 +1,8 @@
+: ${PKG_SBSIGNTOOLS_DEPENDS:="libressl"};
+: ${PKG_SBSIGNTOOLS_URLS_GIT:=sbsigntools-master=https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git@master};
+: ${PKG_SBSIGNTOOLS_SUBDIR:=sbsigntools-master};
+: ${PKG_SBSIGNTOOLS_IN_TREE:=1};
+
+ex_pkg_register "sbsigntools" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/221.native_packages_dev.d/tk.package b/groups.d/221.native_packages_dev.d/tk.package
new file mode 100644
index 00000000..90275ff4
--- /dev/null
+++ b/groups.d/221.native_packages_dev.d/tk.package
@@ -0,0 +1,11 @@
+: ${PKG_TK_DEPENDS:="libX11 tcl"};
+: ${PKG_TK_SHA256SUM:=131e4bae43a15dff0324c0479358bb42cfd7b8de0e1ca8d93c9207643c7144dd};
+: ${PKG_TK_VERSION:=8.7a1};
+: ${PKG_TK_URL:=http://kuiper.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/tcl8_7/tk${PKG_TK_VERSION}-src.tar.gz};
+: ${PKG_TK_CONFIGURE:="tk${PKG_TK_VERSION}/unix/configure"};
+: ${PKG_TK_CONFIGURE_ARGS_EXTRA:="tcl_cv_strtod_buggy=no --with-tcl=${PREFIX_NATIVE}/lib"};
+: ${PKG_TK_SUBDIR:=tk${PKG_TK_VERSION}};
+
+ex_pkg_register "tk" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/apr.package b/groups.d/231.native_packages_etc.d/apr.package
new file mode 100644
index 00000000..bfe3d165
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/apr.package
@@ -0,0 +1,18 @@
+: ${PKG_APR_SHA256SUM:=a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105};
+: ${PKG_APR_VERSION:=1.6.5};
+: ${PKG_APR_URL:=http://ftp.fau.de/apache/apr/apr-${PKG_APR_VERSION}.tar.bz2};
+: ${PKG_APR_CONFIGURE_ARGS_EXTRA:="--with-devrandom=/dev/urandom"};
+: ${PKG_APR_LIBTOOL:=rdlibtool};
+: ${PKG_APR_NO_CLEAN:=1};
+: ${PKG_APR_UTIL_DEPENDS:="apr expat libressl sqlite3"};
+: ${PKG_APR_UTIL_SHA256SUM:=d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b};
+: ${PKG_APR_UTIL_VERSION:=1.6.1};
+: ${PKG_APR_UTIL_URL:=https://archive.apache.org/dist/apr/apr-util-${PKG_APR_UTIL_VERSION}.tar.bz2};
+: ${PKG_APR_UTIL_ENV_VARS_EXTRA:="LDADD_dbd_sqlite3=-lsqlite3 -lapr-1 -L.libs -laprutil-1:LDADD_crypto_openssl=-lcrypto -lssl -lapr-1 -L.libs -laprutil-1"};
+: ${PKG_APR_UTIL_CONFIGURE_ARGS_EXTRA:="--with-crypto --with-apr=${BUILD_WORKDIR}/apr-native-${DEFAULT_TARGET}/obj"};
+: ${PKG_APR_UTIL_INSTALL_FILES_V2:="+bin/apu-1-config=%[_prefix_host]/bin/%[_target]-%[FNAME]"};
+: ${PKG_APR_UTIL_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "apr" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/bdwgc.package b/groups.d/231.native_packages_etc.d/bdwgc.package
new file mode 100644
index 00000000..15353bc9
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/bdwgc.package
@@ -0,0 +1,7 @@
+: ${PKG_BDWGC_DEPENDS:="libatomic_ops"};
+: ${PKG_BDWGC_URLS_GIT:="bdwgc=https://github.com/ivmai/bdwgc@master"};
+: ${PKG_BDWGC_CONFIGURE_ARGS_EXTRA:="--enable-threads=posix --enable-parallel-mark --enable-handle-fork"};
+
+ex_pkg_register "bdwgc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/bmake.package b/groups.d/231.native_packages_etc.d/bmake.package
new file mode 100644
index 00000000..38374c02
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/bmake.package
@@ -0,0 +1,10 @@
+: ${PKG_BMAKE_VERSION:=20240401};
+: ${PKG_BMAKE_URL:=https://srcbase.foss21.org/base/bmake/srcbase.bmake-${PKG_BMAKE_HOST_VERSION}.tar.xz};
+: ${PKG_BMAKE_SHA256SUM:=4b760506cd1fdada8c1012558e78530ccd2deaa29aeb463411bc9d8755a40a7e};
+: ${PKG_BMAKE_SUBDIR:=bmake-20240401};
+: ${PKG_BMAKE_CONFIGURE_TYPE:="sofort"};
+: ${PKG_BMAKE_CONFIGURE_ARGS:=--prefix=};
+
+ex_pkg_register "bmake" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/bochs.package b/groups.d/231.native_packages_etc.d/bochs.package
new file mode 100644
index 00000000..7fc5a9b8
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/bochs.package
@@ -0,0 +1,15 @@
+: ${PKG_BOCHS_DEPENDS:="curl ncurses sdl1"};
+: ${PKG_BOCHS_SHA256SUM:=a85b13aff7d8411f7a9f356ba6c33b5f5dc1fbb107eb5018cc23a62639da0059};
+: ${PKG_BOCHS_VERSION:=2.8};
+: ${PKG_BOCHS_URL:=https://fossies.org/linux/misc/bochs-${PKG_BOCHS_VERSION}.tar.gz};
+: ${PKG_BOCHS_CONFIGURE_ARGS_EXTRA:="--disable-docbook --without-x11 --without-wx --without-sdl2 --with-term --with-sdl --enable-idle-hack"};
+: ${PKG_BOCHS_CXXFLAGS_CONFIGURE_EXTRA:="-D_LARGEFILE64_SOURCE -I${PREFIX_NATIVE}/include/ncurses"};
+: ${PKG_BOCHS_INSTALL_FILES_V2:="
+ +../obj/.libs/bochs=bin/%[FNAME]
+ +../obj/.libs/bximage=bin/%[FNAME]"};
+: ${PKG_BOCHS_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib"};
+: ${PKG_BOCHS_MAKEFLAGS_BUILD:="LIBS=-Wl,-ltinfo"};
+
+ex_pkg_register "bochs" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/bzip2.package b/groups.d/231.native_packages_etc.d/bzip2.package
new file mode 100644
index 00000000..31a3d44a
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/bzip2.package
@@ -0,0 +1,17 @@
+: ${PKG_BZIP2_SHA256SUM:=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269};
+: ${PKG_BZIP2_VERSION:=1.0.8};
+: ${PKG_BZIP2_URL:=https://sourceware.org/pub/bzip2/bzip2-${PKG_BZIP2_VERSION}.tar.gz};
+: ${PKG_BZIP2_INSTALL_FILES_V2:="
+ @bzdiff=bin/bzcmp
+ @bzgrep=bin/bzegrep
+ @bzgrep=bin/bzfgrep
+ @bzmore=bin/bzless
+ +../bzip2-${PKG_BZIP2_VERSION}/libbz2.so.1=lib/%[FNAME]
+ +../bzip2-${PKG_BZIP2_VERSION}/libbz2.so.1.0.8=lib/%[FNAME]"};
+: ${PKG_BZIP2_IN_TREE:=1};
+: ${PKG_BZIP2_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so};
+: ${PKG_BZIP2_MAKE_INSTALL_VNAME:=PREFIX};
+
+ex_pkg_register "bzip2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/cherokee.package b/groups.d/231.native_packages_etc.d/cherokee.package
new file mode 100644
index 00000000..40e92bd7
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/cherokee.package
@@ -0,0 +1,9 @@
+: ${PKG_CHEROKEE_DEPENDS:="libz"};
+: ${PKG_CHEROKEE_URLS_GIT:=cherokee=https://github.com/cherokee/webserver.git@master};
+: ${PKG_CHEROKEE_CONFIGURE_ARGS_EXTRA:="--with-python=${PREFIX}/bin/python2 --without-epoll --without-php --without-ffmpeg --without-libssl"};
+: ${PKG_CHEROKEE_IN_TREE:=1};
+: ${PKG_CHEROKEE_DISABLED:=1};
+
+ex_pkg_register "cherokee" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/clzip.package b/groups.d/231.native_packages_etc.d/clzip.package
new file mode 100644
index 00000000..ef7f6b19
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/clzip.package
@@ -0,0 +1,10 @@
+: ${PKG_CLZIP_SHA256SUM:=f63fe1245b832fe07ff679e9b9b8687e9379ab613a26bfb0aca3754c8b162d73};
+: ${PKG_CLZIP_VERSION:=1.14};
+: ${PKG_CLZIP_URL:=https://download.savannah.gnu.org/releases/lzip/clzip/clzip-${PKG_CLZIP_VERSION}.tar.gz};
+: ${PKG_CLZIP_CONFIGURE_ARGS_LIST:="CC=${DEFAULT_NATIVE_CC}:--prefix="};
+: ${PKG_CLZIP_INSTALL_FILES_V2:="@clzip=bin/lzip"};
+: ${PKG_CLZIP_IN_TREE:=1};
+
+ex_pkg_register "clzip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/cmake.package b/groups.d/231.native_packages_etc.d/cmake.package
new file mode 100644
index 00000000..bf91c3f7
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/cmake.package
@@ -0,0 +1,34 @@
+: ${PKG_CMAKE_DEPENDS:="curl libarchive libuv libz ncurses"};
+: ${PKG_CMAKE_SHA256SUM:=dc1246c4e6d168ea4d6e042cfba577c1acd65feea27e56f5ff37df920c30cae0};
+: ${PKG_CMAKE_VERSION:=3.7.2};
+: ${PKG_CMAKE_URL:=https://cmake.org/files/v${PKG_CMAKE_VERSION%.*}/cmake-${PKG_CMAKE_VERSION}.tar.gz};
+: ${PKG_CMAKE_CFLAGS_CONFIGURE_EXTRA:="-g0 -O2"};
+: ${PKG_CMAKE_CMAKE_ARGS_EXTRA:="
+ -DBZIP2_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.a
+ -DCMAKE_USE_SYSTEM_BZIP2=ON
+ -DCMAKE_USE_SYSTEM_CURL=ON
+ -DCMAKE_USE_SYSTEM_EXPAT=OFF
+ -DCMAKE_USE_SYSTEM_LIBARCHIVE=ON
+ -DCMAKE_USE_SYSTEM_LIBUV=ON
+ -DCMAKE_USE_SYSTEM_ZLIB=ON
+ -DCURL_INCLUDE_DIR=${PREFIX_NATIVE}/include/curl
+ -DCURL_LIBRARY=${PREFIX_NATIVE}/lib/libcurl.lib.a
+ -DCURSES_NCURSES_LIBRARY=${PREFIX_NATIVE}/lib/libncurses.lib.a
+ -DKWSYS_LFS_WORKS=YES
+ -DLibArchive_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLibArchive_LIBRARY=${PREFIX_NATIVE}/lib/libarchive.lib.a
+ -DLIBLZMA_HAS_AUTO_DECODER=YES
+ -DLIBLZMA_HAS_EASY_ENCODER=YES
+ -DLIBLZMA_HAS_LZMA_PRESET=YES
+ -DLIBLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLIBLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
+ -DLibUV_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLibUV_LIBRARY=${PREFIX_NATIVE}/lib/libuv.1.0.0.lib.a
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
+: ${PKG_CMAKE_CONFIGURE_TYPE:="cmake"};
+
+ex_pkg_register "cmake" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/cron.package b/groups.d/231.native_packages_etc.d/cron.package
new file mode 100644
index 00000000..f7514232
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/cron.package
@@ -0,0 +1,7 @@
+: ${PKG_CRON_URLS_GIT:="pkg-cron=https://github.com/lalbornoz/pkg-cron@master"};
+: ${PKG_CRON_ENV_VARS_EXTRA:="CC=${DEFAULT_NATIVE_CC}:CFLAGS=${NATIVE_PACKAGES_CFLAGS_CONFIGURE} -D__GNU__"};
+: ${PKG_CRON_IN_TREE:=1};
+
+ex_pkg_register "cron" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/dante.package b/groups.d/231.native_packages_etc.d/dante.package
new file mode 100644
index 00000000..65b9bdcf
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/dante.package
@@ -0,0 +1,10 @@
+: ${PKG_DANTE_DEPENDS:="libtirpc"};
+: ${PKG_DANTE_SHA256SUM:=418a065fe1a4b8ace8fbf77c2da269a98f376e7115902e76cda7e741e4846a5d};
+: ${PKG_DANTE_VERSION:=1.4.3};
+: ${PKG_DANTE_URL:=http://www.inet.no/dante/files/dante-${PKG_DANTE_VERSION}.tar.gz};
+: ${PKG_DANTE_CONFIGURE_ARGS_EXTRA:="ac_cv_func_sched_setscheduler=no --without-libwrap LIBS=-ltirpc"};
+: ${PKG_DANTE_IN_TREE:=1};
+
+ex_pkg_register "dante" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/doomgeneric.package b/groups.d/231.native_packages_etc.d/doomgeneric.package
new file mode 100644
index 00000000..92898c83
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/doomgeneric.package
@@ -0,0 +1,12 @@
+: ${PKG_DOOMGENERIC_DEPENDS:="w32api w32lib"};
+: ${PKG_DOOMGENERIC_URLS_GIT:=doomgeneric=https://github.com/Redfoxymoon/doomgeneric.git@midipix};
+: ${PKG_DOOMGENERIC_BUILD_DIR:=doomgeneric/doomgeneric};
+: ${PKG_DOOMGENERIC_MAKEFLAGS_BUILD_EXTRA:=-f Makefile.midipix};
+: ${PKG_DOOMGENERIC_CFLAGS_BUILD_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports"};
+: ${PKG_DOOMGENERIC_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
+: ${PKG_DOOMGENERIC_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_DOOMGENERIC_INSTALL_FILES_V2:="+../doomgeneric/doomgeneric/doomgeneric=bin/%[FNAME]"};
+
+ex_pkg_register "doomgeneric" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/dosbox.package b/groups.d/231.native_packages_etc.d/dosbox.package
new file mode 100644
index 00000000..b107e275
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/dosbox.package
@@ -0,0 +1,10 @@
+: ${PKG_DOSBOX_DEPENDS:="sdl1"};
+: ${PKG_DOSBOX_SHA256SUM:=c0d13dd7ed2ed363b68de615475781e891cd582e8162b5c3669137502222260a};
+: ${PKG_DOSBOX_VERSION:=0.74-3};
+: ${PKG_DOSBOX_URL:=https://fossies.org/linux/privat/dosbox-${PKG_DOSBOX_VERSION}.tar.gz};
+: ${PKG_DOSBOX_CONFIGURE_ARGS_EXTRA:="--disable-opengl --disable-alsa-midi --with-sdl-prefix=${PREFIX_NATIVE}"};
+: ${PKG_DOSBOX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
+
+ex_pkg_register "dosbox" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/emacs.package b/groups.d/231.native_packages_etc.d/emacs.package
new file mode 100644
index 00000000..1fe46664
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/emacs.package
@@ -0,0 +1,11 @@
+: ${PKG_EMACS_DEPENDS:="freetype gnutls libjpeg_turbo libz ncurses"};
+: ${PKG_EMACS_SHA256SUM:=1cf4fc240cd77c25309d15e18593789c8dbfba5c2b44d8f77c886542300fd32c};
+: ${PKG_EMACS_VERSION:=26.1};
+: ${PKG_EMACS_URL:=http://www.gutscheinrausch.de/mirror/gnu/emacs/emacs-${PKG_EMACS_VERSION}.tar.xz};
+: ${PKG_EMACS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -O1 -g2"};
+: ${PKG_EMACS_CONFIGURE_ARGS_EXTRA:="--with-modules --with-sound=no --with-x-toolkit=no --without-dbus --without-x --without-mailutils --without-pop"};
+: ${PKG_EMACS_ENV_VARS_EXTRA:="BUILDCC=gcc"};
+
+ex_pkg_register "emacs" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/enscript.package b/groups.d/231.native_packages_etc.d/enscript.package
new file mode 100644
index 00000000..c93b79f7
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/enscript.package
@@ -0,0 +1,7 @@
+: ${PKG_ENSCRIPT_SHA256SUM:=6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb};
+: ${PKG_ENSCRIPT_VERSION:=1.6.6};
+: ${PKG_ENSCRIPT_URL:=https://ftp.gnu.org/gnu/enscript/enscript-${PKG_ENSCRIPT_VERSION}.tar.gz};
+
+ex_pkg_register "enscript" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/expat.package b/groups.d/231.native_packages_etc.d/expat.package
new file mode 100644
index 00000000..f81c7105
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/expat.package
@@ -0,0 +1,8 @@
+: ${PKG_EXPAT_SHA256SUM:=0c00d2760ad12efef6e26efc8b363c8eb28eb8c8de719e46d5bb67b40ba904a3};
+: ${PKG_EXPAT_VERSION:=2.6.1};
+: ${PKG_EXPAT_URL:=http://download.openpkg.org/components/cache/expat/expat-${PKG_EXPAT_VERSION}.tar.xz};
+: ${PKG_EXPAT_CONFIGURE_ARGS_EXTRA:="--with-getrandom --with-sys-getrandom --without-docbook --without-tests"};
+
+ex_pkg_register "expat" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ffmpeg.package b/groups.d/231.native_packages_etc.d/ffmpeg.package
new file mode 100644
index 00000000..8c9aca37
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ffmpeg.package
@@ -0,0 +1,10 @@
+: ${PKG_FFMPEG_DEPENDS:="lame libass libshine libssh libtheora libxml2 gnutls twolame"};
+: ${PKG_FFMPEG_SHA256SUM:=8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968};
+: ${PKG_FFMPEG_VERSION:=6.1.1};
+: ${PKG_FFMPEG_URL:=https://ffmpeg.org/releases/ffmpeg-${PKG_FFMPEG_VERSION}.tar.xz};
+: ${PKG_FFMPEG_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/SDL2 -I${PREFIX_NATIVE}/include/libxml2 -std=gnu99"};
+: ${PKG_FFMPEG_CONFIGURE_ARGS_LIST:="--cc=${DEFAULT_NATIVE_CC}:--cxx=${DEFAULT_NATIVE_CXX}:--disable-stripping:--enable-cross-compile:--enable-libass:--enable-libshine:--enable-libtheora:--enable-libvorbis:--enable-libxml2:--enable-gpl:--enable-version3:--enable-gnutls:--enable-libmp3lame:--enable-libssh:--enable-libtwolame:--pkg-config=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config:--prefix=/:--target-os=midipix:--x86asmexe=${DEFAULT_TARGET}-nasm:--disable-cuda-llvm"};
+
+ex_pkg_register "ffmpeg" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/file.package b/groups.d/231.native_packages_etc.d/file.package
new file mode 100644
index 00000000..db03741e
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/file.package
@@ -0,0 +1,9 @@
+: ${PKG_FILE_DEPENDS:="xz bzip2 libz zstd"};
+: ${PKG_FILE_SHA256SUM:=fc97f51029bb0e2c9f4e3bffefdaf678f0e039ee872b9de5c002a6d09c784d82};
+: ${PKG_FILE_VERSION:=5.45};
+: ${PKG_FILE_URL:=http://ftp.astron.com/pub/file/file-${PKG_FILE_VERSION}.tar.gz};
+: ${PKG_FILE_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
+
+ex_pkg_register "file" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/gdbm.package b/groups.d/231.native_packages_etc.d/gdbm.package
new file mode 100644
index 00000000..f5fa2507
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/gdbm.package
@@ -0,0 +1,9 @@
+: ${PKG_GDBM_DEPENDS:="ncurses"};
+: ${PKG_GDBM_SHA256SUM:=74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd};
+: ${PKG_GDBM_VERSION:=1.23};
+: ${PKG_GDBM_URL:=https://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_VERSION}.tar.gz};
+: ${PKG_GDBM_CONFIGURE_ARGS_EXTRA:=--enable-libgdbm-compat};
+
+ex_pkg_register "gdbm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/geoip.package b/groups.d/231.native_packages_etc.d/geoip.package
new file mode 100644
index 00000000..5a4b5cd9
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/geoip.package
@@ -0,0 +1,7 @@
+: ${PKG_GEOIP_SHA256SUM:=0daf0dbe35249f0affb5e10010e0b6b8104d19e156ab8e3b2318df8165463f21};
+: ${PKG_GEOIP_VERSION:=1.7.0};
+: ${PKG_GEOIP_URL:=https://midipix.org/mirror/geoip/geoip-api-c-${PKG_GEOIP_VERSION}.tar.gz};
+
+ex_pkg_register "geoip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/gettext_tiny.package b/groups.d/231.native_packages_etc.d/gettext_tiny.package
new file mode 100644
index 00000000..55f71d6f
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/gettext_tiny.package
@@ -0,0 +1,11 @@
+: ${PKG_GETTEXT_TINY_DEPENDS:="libiconv"};
+: ${PKG_GETTEXT_TINY_SHA256SUM:=29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383};
+: ${PKG_GETTEXT_TINY_VERSION:=0.3.2};
+: ${PKG_GETTEXT_TINY_URL:=https://toolchains.bootlin.com/downloads/releases/sources/gettext-tiny-${PKG_GETTEXT_TINY_VERSION}/gettext-tiny-${PKG_GETTEXT_TINY_VERSION}.tar.gz};
+: ${PKG_GETTEXT_TINY_BUILD_DIR:=gettext-tiny-${PKG_GETTEXT_TINY_VERSION}};
+: ${PKG_GETTEXT_TINY_CFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
+: ${PKG_GETTEXT_TINY_LDFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE:+${NATIVE_PACKAGES_CFLAGS_CONFIGURE} }-liconv"};
+
+ex_pkg_register "gettext_tiny" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ghostpdl.package b/groups.d/231.native_packages_etc.d/ghostpdl.package
new file mode 100644
index 00000000..c0b94966
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ghostpdl.package
@@ -0,0 +1,12 @@
+: ${PKG_GHOSTPDL_DEPENDS:="libpng tiff fontconfig libz libXt libX11 freetype expat openjpeg"};
+: ${PKG_GHOSTPDL_SHA256SUM:=9059bf9c0685e88206d34b702f5a15f148451959f73ab2d01d44a5b12088a762};
+: ${PKG_GHOSTPDL_VERSION:=9.52};
+: ${PKG_GHOSTPDL_URL:=https://mirror.midipix.org/ghostpdl/ghostpdl-${PKG_GHOSTPDL_VERSION}.tar.xz};
+: ${PKG_GHOSTPDL_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+: ${PKG_GHOSTPDL_CONFIGURE_ARGS_EXTRA:="--with-system-libtiff --with-memory-alignment=8 --without-x --without-local-zlib"};
+: ${PKG_GHOSTPDL_ENV_VARS_EXTRA:="CCAUX=cc:CFLAGSAUX=${DEFAULT_CFLAGS} -L${PREFIX}/lib:LDFLAGSAUX=-L${PREFIX}/lib:SHARE_ZLIB=-lz:ZLIBDIR=${PREFIX}/include"};
+: ${PKG_GHOSTPDL_MAKEFLAGS_BUILD_EXTRA:="TARGET_ARCH_FILE=${BUILD_WORKDIR}/ghostpdl-native-${DEFAULT_TARGET}/ghostpdl-${PKG_GHOSTPDL_VERSION}/arch/${DEFAULT_TARGET}.h"};
+
+ex_pkg_register "ghostpdl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/giflib.package b/groups.d/231.native_packages_etc.d/giflib.package
new file mode 100644
index 00000000..2d5f0df2
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/giflib.package
@@ -0,0 +1,9 @@
+: ${PKG_GIFLIB_SHA256SUM:=be7ffbd057cadebe2aa144542fd90c6838c6a083b5e8a9048b8ee3b66b29d5fb};
+: ${PKG_GIFLIB_VERSION:=5.2.2};
+: ${PKG_GIFLIB_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/giflib/giflib-${PKG_GIFLIB_VERSION}.tar.gz};
+: ${PKG_GIFLIB_CFLAGS_BUILD_EXTRA:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE} -std=gnu99 -DHAVE_REALLOCARRAY"};
+: ${PKG_GIFLIB_BUILD_DIR:=giflib-${PKG_GIFLIB_VERSION}};
+
+ex_pkg_register "giflib" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/gnuchess.package b/groups.d/231.native_packages_etc.d/gnuchess.package
new file mode 100644
index 00000000..d76d66db
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/gnuchess.package
@@ -0,0 +1,8 @@
+: ${PKG_GNUCHESS_DEPENS:="ncurses"};
+: ${PKG_GNUCHESS_SHA256SUM:=ddfcc20bdd756900a9ab6c42c7daf90a2893bf7f19ce347420ce36baebc41890};
+: ${PKG_GNUCHESS_VERSION:=6.2.9};
+: ${PKG_GNUCHESS_URL:=https://ftp.gnu.org/gnu/chess/gnuchess-${PKG_GNUCHESS_VERSION}.tar.gz};
+
+ex_pkg_register "gnuchess" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/graphicsmagick.package b/groups.d/231.native_packages_etc.d/graphicsmagick.package
new file mode 100644
index 00000000..81587e65
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/graphicsmagick.package
@@ -0,0 +1,14 @@
+: ${PKG_GRAPHICSMAGICK_DEPENDS:="libz libpng freetype lcms libxml2 tiff libjpeg_turbo bzip2 zstd"};
+: ${PKG_GRAPHICSMAGICK_SHA256SUM:=484fccfd2b2faf6c2ba9151469ece5072bcb91ba4ed73e75ed3d8e46c759d557};
+: ${PKG_GRAPHICSMAGICK_VERSION:=1.3.42};
+: ${PKG_GRAPHICSMAGICK_URL:=https://mirror.midipix.org/graphicsmagick/GraphicsMagick-${PKG_GRAPHICSMAGICK_VERSION}.tar.xz};
+: ${PKG_GRAPHICSMAGICK_CONFIGURE_ARGS_EXTRA:="--enable-shared --with-modules --without-x --without-gs --without-trio --without-wmf --without-gdi32 --without-dps --without-fpx --without-jbig --without-jp2 --without-jxl"};
+: ${PKG_GRAPHICSMAGICK_CFLAGS_CONFIGURE_EXTRA:="-fopenmp -I${PREFIX_NATIVE}/include/freetype2"};
+: ${PKG_GRAPHICSMAGICK_LDFLAGS_CONFIGURE_EXTRA:=-fopenmp};
+: ${PKG_GRAPHICSMAGICK_LIBTOOL=clibtool};
+: ${PKG_GRAPHICSMAGICK_IN_TREE:=1};
+: ${PKG_GRAPHICSMAGICK_NO_PURGE_LA_FILES=1};
+
+ex_pkg_register "graphicsmagick" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/gzip.package b/groups.d/231.native_packages_etc.d/gzip.package
new file mode 100644
index 00000000..1de50dbd
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/gzip.package
@@ -0,0 +1,7 @@
+: ${PKG_GZIP_SHA256SUM:=7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057};
+: ${PKG_GZIP_VERSION:=1.13};
+: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.xz};
+
+ex_pkg_register "gzip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/hastyhex.package b/groups.d/231.native_packages_etc.d/hastyhex.package
new file mode 100644
index 00000000..f9d589b9
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/hastyhex.package
@@ -0,0 +1,9 @@
+: ${PKG_HASTYHEX_URLS_GIT:="hastyhex=https://github.com/skeeto/hastyhex.git@master"};
+: ${PKG_HASTYHEX_IN_TREE:=1};
+: ${PKG_HASTYHEX_CFLAGS_BUILD_EXTRA:="-g3 -O0 -ansi -pedantic -funroll-loops"};
+: ${PKG_HASTYHEX_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_HASTYHEX_INSTALL_FILES_V2:="+../hastyhex/hastyhex=bin/%[FNAME]"};
+
+ex_pkg_register "hastyhex" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/hexcurse.package b/groups.d/231.native_packages_etc.d/hexcurse.package
new file mode 100644
index 00000000..6772f4d2
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/hexcurse.package
@@ -0,0 +1,8 @@
+: ${PKG_HEXCURSE_DEPENDS:="ncurses"};
+: ${PKG_HEXCURSE_URLS_GIT:="hexcurse=https://github.com/LonnyGomes/hexcurse@master"};
+: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncurses};
+: ${PKG_HEXCURSE_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
+
+ex_pkg_register "hexcurse" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/hexer.package b/groups.d/231.native_packages_etc.d/hexer.package
new file mode 100644
index 00000000..5206c0de
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/hexer.package
@@ -0,0 +1,12 @@
+: ${PKG_HEXER_DEPENDS:="ncurses"};
+: ${PKG_HEXER_SHA256SUM:=e6b84ace5283825943f88ce7ec4ae836ec15ba41978b3a858d6d478cfe09ff94};
+: ${PKG_HEXER_VERSION:=1.0.6};
+: ${PKG_HEXER_URL:=https://devel.ringlet.net/files/editors/hexer/hexer-${PKG_HEXER_VERSION}.tar.xz};
+: ${PKG_HEXER_CFLAGS_BUILD_EXTRA:="-isystem${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
+: ${PKG_HEXER_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib"};
+: ${PKG_HEXER_ENV_VARS_EXTRA:="CC_FOR_BUILD=gcc"};
+: ${PKG_HEXER_IN_TREE:=1};
+
+ex_pkg_register "hexer" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/htop.package b/groups.d/231.native_packages_etc.d/htop.package
new file mode 100644
index 00000000..41f43a23
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/htop.package
@@ -0,0 +1,9 @@
+: ${PKG_HTOP_DEPENDS:="ncursesw"};
+: ${PKG_HTOP_SHA256SUM:=a69acf9b42ff592c4861010fce7d8006805f0d6ef0e8ee647a6ee6e59b743d5c};
+: ${PKG_HTOP_VERSION:=3.3.0};
+: ${PKG_HTOP_URL:=https://github.com/htop-dev/htop/releases/download/${PKG_HTOP_VERSION}/htop-${PKG_HTOP_VERSION}.tar.xz};
+: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:="--enable-unicode"};
+
+ex_pkg_register "htop" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/icoutils.package b/groups.d/231.native_packages_etc.d/icoutils.package
new file mode 100644
index 00000000..3b0cb23b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/icoutils.package
@@ -0,0 +1,11 @@
+: ${PKG_ICOUTILS_DEPENDS:="libpng"};
+: ${PKG_ICOUTILS_SHA256SUM:=17abe02d043a253b68b47e3af69c9fc755b895db68fdc8811786125df564c6e0};
+: ${PKG_ICOUTILS_VERSION:=0.32.3};
+: ${PKG_ICOUTILS_URL:=http://savannah.nongnu.org/download/icoutils/icoutils-${PKG_ICOUTILS_VERSION}.tar.bz2};
+: ${PKG_ICOUTILS_CONFIG_CACHE_EXTRA:="
+am_cv_func_working_getline=yes
+gl_cv_func_getopt_gnu=yes"};
+
+ex_pkg_register "icoutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/imagemagick.package b/groups.d/231.native_packages_etc.d/imagemagick.package
new file mode 100644
index 00000000..2d426ced
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/imagemagick.package
@@ -0,0 +1,12 @@
+: ${PKG_IMAGEMAGICK_DEPENDS:="bzip2 curl freetype fontconfig libpng libz libzip libxml2 tiff xz zstd"};
+: ${PKG_IMAGEMAGICK_SHA256SUM:=1e44faec8bf603e8c894a7c039fb1b4bb83dc0c429c79c74577e73ceefe4a238};
+: ${PKG_IMAGEMAGICK_VERSION:=7.1.1-21};
+: ${PKG_IMAGEMAGICK_URL:=https://imagemagick.org/download/releases/ImageMagick-${PKG_IMAGEMAGICK_VERSION}.tar.xz};
+: ${PKG_IMAGEMAGICK_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
+: ${PKG_IMAGEMAGICK_CONFIGURE_ARGS_EXTRA:="--with-modules --without-x --without-pango --without-jemalloc --without-tcmalloc --without-umem"};
+: ${PKG_IMAGEMAGICK_LIBTOOL="clibtool"};
+: ${PKG_IMAGEMAGICK_NO_PURGE_LA_FILES=1};
+
+ex_pkg_register "imagemagick" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/infounzip.package b/groups.d/231.native_packages_etc.d/infounzip.package
new file mode 100644
index 00000000..dc76bc1e
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/infounzip.package
@@ -0,0 +1,7 @@
+: ${PKG_INFOUNZIP_URLS_GIT:=infounzip=https://github.com/Redfoxmoon3/infounzip.git@master};
+: ${PKG_INFOUNZIP_IN_TREE:=1};
+: ${PKG_INFOUNZIP_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+
+ex_pkg_register "infounzip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/infozip.package b/groups.d/231.native_packages_etc.d/infozip.package
new file mode 100644
index 00000000..10d9b12d
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/infozip.package
@@ -0,0 +1,7 @@
+: ${PKG_INFOZIP_URLS_GIT:=infozip=https://github.com/Redfoxmoon3/infozip.git@master};
+: ${PKG_INFOZIP_IN_TREE:=1};
+: ${PKG_INFOZIP_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+
+ex_pkg_register "infozip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/john.package b/groups.d/231.native_packages_etc.d/john.package
new file mode 100644
index 00000000..179edf1b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/john.package
@@ -0,0 +1,25 @@
+: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266};
+: ${PKG_JOHN_VERSION:=1.8.0};
+: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz};
+: ${PKG_JOHN_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_JOHN_DISABLED_NT32:=1};
+: ${PKG_JOHN_IN_TREE:=1};
+: ${PKG_JOHN_INSTALL_FILES_V2:="
+ /=share/john
+ +../john-${PKG_JOHN_VERSION}/run/john=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/mailer=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/makechr=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/relbench=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/unafs=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/unique=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/unshadow=bin/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/ascii.chr=share/john/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/digits.chr=share/john/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/john.conf=share/john/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/lm_ascii.chr=share/john/%[FNAME]
+ +../john-${PKG_JOHN_VERSION}/run/password.lst=share/john/%[FNAME]"};
+: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA:="-C src midipix-x86-64"};
+
+ex_pkg_register "john" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/lbreakout2.package b/groups.d/231.native_packages_etc.d/lbreakout2.package
new file mode 100644
index 00000000..19f039df
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/lbreakout2.package
@@ -0,0 +1,12 @@
+: ${PKG_LBREAKOUT2_DEPENDS:="sdl1 libz libpng"};
+: ${PKG_LBREAKOUT2_SHA256SUM:=9104d6175553da3442dc6a5fc407a669e2f5aff3eedc5d30409eb003b7a78d6f};
+: ${PKG_LBREAKOUT2_VERSION:=2.6.5};
+: ${PKG_LBREAKOUT2_URL:=http://sources.buildroot.net/lbreakout2/lbreakout2-${PKG_LBREAKOUT2_VERSION}.tar.gz};
+: ${PKG_LBREAKOUT2_CONFIGURE_ARGS_EXTRA:=--with-sdl-prefix=${PREFIX_NATIVE}};
+: ${PKG_LBREAKOUT2_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib/w32lib};
+: ${PKG_LBREAKOUT2_ENV_VARS_EXTRA:="SDL_CONFIG=${PREFIX_NATIVE}/bin/sdl-config --prefix=${PREFIX_NATIVE}"};
+: ${PKG_LBREAKOUT2_IN_TREE:=1};
+
+ex_pkg_register "lbreakout2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/lcms.package b/groups.d/231.native_packages_etc.d/lcms.package
new file mode 100644
index 00000000..f14575ea
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/lcms.package
@@ -0,0 +1,8 @@
+: ${PKG_LCMS_DEPENDS:="libz libjpeg_turbo tiff"};
+: ${PKG_LCMS_SHA256SUM:=d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51};
+: ${PKG_LCMS_VERSION:=2.16};
+: ${PKG_LCMS_URL:=https://github.com/mm2/Little-CMS/releases/download/lcms${PKG_LCMS_VERSION}/lcms2-${PKG_LCMS_VERSION}.tar.gz};
+
+ex_pkg_register "lcms" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/less.package b/groups.d/231.native_packages_etc.d/less.package
new file mode 100644
index 00000000..5d637ae9
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/less.package
@@ -0,0 +1,8 @@
+: ${PKG_LESS_DEPENDS:="ncurses ncursesw"};
+: ${PKG_LESS_SHA256SUM:=2911b5432c836fa084c8a2e68f6cd6312372c026a58faaa98862731c8b6052e8};
+: ${PKG_LESS_VERSION:=643};
+: ${PKG_LESS_URL:=http://www.greenwoodsoftware.com/less/less-${PKG_LESS_VERSION}.tar.gz};
+
+ex_pkg_register "less" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/libmetalink.package b/groups.d/231.native_packages_etc.d/libmetalink.package
new file mode 100644
index 00000000..ee45f831
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/libmetalink.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBMETALINK_DEPENDS:="expat"};
+: ${PKG_LIBMETALINK_SHA256SUM:=0753ae1152d970dc3bf327d0ce5cfefeca2f1ab13294b115e64811163a68fd4f};
+: ${PKG_LIBMETALINK_VERSION:=0.1.3};
+: ${PKG_LIBMETALINK_URL:=https://launchpad.net/libmetalink/trunk/libmetalink-${PKG_LIBMETALINK_VERSION}/+download/libmetalink-${PKG_LIBMETALINK_VERSION}.tar.bz2};
+
+ex_pkg_register "libmetalink" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/lolcode.package b/groups.d/231.native_packages_etc.d/lolcode.package
new file mode 100644
index 00000000..57fec250
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/lolcode.package
@@ -0,0 +1,6 @@
+: ${PKG_LOLCODE_URLS_GIT:="lci=https://github.com/justinmeza/lci.git@main"};
+: ${PKG_LOLCODE_BUILD_DIR:=lci};
+
+ex_pkg_register "lolcode" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ltris.package b/groups.d/231.native_packages_etc.d/ltris.package
new file mode 100644
index 00000000..3bfc9be2
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ltris.package
@@ -0,0 +1,13 @@
+: ${PKG_LTRIS_DEPENDS:="sdl1"};
+: ${PKG_LTRIS_SHA256SUM:=0ec4ad053e066a296529e923c2f626fa0a19c094c5ae03e44359f9c9e50955a8};
+: ${PKG_LTRIS_VERSION:=1.2.3};
+: ${PKG_LTRIS_URL:=https://sources.voidlinux-ppc.org/ltris-${PKG_LTRIS_VERSION}/ltris-${PKG_LTRIS_VERSION}.tar.gz};
+: ${PKG_LTRIS_CONFIGURE_ARGS_EXTRA:="--with-sdl-prefix=${PREFIX_NATIVE} SDL_LIBS=-L${PREFIX_NATIVE}/lib SDL_CFLAGS=-I${PREFIX_NATIVE}/include"};
+: ${PKG_LTRIS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/SDL -std=gnu99"};
+: ${PKG_LTRIS_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib -L${PREFIX_NATIVE}/lib/w32lib"};
+: ${PKG_LTRIS_ENV_VARS_EXTRA:="LIBS=-lSDL"};
+: ${PKG_LTRIS_IN_TREE:=1};
+
+ex_pkg_register "ltris" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/minizip.package b/groups.d/231.native_packages_etc.d/minizip.package
new file mode 100644
index 00000000..ba9565c8
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/minizip.package
@@ -0,0 +1,20 @@
+: ${PKG_MINIZIP_DEPENDS:="bzip2 libressl libz xz"};
+: ${PKG_MINIZIP_SHA256SUM:=f4c8e7afdd45a093f69d7d338652996766d5473e63ad97a2c5cf89c0787773a0};
+: ${PKG_MINIZIP_VERSION:=2.10.4};
+: ${PKG_MINIZIP_URL:=https://github.com/nmoinvaz/minizip/archive/${PKG_MINIZIP_VERSION}.tar.gz};
+: ${PKG_MINIZIP_CMAKE_ARGS_EXTRA:="
+ -DBUILD_SHARED_LIBS=ON
+ -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
+ -DPKG_CONFIG_EXECUTABLE=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config
+ -DMZ_BUILD_TEST=ON
+ -DMZ_LIBBSD=OFF
+ -DMZ_LZMA=ON
+ -DMZ_OPENSSL=ON
+ -DMZ_ZSTD=OFF
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libz.lib.a"};
+: ${PKG_MINIZIP_SUBDIR:=minizip-ng-${PKG_MINIZIP_VERSION}};
+
+ex_pkg_register "minizip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/mintty.package b/groups.d/231.native_packages_etc.d/mintty.package
new file mode 100644
index 00000000..a98124b2
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/mintty.package
@@ -0,0 +1,9 @@
+: ${PKG_MINTTY_DEPENDS:="w32api w32lib"};
+: ${PKG_MINTTY_URLS_GIT:="mintty=https://github.com/midipix-ports/mintty.git@midipix bmintty=https://github.com/midipix-ports/bmintty.git@main"};
+: ${PKG_MINTTY_CONFIGURE:=bmintty/configure};
+: ${PKG_MINTTY_CONFIGURE_ARGS:="--debug --strict --target=${DEFAULT_TARGET} --source-dir=../mintty --prefix="};
+: ${PKG_MINTTY_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib/w32lib};
+
+ex_pkg_register "mintty" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/mlogin.package b/groups.d/231.native_packages_etc.d/mlogin.package
new file mode 100644
index 00000000..85799dd7
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/mlogin.package
@@ -0,0 +1,7 @@
+: ${PKG_MLOGIN_URLS_GIT:="mlogin=https://dev.midipix.org/env/mlogin.git@main"};
+: ${PKG_MLOGIN_BUILD_DIR:=mlogin};
+: ${PKG_MLOGIN_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "mlogin" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/musl_compat.package b/groups.d/231.native_packages_etc.d/musl_compat.package
new file mode 100644
index 00000000..ea3178ec
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/musl_compat.package
@@ -0,0 +1,7 @@
+: ${PKG_MUSL_COMPAT_URLS_GIT:=musl_compat=https://dev.midipix.org/compat/musl-compat.git@main};
+: ${PKG_MUSL_COMPAT_BUILD_DIR:=musl_compat};
+: ${PKG_MUSL_COMPAT_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+
+ex_pkg_register "musl_compat" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/musl_fts.package b/groups.d/231.native_packages_etc.d/musl_fts.package
new file mode 100644
index 00000000..5a43328e
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/musl_fts.package
@@ -0,0 +1,7 @@
+: ${PKG_MUSL_FTS_SHA256SUM:=32dfe02768f1d3d91ab04df4fbdb7922cd34cd529ce7081a78c3ca8b8652d1ee};
+: ${PKG_MUSL_FTS_VERSION:=1.2.7};
+: ${PKG_MUSL_FTS_URL:=https://midipix.org/mirror/musl-fts/musl-fts-${PKG_MUSL_FTS_VERSION}.tar.xz};
+
+ex_pkg_register "musl_fts" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ncdu.package b/groups.d/231.native_packages_etc.d/ncdu.package
new file mode 100644
index 00000000..9c57800d
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ncdu.package
@@ -0,0 +1,8 @@
+: ${PKG_NCDU_DEPENDS:="ncursesw"};
+: ${PKG_NCDU_SHA256SUM:=3c37a1a96580c9c5d2cc352dc3c5eef0d909158c05f1cc29db4712544c8b9f95};
+: ${PKG_NCDU_VERSION:=1.18};
+: ${PKG_NCDU_URL:=https://dev.yorhel.nl/download/ncdu-${PKG_NCDU_VERSION}.tar.gz};
+
+ex_pkg_register "ncdu" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ncurses.package b/groups.d/231.native_packages_etc.d/ncurses.package
new file mode 100644
index 00000000..650f1550
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ncurses.package
@@ -0,0 +1,11 @@
+: ${PKG_NCURSES_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSES_VERSION:=6.3};
+: ${PKG_NCURSES_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_VERSION}.tar.gz};
+: ${PKG_NCURSES_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
+: ${PKG_NCURSES_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET} --with-curses"};
+: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --without-pthread"};
+: ${PKG_NCURSES_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+
+ex_pkg_register "ncurses" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ncursestw.package b/groups.d/231.native_packages_etc.d/ncursestw.package
new file mode 100644
index 00000000..9e8e4001
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ncursestw.package
@@ -0,0 +1,8 @@
+: ${PKG_NCURSESTW_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSESTW_VERSION:=6.3};
+: ${PKG_NCURSESTW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_VERSION}.tar.gz};
+: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --with-pthread"};
+
+ex_pkg_register "ncursestw" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/ncursesw.package b/groups.d/231.native_packages_etc.d/ncursesw.package
new file mode 100644
index 00000000..d531e156
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/ncursesw.package
@@ -0,0 +1,9 @@
+: ${PKG_NCURSESW_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
+: ${PKG_NCURSESW_VERSION:=6.3};
+: ${PKG_NCURSESW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_VERSION}.tar.gz};
+: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-manpages --with-progs --with-shared --with-termlib --without-ada --without-tests --enable-widec --without-pthread"};
+: ${PKG_NCURSESW_INSTALL_FILES_V2:="@ncursesw/ncurses.h=include/ncurses.h"};
+
+ex_pkg_register "ncursesw" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/npth.package b/groups.d/231.native_packages_etc.d/npth.package
new file mode 100644
index 00000000..dc440b59
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/npth.package
@@ -0,0 +1,7 @@
+: ${PKG_NPTH_SHA256SUM:=1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1};
+: ${PKG_NPTH_VERSION:=1.6};
+: ${PKG_NPTH_URL:=https://www.gnupg.org/ftp/gcrypt/npth/npth-${PKG_NPTH_VERSION}.tar.bz2};
+
+ex_pkg_register "npth" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/openjazz.package b/groups.d/231.native_packages_etc.d/openjazz.package
new file mode 100644
index 00000000..aa84cd1f
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/openjazz.package
@@ -0,0 +1,9 @@
+: ${PKG_OPENJAZZ_DEPENDS:="sdl1"};
+: ${PKG_OPENJAZZ_URLS_GIT:=openjazz=https://github.com/AlisterT/openjazz.git@master};
+: ${PKG_OPENJAZZ_CONFIG_CACHE_EXTRA:="ac_cv_prog_POD2MAN="};
+: ${PKG_OPENJAZZ_FORCE_AUTORECONF:=1};
+: ${PKG_OPENJAZZ_DISABLED:=1};
+
+ex_pkg_register "openjazz" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/openjpeg.package b/groups.d/231.native_packages_etc.d/openjpeg.package
new file mode 100644
index 00000000..5096f19c
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/openjpeg.package
@@ -0,0 +1,21 @@
+: ${PKG_OPENJPEG_DEPENDS:="lcms libpng libz tiff"};
+: ${PKG_OPENJPEG_SHA256SUM:=90e3896fed910c376aaf79cdd98bdfdaf98c6472efd8e1debf0a854938cbda6a};
+: ${PKG_OPENJPEG_VERSION:=2.5.2};
+: ${PKG_OPENJPEG_URL:=https://github.com/uclouvain/openjpeg/archive/v${PKG_OPENJPEG_VERSION}.tar.gz};
+: ${PKG_OPENJPEG_CMAKE_ARGS_EXTRA:="
+ -DLCMS2_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLCMS2_LIBRARY=${PREFIX_NATIVE}/lib/liblcms2.lib.a
+ -DPNG_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libpng.lib.a
+ -DPNG_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libpng.lib.a
+ -DPNG_PNG_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DTIFF_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DTIFF_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libtiff.lib.a
+ -DTIFF_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libtiff.lib.a
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libz.a
+ -DZLIB_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libz.a"};
+: ${PKG_OPENJPEG_SUBDIR:=openjpeg-${PKG_OPENJPEG_VERSION}};
+
+ex_pkg_register "openjpeg" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/p7zip.package b/groups.d/231.native_packages_etc.d/p7zip.package
new file mode 100644
index 00000000..9522c92d
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/p7zip.package
@@ -0,0 +1,8 @@
+: ${PKG_P7ZIP_URLS_GIT:="p7zip-midipix.git=https://github.com/lalbornoz/p7zip-midipix.git@master"};
+: ${PKG_P7ZIP_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_P7ZIP_IN_TREE:=1};
+: ${PKG_P7ZIP_INSTALL_FILES_V2:="+../p7zip-midipix.git/bin/7za=bin/%[FNAME]"};
+
+ex_pkg_register "p7zip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/pcre.package b/groups.d/231.native_packages_etc.d/pcre.package
new file mode 100644
index 00000000..1fe6827b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/pcre.package
@@ -0,0 +1,9 @@
+: ${PKG_PCRE_DEPENDS:="bzip2 libz"};
+: ${PKG_PCRE_SHA256SUM:=0b8e7465dc5e98c757cc3650a20a7843ee4c3edf50aaf60bb33fd879690d2c73};
+: ${PKG_PCRE_VERSION:=8.45};
+: ${PKG_PCRE_URL:="https://osdn.net/frs/g_redir.php?m=gigenet&f=pcre%2Fpcre%2F8.43%2Fpcre-${PKG_PCRE_HOST_VERSION}.tar.gz"};
+: ${PKG_PCRE_FNAME:="pcre-${PKG_PCRE_HOST_VERSION}.tar.gz"};
+
+ex_pkg_register "pcre" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/pcre2.package b/groups.d/231.native_packages_etc.d/pcre2.package
new file mode 100644
index 00000000..5cd1ec62
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/pcre2.package
@@ -0,0 +1,9 @@
+: ${PKG_PCRE2_DEPENDS:="bzip2 libz"};
+: ${PKG_PCRE2_SHA256SUM:=8d36cd8cb6ea2a4c2bb358ff6411b0c788633a2a45dabbf1aeb4b701d1b5e840};
+: ${PKG_PCRE2_VERSION:=10.42};
+: ${PKG_PCRE2_URL:=https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PKG_PCRE2_VERSION}/pcre2-${PKG_PCRE2_VERSION}.tar.bz2};
+: ${PKG_PCRE2_CONFIGURE_ARGS_EXTRA:="--enable-pcre2grep-libz --enable-pcre2grep-libbz2 --enable-pcre2-16 --enable-pcre2-32 --disable-jit --enable-unicode"};
+
+ex_pkg_register "pcre2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/php.package b/groups.d/231.native_packages_etc.d/php.package
new file mode 100644
index 00000000..46f7bf3b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/php.package
@@ -0,0 +1,17 @@
+: ${PKG_PHP_DEPENDS:="bzip2 curl libz libzip libxml2 libxslt sqlite3 pcre2 readline libressl onig libiconv"};
+: ${PKG_PHP_SHA256SUM:=39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63};
+: ${PKG_PHP_VERSION:=8.3.4};
+: ${PKG_PHP_URL:=https://www.php.net/distributions/php-${PKG_PHP_VERSION}.tar.xz};
+: ${PKG_PHP_CONFIG_CACHE_EXTRA:="
+ac_cv_c_bigendian_php=no
+ac_cv_write_stdout=yes
+have_shm_mmap_posix=yes"};
+: ${PKG_PHP_CONFIGURE_ARGS_EXTRA:="--with-layout=GNU --with-external-pcre --with-gmp=shared --disable-gd --disable-phar --enable-pdo=shared --enable-pdo-sqlite=shared --enable-dom=shared --enable-embed=shared --enable-all=shared --without-enchant --without-imap --disable-intl --without-ldap --without-oci8 --without-adabas --enable-pcntl=shared --without-pdo-dblib --without-pdo-firebird --without-pdo-mysql --without-pdo-oci --without-pdo-odbc --without-pdo-pgsql --without-pdo-sqlite --without-pgsql --without-pspell --without-libedit --without-sapdb --without-snmp --without-sodium --without-password-argon2 --without-tidy --without-ffi --without-mysqli --without-unixODBC --without-dbmaker --without-solid --without-ibm-db2 --without-empress --without-empress-bcs --without-iodbc --without-esoob --without-custom-odbc --without-pear --without-pcre-jit --with-bz2=shared,${PREFIX_NATIVE} --with-gettext=shared --disable-opcache-jit --disable-dl-test --disable-sockets --enable-ctype=shared --enable-calendar=shared --enable-mbstring=shared"};
+: ${PKG_PHP_ENV_VARS_EXTRA:="HOST_CC=gcc:READLINE_DIR=${PREFIX_NATIVE}/include/readline"};
+: ${PKG_PHP_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_PHP_LIBTOOL:=rdlibtool};
+: ${PKG_PHP_INSTALL_FILES_V2:="+../obj/libs/libphp.so=lib/%[FNAME]"};
+
+ex_pkg_register "php" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/popt.package b/groups.d/231.native_packages_etc.d/popt.package
new file mode 100644
index 00000000..01edad4e
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/popt.package
@@ -0,0 +1,8 @@
+: ${PKG_POPT_DEPENDS:="libiconv"};
+: ${PKG_POPT_SHA256SUM:=5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1};
+: ${PKG_POPT_VERSION:=1.18};
+: ${PKG_POPT_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/popt/popt-${PKG_POPT_VERSION}.tar.gz};
+
+ex_pkg_register "popt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/potrace.package b/groups.d/231.native_packages_etc.d/potrace.package
new file mode 100644
index 00000000..914e1415
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/potrace.package
@@ -0,0 +1,8 @@
+: ${PKG_POTRACE_DEPENDS:="libz"};
+: ${PKG_POTRACE_SHA256SUM:=be8248a17dedd6ccbaab2fcc45835bb0502d062e40fbded3bc56028ce5eb7acc};
+: ${PKG_POTRACE_VERSION:=1.16};
+: ${PKG_POTRACE_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/potrace/potrace-${PKG_POTRACE_VERSION}.tar.gz};
+
+ex_pkg_register "potrace" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/procps_ng.package b/groups.d/231.native_packages_etc.d/procps_ng.package
new file mode 100644
index 00000000..ab4c6201
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/procps_ng.package
@@ -0,0 +1,15 @@
+: ${PKG_PROCPS_NG_DEPENDS:="ncurses ncursesw"};
+: ${PKG_PROCPS_NG_SHA256SUM:=4518b3e7aafd34ec07d0063d250fd474999b20b200218c3ae56f5d2113f141b4};
+: ${PKG_PROCPS_NG_VERSION:=3.3.17};
+: ${PKG_PROCPS_NG_URL:=http://mirror.internode.on.net/pub/slackware/slackware64/source/a/procps-ng/procps-ng-${PKG_PROCPS_NG_VERSION}.tar.xz};
+: ${PKG_PROCPS_NG_CONFIGURE_ARGS_EXTRA:="--disable-kill"};
+: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw};
+: ${PKG_PROCPS_NG_SUBDIR:=procps-${PKG_PROCPS_NG_VERSION}};
+: ${PKG_PROCPS_NG_IN_TREE:=1};
+: ${PKG_PROCPS_NG_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
+: ${PKG_PROCPS_NG_FNAME:=procps_ng-${PKG_PROCPS_NG_VERSION}.tar.xz};
+: ${PKG_PROCPS_NG_SUBDIR:=procps-ng-${PKG_PROCPS_NG_VERSION}};
+
+ex_pkg_register "procps_ng" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/qemu.package b/groups.d/231.native_packages_etc.d/qemu.package
new file mode 100644
index 00000000..31f907cb
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/qemu.package
@@ -0,0 +1,11 @@
+: ${PKG_QEMU_DEPENDS:="curl glib libX11 pixman w32api w32lib"};
+: ${PKG_QEMU_SHA256SUM:=6a0508df079a0a33c2487ca936a56c12122f105b8a96a44374704bef6c69abfc};
+: ${PKG_QEMU_VERSION:=3.1.0};
+: ${PKG_QEMU_URL:=https://download.qemu.org/qemu-${PKG_QEMU_VERSION}.tar.xz};
+: ${PKG_QEMU_CCLD:="${DEFAULT_NATIVE_LD}"};
+: ${PKG_QEMU_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports"};
+: ${PKG_QEMU_CONFIGURE_ARGS_LIST:="--host=${DEFAULT_TARGET}:--prefix=:--cc=${DEFAULT_NATIVE_CC}:--cxx=:--disable-strip:--disable-sdl"};
+
+ex_pkg_register "qemu" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/qpdf.package b/groups.d/231.native_packages_etc.d/qpdf.package
new file mode 100644
index 00000000..957b6d60
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/qpdf.package
@@ -0,0 +1,10 @@
+: ${PKG_QPDF_DEPENDS:="libz pcre"};
+: ${PKG_QPDF_SHA256SUM:=a9fdc7e94d38fcd3831f37b6e0fe36492bf79aa6d54f8f66062cf7f9c4155233};
+: ${PKG_QPDF_VERSION:=6.0.0};
+: ${PKG_QPDF_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/qpdf/qpdf-${PKG_QPDF_VERSION}.tar.gz};
+: ${PKG_QPDF_CONFIGURE_ARGS_EXTRA:=--with-random=/dev/urandom};
+: ${PKG_QPDF_IN_TREE:=1};
+
+ex_pkg_register "qpdf" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/qrencode.package b/groups.d/231.native_packages_etc.d/qrencode.package
new file mode 100644
index 00000000..25530bdc
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/qrencode.package
@@ -0,0 +1,9 @@
+: ${PKG_QRENCODE_DEPENDS:="libpng"};
+: ${PKG_QRENCODE_SHA256SUM:=da448ed4f52aba6bcb0cd48cac0dd51b8692bccc4cd127431402fca6f8171e8e};
+: ${PKG_QRENCODE_VERSION:=4.1.1};
+: ${PKG_QRENCODE_URL:=https://fukuchi.org/works/qrencode/qrencode-${PKG_QRENCODE_VERSION}.tar.gz};
+: ${PKG_QRENCODE_CONFIGURE_ARGS_EXTRA:=--disable-sdltest};
+
+ex_pkg_register "qrencode" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/rpm.package b/groups.d/231.native_packages_etc.d/rpm.package
new file mode 100644
index 00000000..4a58ed49
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/rpm.package
@@ -0,0 +1,10 @@
+: ${PKG_RPM_DEPENDS:="curl file libarchive libgcrypt libz lua popt xz zstd"};
+: ${PKG_RPM_SHA256SUM:=2e0d220b24749b17810ed181ac1ed005a56bbb6bc8ac429c21f314068dc65e6a};
+: ${PKG_RPM_VERSION:=4.17.0};
+: ${PKG_RPM_URL:=http://ftp.rpm.org/releases/rpm-${PKG_RPM_VERSION%.*}.x/rpm-${PKG_RPM_VERSION}.tar.bz2};
+: ${PKG_RPM_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix=/usr --target=${DEFAULT_TARGET} --disable-inhibit-plugin --enable-ndb --with-vendor=midipix --disable-openmp"};
+: ${PKG_RPM_ENV_VARS_EXTRA:="LIBGCRYPT_LIBS=-lgcrypt:LUA_LIBS=-llua:SQLITE_LIBS=-lsqlite3:LUA_CFLAGS=-I${PREFIX_NATIVE}/include/lua5.4"};
+
+ex_pkg_register "rpm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/rw.package b/groups.d/231.native_packages_etc.d/rw.package
new file mode 100644
index 00000000..1761fad5
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/rw.package
@@ -0,0 +1,8 @@
+: ${PKG_RW_SHA256SUM:=50009730e36991dfe579716f91f4f616f5ba05ffb7bf69c03d41bf305ed93b6d};
+: ${PKG_RW_VERSION:=1.0};
+: ${PKG_RW_URL:=https://sortix.org/rw/release/rw-portable-${PKG_RW_VERSION}.tar.gz}
+: ${PKG_RW_BUILD_DIR:=rw-portable-${PKG_RW_VERSION}};
+
+ex_pkg_register "rw" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/sdlquake.package b/groups.d/231.native_packages_etc.d/sdlquake.package
new file mode 100644
index 00000000..7f0e8bdb
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/sdlquake.package
@@ -0,0 +1,9 @@
+: ${PKG_SDLQUAKE_DEPENDS:="sdl1"};
+: ${PKG_SDLQUAKE_SHA256SUM:=097882b4613c87303dd068c41c95e77675da790cab63c7b440e70643d1741035};
+: ${PKG_SDLQUAKE_VERSION:=1.0.9};
+: ${PKG_SDLQUAKE_URL:=http://www.libsdl.org/projects/quake/src/sdlquake-${PKG_SDLQUAKE_VERSION}.tar.gz};
+: ${PKG_SDLQUAKE_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --target=${DEFAULT_TARGET} --with-sdl-prefix=${PREFIX_NATIVE}"};
+
+ex_pkg_register "sdlquake" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/shared_mime_info.package b/groups.d/231.native_packages_etc.d/shared_mime_info.package
new file mode 100644
index 00000000..b123d91c
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/shared_mime_info.package
@@ -0,0 +1,10 @@
+: ${PKG_SHARED_MIME_INFO_DEPENDS:="glib libxml2"};
+: ${PKG_SHARED_MIME_INFO_SHA256SUM:=2af55ef1a0319805b74ab40d331a3962c905477d76c086f49e34dc96363589e9};
+: ${PKG_SHARED_MIME_INFO_VERSION:=1.8};
+: ${PKG_SHARED_MIME_INFO_URL:=http://freedesktop.org/~hadess/shared-mime-info-${PKG_SHARED_MIME_INFO_VERSION}.tar.xz};
+: ${PKG_SHARED_MIME_INFO_CONFIGURE_ARGS_EXTRA:=--disable-update-mimedb};
+: ${PKG_SHARED_MIME_INFO_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "shared_mime_info" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/slang.package b/groups.d/231.native_packages_etc.d/slang.package
new file mode 100644
index 00000000..41abb81c
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/slang.package
@@ -0,0 +1,10 @@
+: ${PKG_SLANG_DEPENDS:="libpng ncursesw pcre"};
+: ${PKG_SLANG_SHA256SUM:=f9145054ae131973c61208ea82486d5dd10e3c5cdad23b7c4a0617743c8f5a18};
+: ${PKG_SLANG_VERSION:=2.3.3};
+: ${PKG_SLANG_URL:=https://www.jedsoft.org/releases/slang/slang-${PKG_SLANG_VERSION}.tar.bz2};
+: ${PKG_SLANG_IN_TREE:=1};
+: ${PKG_SLANG_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "slang" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/sqlite3.package b/groups.d/231.native_packages_etc.d/sqlite3.package
new file mode 100644
index 00000000..4517bd12
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/sqlite3.package
@@ -0,0 +1,9 @@
+: ${PKG_SQLITE3_DEPENDS:="ncurses readline libz"};
+: ${PKG_SQLITE3_SHA256SUM:=2c5dea207fa508d765af1ef620b637dcb06572afa6f01f0815bd5bbf864b33d9};
+: ${PKG_SQLITE3_VERSION:=3400100};
+: ${PKG_SQLITE3_URL:=https://sqlite.org/2022/sqlite-autoconf-${PKG_SQLITE3_VERSION}.tar.gz};
+: ${PKG_SQLITE3_CONFIGURE_ARGS_EXTRA:=--disable-static-shell};
+
+ex_pkg_register "sqlite3" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/tcl.package b/groups.d/231.native_packages_etc.d/tcl.package
new file mode 100644
index 00000000..f18836a2
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/tcl.package
@@ -0,0 +1,11 @@
+: ${PKG_TCL_SHA256SUM:=2bbd4e0bbdebeaf5dc6cc823d0805afb45c764292f6667d9ce2b9fcf5399e0dc};
+: ${PKG_TCL_VERSION:=8.7a1};
+: ${PKG_TCL_URL:=http://kuiper.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/tcl8_7/tcl${PKG_TCL_VERSION}-src.tar.gz};
+: ${PKG_TCL_CONFIG_CACHE_EXTRA:="
+tcl_cv_strtod_buggy=false
+tcl_cv_strtod_unbroken=true"};
+: ${PKG_TCL_SUBDIR:=tcl${PKG_TCL_VERSION}/unix};
+
+ex_pkg_register "tcl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/tdnf.package b/groups.d/231.native_packages_etc.d/tdnf.package
new file mode 100644
index 00000000..489a6254
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/tdnf.package
@@ -0,0 +1,11 @@
+: ${PKG_TDNF_DEPENDS:="libmetalink libressl curl gpgme libsolv"};
+: ${PKG_TDNF_SHA256SUM:=1ca20b176939f32c212f8dec7bfacd99995f1cb16c7f176b90394378ea854b0b};
+: ${PKG_TDNF_VERSION:=2.1.1};
+: ${PKG_TDNF_URL:=https://github.com/vmware/tdnf/archive/v${PKG_TDNF_VERSION}/tdnf-${PKG_TDNF_VERSION}.tar.gz};
+: ${PKG_TDNF_CMAKE_ARGS_EXTRA:="-DOPENSSL_LIBRARY=${PREFIX_NATIVE}/lib/libcrypto.so"};
+: ${PKG_TDNF_IN_TREE:=1};
+: ${PKG_TDNF_SUBDIR:=tdnf-${PKG_TDNF_VERSION}};
+
+ex_pkg_register "tdnf" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/texinfo.package b/groups.d/231.native_packages_etc.d/texinfo.package
new file mode 100644
index 00000000..b62f74be
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/texinfo.package
@@ -0,0 +1,7 @@
+: ${PKG_TEXINFO_SHA256SUM:=988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa};
+: ${PKG_TEXINFO_VERSION:=6.7};
+: ${PKG_TEXINFO_URL:=https://ftp.gnu.org/gnu/texinfo/texinfo-${PKG_TEXINFO_VERSION}.tar.xz};
+
+ex_pkg_register "texinfo" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/tiff.package b/groups.d/231.native_packages_etc.d/tiff.package
new file mode 100644
index 00000000..c22c1b87
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/tiff.package
@@ -0,0 +1,9 @@
+: ${PKG_TIFF_DEPENDS:="libjpeg_turbo libz xz zstd"};
+: ${PKG_TIFF_SHA256SUM:=d6da35c9986a4ec845eb96258b3693f8df515f7eb4c1e597ceb03e22788f305b};
+: ${PKG_TIFF_VERSION:=4.6.0t};
+: ${PKG_TIFF_URL:=http://www.libtiff.org/downloads/tiff-${PKG_TIFF_VERSION}.tar.xz};
+: ${PKG_TIFF_CONFIGURE_ARGS_EXTRA:=--disable-cxx};
+
+ex_pkg_register "tiff" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/tmux.package b/groups.d/231.native_packages_etc.d/tmux.package
new file mode 100644
index 00000000..0eea2c0b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/tmux.package
@@ -0,0 +1,9 @@
+: ${PKG_TMUX_DEPENDS:="libevent ncurses"};
+: ${PKG_TMUX_SHA256SUM:=55313e132f0f42de7e020bf6323a1939ee02ab79c48634aa07475db41573852b};
+: ${PKG_TMUX_VERSION:=2.3};
+: ${PKG_TMUX_URL:=https://github.com/tmux/tmux/releases/download/${PKG_TMUX_VERSION}/tmux-${PKG_TMUX_VERSION}.tar.gz};
+: ${PKG_TMUX_CONFIGURE_ARGS_EXTRA:=--enable-utf8proc};
+
+ex_pkg_register "tmux" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/tzdb.package b/groups.d/231.native_packages_etc.d/tzdb.package
new file mode 100644
index 00000000..74fbb077
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/tzdb.package
@@ -0,0 +1,10 @@
+: ${PKG_TZDB_SHA256SUM:=511af6b467f40b1ec9ac3684d1701793af470f3e29ddfb97b82be438e8601a7a};
+: ${PKG_TZDB_VERSION:=2024a};
+: ${PKG_TZDB_URL:=https://data.iana.org/time-zones/releases/tzdb-${PKG_TZDB_VERSION}.tar.lz};
+: ${PKG_TZDB_BUILD_DIR:="tzdb-${PKG_TZDB_VERSION}"};
+: ${PKG_TZDB_CFLAGS_BUILD_EXTRA:="-std=c99 -DHAVE_GETRANDOM -DHAVE_STDINT_H"};
+: ${PKG_TZDB_MAKEFLAGS_INSTALL_EXTRA:="ZIC=${PREFIX}/sbin/zic"};
+
+ex_pkg_register "tzdb" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/utf8proc.package b/groups.d/231.native_packages_etc.d/utf8proc.package
new file mode 100644
index 00000000..3343e952
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/utf8proc.package
@@ -0,0 +1,5 @@
+: ${PKG_UTF8PROC_URLS_GIT:="utf8proc=https://github.com/JuliaStrings/utf8proc@master"};
+
+ex_pkg_register "utf8proc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/util_linux.package b/groups.d/231.native_packages_etc.d/util_linux.package
new file mode 100644
index 00000000..e22640db
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/util_linux.package
@@ -0,0 +1,15 @@
+: ${PKG_UTIL_LINUX_DEPENDS:="ncursesw"};
+: ${PKG_UTIL_LINUX_SHA256SUM:=6a0764c1aae7fb607ef8a6dd2c0f6c47d5e5fd27aa08820abaad9ec14e28e9d9};
+: ${PKG_UTIL_LINUX_VERSION:=2.37.2};
+: ${PKG_UTIL_LINUX_URL:=https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${PKG_UTIL_LINUX_VERSION%.*}/util-linux-${PKG_UTIL_LINUX_VERSION}.tar.xz};
+: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-lslogins --disable-wall --disable-write --disable-nologin --disable-sulogin --disable-hwclock --disable-schedutils --enable-more};
+: ${PKG_UTIL_LINUX_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
+: ${PKG_UTIL_LINUX_CONFIG_CACHE_EXTRA:="
+ac_cv_func_timer_create=no
+ac_cv_lib_rt_timer_create=no
+ac_cv_search_timer_create=no
+ac_cv_prog_NCURSESW6_CONFIG=%PREFIX%/bin/ncursesw6-config"};
+
+ex_pkg_register "util_linux" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/vim.package b/groups.d/231.native_packages_etc.d/vim.package
new file mode 100644
index 00000000..53d70059
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/vim.package
@@ -0,0 +1,21 @@
+: ${PKG_VIM_DEPENDS:="ncursesw libiconv"};
+: ${PKG_VIM_SHA256SUM:=2b17989c6258f422276c6df9b72626947027a8b98e3a8eca2b2649c6ddc33765};
+: ${PKG_VIM_VERSION:=9.0.1927};
+: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz};
+: ${PKG_VIM_CONFIGURE_ARGS_EXTRA:="--enable-gui=no --with-tlib=tinfow --without-x --disable-canberra --disable-libsodium --disable-motif-check --disable-sysmouse --disable-gpm"};
+: ${PKG_VIM_IN_TREE:=1};
+: ${PKG_VIM_INSTALL_FILES_V2:="@vim=bin/vi"};
+: ${PKG_VIM_MAKEFLAGS_INSTALL_EXTRA:=STRIP=/bin/true};
+: ${PKG_VIM_SUBDIR:=vim-${PKG_VIM_VERSION}};
+: ${PKG_VIM_CONFIG_CACHE_EXTRA:="
+vim_cv_tgetent=zero
+vim_cv_toupper_broken=no
+vim_cv_terminfo=yes
+vim_cv_getcwd_broken=no
+vim_cv_stat_ignores_slash=yes
+vim_cv_memmove_handles_overlap=yes
+vim_cv_timer_create=yes"};
+
+ex_pkg_register "vim" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/vorbis_tools.package b/groups.d/231.native_packages_etc.d/vorbis_tools.package
new file mode 100644
index 00000000..6ba8f09b
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/vorbis_tools.package
@@ -0,0 +1,9 @@
+: ${PKG_VORBIS_TOOLS_DEPENDS:="curl libflac libogg libvorbis"};
+: ${PKG_VORBIS_TOOLS_SHA256SUM:=db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0};
+: ${PKG_VORBIS_TOOLS_VERSION:=1.4.2};
+: ${PKG_VORBIS_TOOLS_URL:=https://ftp.osuosl.org/pub/xiph/releases/vorbis/vorbis-tools-${PKG_VORBIS_TOOLS_VERSION}.tar.gz};
+: ${PKG_VORBIS_TOOLS_CONFIGURE_ARGS_EXTRA:="--disable-ogg123 --without-speex --without-kate"};
+
+ex_pkg_register "vorbis_tools" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/w32api.package b/groups.d/231.native_packages_etc.d/w32api.package
new file mode 100644
index 00000000..3da7cc6a
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/w32api.package
@@ -0,0 +1,7 @@
+: ${PKG_W32API_URLS_GIT:="w32api=https://github.com/midipix-ports/w32api.ports@main"};
+: ${PKG_W32API_IN_TREE:=1};
+: ${PKG_W32API_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
+
+ex_pkg_register "w32api" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/w32lib.package b/groups.d/231.native_packages_etc.d/w32lib.package
new file mode 100644
index 00000000..43e1e6bd
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/w32lib.package
@@ -0,0 +1,6 @@
+: ${PKG_W32LIB_URLS_GIT:="w32lib=https://git.midipix.org/w32lib"};
+: ${PKG_W32LIB_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
+
+ex_pkg_register "w32lib" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/xorriso.package b/groups.d/231.native_packages_etc.d/xorriso.package
new file mode 100644
index 00000000..ab2bc2f1
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/xorriso.package
@@ -0,0 +1,9 @@
+: ${PKG_XORRISO_DEPENDS:="libiconv"};
+: ${PKG_XORRISO_SHA256SUM:=3b69f5c93ae7c40c5bbe4a847fa3963f5efc9c565551622f77121c5792fc17e7};
+: ${PKG_XORRISO_VERSION:=1.5.2};
+: ${PKG_XORRISO_URL:=https://www.gnu.org/software/xorriso/xorriso-${PKG_XORRISO_VERSION}.tar.gz};
+: ${PKG_XORRISO_IN_TREE:=1};
+
+ex_pkg_register "xorriso" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/xpdf.package b/groups.d/231.native_packages_etc.d/xpdf.package
new file mode 100644
index 00000000..bdd9fe9e
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/xpdf.package
@@ -0,0 +1,12 @@
+: ${PKG_XPDF_DEPENDS:="fontconfig libz"};
+: ${PKG_XPDF_SHA256SUM:=0fe4274374c330feaadcebb7bd7700cb91203e153b26aa95952f02bf130be846};
+: ${PKG_XPDF_VERSION:=4.03};
+: ${PKG_XPDF_URL:=https://dl.xpdfreader.com/xpdf-${PKG_XPDF_VERSION}.tar.gz};
+: ${PKG_XPDF_CMAKE_ARGS_EXTRA:="
+ -DFREETYPE_LIBRARY=${PREFIX_NATIVE}/lib/libfreetype.lib.a
+ -DFREETYPE_INCLUDE_DIR_ft2build=${PREFIX_NATIVE}/include/ft2build
+ -DFONTCONFIG_LIBRARY=${PREFIX_NATIVE}/lib/libfontconfig.lib.a"};
+
+ex_pkg_register "xpdf" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/xz.package b/groups.d/231.native_packages_etc.d/xz.package
new file mode 100644
index 00000000..db9b5beb
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/xz.package
@@ -0,0 +1,8 @@
+: ${PKG_XZ_SHA256SUM:=3e1e518ffc912f86608a8cb35e4bd41ad1aec210df2a47aaa1f95e7f5576ef56};
+: ${PKG_XZ_VERSION:=5.2.5};
+: ${PKG_XZ_URL:=https://mirror.midipix.org/xz/xz-${PKG_XZ_HOST_VERSION}.tar.xz};
+: ${PKG_XZ_CFLAGS_BUILD_EXTRA:="-DLZMA_RANGE_DECODER_CONFIG=3"};
+
+ex_pkg_register "xz" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/231.native_packages_etc.d/zstd.package b/groups.d/231.native_packages_etc.d/zstd.package
new file mode 100644
index 00000000..da704d65
--- /dev/null
+++ b/groups.d/231.native_packages_etc.d/zstd.package
@@ -0,0 +1,10 @@
+: ${PKG_ZSTD_SHA256SUM:=98e9c3d949d1b924e28e01eccb7deed865eefebf25c2f21c702e5cd5b63b85e1};
+: ${PKG_ZSTD_VERSION:=1.5.5};
+: ${PKG_ZSTD_URL:=https://github.com/facebook/zstd/archive/v${PKG_ZSTD_VERSION}.tar.gz};
+: ${PKG_ZSTD_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+: ${PKG_ZSTD_IN_TREE:=1};
+: ${PKG_ZSTD_SUBDIR:=zstd-${PKG_ZSTD_VERSION}};
+
+ex_pkg_register "zstd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/apk_tools.package b/groups.d/241.native_packages_inet.d/apk_tools.package
new file mode 100644
index 00000000..e41dd75a
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/apk_tools.package
@@ -0,0 +1,12 @@
+: ${PKG_APK_TOOLS_DEPENDS:="libfetch libressl libz"};
+: ${PKG_APK_TOOLS_SHA256SUM:=def2b2c23cd12fd2a9c19be49653b0d1bf9d81a26dac5a0ee79a1351d674f93b};
+: ${PKG_APK_TOOLS_VERSION:=2.6.8};
+: ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2};
+: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${DEFAULT_TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}:OPENSSL_LIBS=-L${PREFIX_NATIVE}/lib -lssl -lcrypto:ZLIB_LIBS=-L${PREFIX_NATIVE}/lib -lz};
+: ${PKG_APK_TOOLS_IN_TREE:=1};
+: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:="PREFIX=${PREFIX_NATIVE} MANDIR=/share/man DOCDIR=/share/doc/apk"};
+: ${PKG_APK_TOOLS_DISABLED:=1};
+
+ex_pkg_register "apk_tools" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/bind.package b/groups.d/241.native_packages_inet.d/bind.package
new file mode 100644
index 00000000..d2cc43cf
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/bind.package
@@ -0,0 +1,10 @@
+: ${PKG_BIND_DEPENDS:="curl libressl libz"};
+: ${PKG_BIND_SHA256SUM:=6c044e9ea81add9dbbd2f5dfc224964cc6b6e364e43a8d6d8b574d9282651802};
+: ${PKG_BIND_VERSION:=9.13.2};
+: ${PKG_BIND_URL:=https://ftp.isc.org/isc/bind/${PKG_BIND_VERSION}/bind-${PKG_BIND_VERSION}.tar.gz};
+: ${PKG_BIND_CONFIGURE_ARGS_EXTRA:="--with-libtool --disable-backtrace --with-eddsa=no --with-ecdsa=yes --with-gssapi=no --with-libxml2=no --with-libjson=no --with-openssl=${PREFIX_NATIVE} --without-lmdb BUILD_CC=gcc"};
+: ${PKG_BIND_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "bind" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/ca_certificates.package b/groups.d/241.native_packages_inet.d/ca_certificates.package
new file mode 100644
index 00000000..717d41bb
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/ca_certificates.package
@@ -0,0 +1,11 @@
+: ${PKG_CA_CERTIFICATES_DEPENDS:="libressl"};
+: ${PKG_CA_CERTIFICATES_URLS_GIT:="cacerts=https://dev.midipix.org/distro/cacerts.git@main"};
+: ${PKG_CA_CERTIFICATES_IN_TREE:=1};
+: ${PKG_CA_CERTIFICATES_CFLAGS_BUILD_EXTRA:=${DEFAULT_CFLAGS}};
+: ${PKG_CA_CERTIFICATES_LDFLAGS_BUILD_EXTRA:=${DEFAULT_LDFLAGS}};
+: ${PKG_CA_CERTIFICATES_ENV_VARS_EXTRA:="HOST_CC=gcc"};
+: ${PKG_CA_CERTIFICATES_VARS_FILE:="vars/ca_certificates.vars"};
+
+ex_pkg_register "ca_certificates" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/curl.package b/groups.d/241.native_packages_inet.d/curl.package
new file mode 100644
index 00000000..77b93f7e
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/curl.package
@@ -0,0 +1,10 @@
+: ${PKG_CURL_DEPENDS:="gnutls libpsl libidn2 libz zstd"};
+: ${PKG_CURL_SHA256SUM:=6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd};
+: ${PKG_CURL_VERSION:=8.7.1};
+: ${PKG_CURL_URL:=https://curl.haxx.se/download/curl-${PKG_CURL_VERSION}.tar.xz};
+: ${PKG_CURL_CONFIGURE_ARGS_EXTRA:="--disable-symbol-hiding --enable-shared --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-ca-path=/etc/ssl/certs --with-gnutls --with-libssh --without-openssl --without-librtmp --without-hyper --without-brotli --without-gssapi --disable-socketpair --disable-unix-sockets --with-libidn2"};
+: ${PKG_CURL_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "curl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/cvs.package b/groups.d/241.native_packages_inet.d/cvs.package
new file mode 100644
index 00000000..e9726c62
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/cvs.package
@@ -0,0 +1,12 @@
+: ${PKG_CVS_SHA256SUM:=4734971a59471744e4ad8665c1dca54cb3ebf9fc66ce9c2dff3d04670d3f7312};
+: ${PKG_CVS_VERSION:=1.12.13};
+: ${PKG_CVS_URL:=https://deb.debian.org/debian/pool/main/c/cvs/cvs_${PKG_CVS_VERSION}+real.orig.tar.gz};
+: ${PKG_CVS_SUBDIR:=cvs-${PKG_CVS_VERSION}};
+: ${PKG_CVS_CONFIGURE_ARGS_EXTRA:="--disable-pam --enable-client --enable-password-authenticated-client --enable-server -enable-proxy --enable-case-sensitivity --disable-lock-compatibility --enable-rootcommit --disable-old-info-format-support --enable-config-override=no --with-rsh=ssh --with-editor=vi --with-tmpdir=/tmp --with-umask=002 --with-external-zlib"};
+: ${PKG_CVS_CONFIG_CACHE_EXTRA:="
+cvs_cv_func_printf_ptr=yes
+ac_cv_path_PS2PDF=false"};
+
+ex_pkg_register "cvs" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/dropbear.package b/groups.d/241.native_packages_inet.d/dropbear.package
new file mode 100644
index 00000000..fa6e8160
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/dropbear.package
@@ -0,0 +1,9 @@
+: ${PKG_DROPBEAR_DEPENDS:="libz"};
+: ${PKG_DROPBEAR_SHA256SUM:=48235d10b37775dbda59341ac0c4b239b82ad6318c31568b985730c788aac53b};
+: ${PKG_DROPBEAR_VERSION:=2020.81};
+: ${PKG_DROPBEAR_URL:=http://repository.timesys.com/buildsources/d/dropbear/dropbear-${PKG_DROPBEAR_VERSION}/dropbear-${PKG_DROPBEAR_VERSION}.tar.bz2};
+: ${PKG_DROPBEAR_CONFIGURE_ARGS_EXTRA:=--disable-loginfunc};
+
+ex_pkg_register "dropbear" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/elinks.package b/groups.d/241.native_packages_inet.d/elinks.package
new file mode 100644
index 00000000..a9f9046b
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/elinks.package
@@ -0,0 +1,12 @@
+: ${PKG_ELINKS_DEPENDS:="gnutls libgcrypt libevent expat xz bzip2 ncurses zstd libz"};
+: ${PKG_ELINKS_SHA256SUM:=bf2e9d752921f2d83a7dcac1062c37ae6c8d7c4057d8537abe1c42fbac946fb3};
+: ${PKG_ELINKS_VERSION:=0.15.0};
+: ${PKG_ELINKS_URL:=https://github.com/rkd77/elinks/releases/download/v${PKG_ELINKS_VERSION}/elinks-${PKG_ELINKS_VERSION}.tar.xz};
+: ${PKG_ELINKS_CCLD:="${DEFAULT_NATIVE_LD}"};
+: ${PKG_ELINKS_CONFIGURE_ARGS_EXTRA:="--enable-fastmem --enable-88-colors --enable-256-colors --enable-true-color --enable-leds --enable-gemini --enable-gopher --enable-html-highlight --enable-fsp --with-terminfo --with-libevent --with-lzma --with-gnutls --without-spidermonkey --without-x"};
+: ${PKG_ELINKS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/ncurses"};
+: ${PKG_ELINKS_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "elinks" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/fetchmail.package b/groups.d/241.native_packages_inet.d/fetchmail.package
new file mode 100644
index 00000000..7c8c0335
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/fetchmail.package
@@ -0,0 +1,9 @@
+: ${PKG_FETCHMAIL_DEPENDS:="libressl"};
+: ${PKG_FETCHMAIL_SHA256SUM:=c7500bed3b0bb85722f7cf2d980e74a879ac57b13cfd225d278179d671c0f5e8};
+: ${PKG_FETCHMAIL_VERSION:=6.4.0.beta4};
+: ${PKG_FETCHMAIL_URL:=http://krusty.dt.e-technik.tu-dortmund.de/~ma/fetchmail/fetchmail-${PKG_FETCHMAIL_VERSION}.tar.xz};
+: ${PKG_FETCHMAIL_CONFIGURE_ARGS_EXTRA:="--with-kerberos5=no --with-kerberos=no --with-ssl=${PREFIX_NATIVE}"};
+
+ex_pkg_register "fetchmail" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/git.package b/groups.d/241.native_packages_inet.d/git.package
new file mode 100644
index 00000000..d3a63cb0
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/git.package
@@ -0,0 +1,18 @@
+: ${PKG_GIT_DEPENDS:="curl libz"};
+: ${PKG_GIT_SHA256SUM:=2deab68747c9ee4e456482c9e7a9a12b05aa5d5f7fab8a35535d0dfab9d10529};
+: ${PKG_GIT_VERSION:=2.35.5};
+: ${PKG_GIT_URL:=https://mirrors.edge.kernel.org/pub/software/scm/git/git-${PKG_GIT_VERSION}.tar.xz};
+: ${PKG_GIT_CFLAGS_BUILD_EXTRA:="-std=gnu99"};
+: ${PKG_GIT_CONFIG_CACHE_EXTRA:="
+ac_cv_fread_reads_directories=1
+ac_cv_snprintf_returns_bogus=0
+ac_cv_prog_CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config"};
+: ${PKG_GIT_CONFIG_CACHE_LOCAL:="ac_cv_iconv_omits_bom=false"};
+: ${PKG_GIT_IN_TREE:=1};
+: ${PKG_GIT_MAKEFLAGS_BUILD:="CFLAGS=-std=gnu99 CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config CURLDIR=${PREFIX_NATIVE} HAVE_DEV_TTY=yes NO_GETTEXT=yes NO_REGEX=yes NO_PERL=yes NO_PYTHON=yes NO_TCLTK=yes"};
+: ${PKG_GIT_MAKEFLAGS_INSTALL:="CFLAGS=-std=gnu99 CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config CURLDIR=${PREFIX_NATIVE} HAVE_DEV_TTY=yes NO_GETTEXT=yes NO_REGEX=yes NO_PERL=yes NO_PYTHON=yes NO_TCLTK=yes"};
+: ${PKG_GIT_SUBDIR:=git-${PKG_GIT_VERSION}};
+
+ex_pkg_register "git" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/gnupg.package b/groups.d/241.native_packages_inet.d/gnupg.package
new file mode 100644
index 00000000..c4339511
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/gnupg.package
@@ -0,0 +1,11 @@
+: ${PKG_GNUPG_DEPENDS:="libassuan libgcrypt libgpg_error libksba npth sqlite3"};
+: ${PKG_GNUPG_SHA256SUM:=540b7a40e57da261fb10ef521a282e0021532a80fd023e75fb71757e8a4969ed};
+: ${PKG_GNUPG_VERSION:=2.3.8};
+: ${PKG_GNUPG_URL:=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${PKG_GNUPG_VERSION}.tar.bz2};
+: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"};
+: ${PKG_GNUPG_CONFIG_CACHE_EXTRA:="
+ac_cv_path_GPGRT_CONFIG=${PREFIX_NATIVE}/bin/gpgrt-config"};
+
+ex_pkg_register "gnupg" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/gnutls.package b/groups.d/241.native_packages_inet.d/gnutls.package
new file mode 100644
index 00000000..24f39a77
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/gnutls.package
@@ -0,0 +1,13 @@
+: ${PKG_GNUTLS_DEPENDS:="libunistring libtasn1 nettle zstd"};
+: ${PKG_GNUTLS_SHA256SUM:=66269a2cfe0e1c2dabec87bdbbd8ab656f396edd9a40dd006978e003cfa52bfc};
+: ${PKG_GNUTLS_VERSION:=3.8.5};
+: ${PKG_GNUTLS_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v${PKG_GNUTLS_VERSION%.*}/gnutls-${PKG_GNUTLS_VERSION}.tar.xz};
+: ${PKG_GNUTLS_CONFIG_CACHE_EXTRA:="
+gl_cv_func_working_getdelim=yes
+gl_cv_ld_output_def=no"};
+: ${PKG_GNUTLS_CONFIGURE_ARGS_EXTRA:="PYTHON=python3 --disable-static --disable-ssl3-support --disable-ssl2-support --disable-cxx --enable-local-libopts --without-p11-kit --disable-hardware-acceleration --enable-guile=no --with-default-trust-store-dir=/etc/ssl/certs"};
+: ${PKG_GNUTLS_LIBTOOL:=rlibtool};
+
+ex_pkg_register "gnutls" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/gpgme.package b/groups.d/241.native_packages_inet.d/gpgme.package
new file mode 100644
index 00000000..f4feef4d
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/gpgme.package
@@ -0,0 +1,12 @@
+: ${PKG_GPGME_DEPENDS:="libassuan libgpg_error"};
+: ${PKG_GPGME_SHA256SUM:=361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e};
+: ${PKG_GPGME_VERSION:=1.18.0};
+: ${PKG_GPGME_URL:=https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-${PKG_GPGME_VERSION}.tar.bz2};
+: ${PKG_GPGME_CONFIGURE_ARGS_EXTRA:="--disable-g13-test --disable-gpgconf-test --disable-gpgsm-test --disable-gpg-test --with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --enable-languages=cl"};
+: ${PKG_GPGME_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
+: ${PKG_GPGME_CONFIG_CACHE_EXTRA:="
+ac_cv_path_GPGRT_CONFIG=${PREFIX_NATIVE}/bin/gpgrt-config"};
+
+ex_pkg_register "gpgme" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/httpd.package b/groups.d/241.native_packages_inet.d/httpd.package
new file mode 100644
index 00000000..f8f3d814
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/httpd.package
@@ -0,0 +1,11 @@
+: ${PKG_HTTPD_SHA256SUM:=0127f7dc497e9983e9c51474bed75e45607f2f870a7675a86dc90af6d572f5c9};
+: ${PKG_HTTPD_VERSION:=2.4.52};
+: ${PKG_HTTPD_URL:=https://archive.apache.org/dist/httpd/httpd-${PKG_HTTPD_VERSION}.tar.bz2};
+: ${PKG_HTTPD_CONFIG_CACHE_EXTRA:="ap_cv_void_ptr_lt_long=no"};
+: ${PKG_HTTPD_CONFIGURE_ARGS_EXTRA:="--with-apr=${PREFIX_NATIVE}/bin/${DEFAULT_TARGET}-apr-1-config --with-apr-util=${PREFIX_NATIVE}/bin/apu-1-config --with-z=${PREFIX_NATIVE} --with-ssl=${PREFIX_NATIVE} --with-pcre=${PREFIX}/bin/pcre-config --enable-mods-static=all --disable-ext-filter --disable-lua --sysconfdir=/etc/apache2 --localstatedir=/var/lib/apache2 --datadir=/srv/www"};
+: ${PKG_HTTPD_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4"};
+: ${PKG_HTTPD_DISABLED:=1};
+
+ex_pkg_register "httpd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/icecast.package b/groups.d/241.native_packages_inet.d/icecast.package
new file mode 100644
index 00000000..58cbba6b
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/icecast.package
@@ -0,0 +1,11 @@
+: ${PKG_ICECAST_DEPENDS:="curl expat libvorbis libxml2 libxslt wolfssl"};
+: ${PKG_ICECAST_SHA256SUM:=49b5979f9f614140b6a38046154203ee28218d8fc549888596a683ad604e4d44};
+: ${PKG_ICECAST_VERSION:=2.4.4};
+: ${PKG_ICECAST_URL:=http://downloads.xiph.org/releases/icecast/icecast-${PKG_ICECAST_VERSION}.tar.gz};
+: ${PKG_ICECAST_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/libxml2"};
+: ${PKG_ICECAST_LDFLAGS_CONFIGURE_EXTRA:="-lwolfssl"};
+: ${PKG_ICECAST_CONFIGURE_ARGS_EXTRA:="--with-curl=${PREFIX_NATIVE} --with-ogg=${PREFIX_NATIVE} --with-theora=${PREFIX_NATIVE} --with-vorbis=${PREFIX_NATIVE} --with-xslt-config=${PREFIX}/bin/xslt-config --with-curl-config=${PREFIX_NATIVE}/bin/curl-config --without-speex"};
+
+ex_pkg_register "icecast" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/inetutils.package b/groups.d/241.native_packages_inet.d/inetutils.package
new file mode 100644
index 00000000..07e26075
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/inetutils.package
@@ -0,0 +1,9 @@
+: ${PKG_INETUTILS_DEPENDS:="ncurses"};
+: ${PKG_INETUTILS_SHA256SUM:=1789d6b1b1a57dfe2a7ab7b533ee9f5dfd9cbf5b59bb1bb3c2612ed08d0f68b2};
+: ${PKG_INETUTILS_VERSION:=2.4};
+: ${PKG_INETUTILS_URL:=https://ftp.gnu.org/gnu/inetutils/inetutils-${PKG_INETUTILS_VERSION}.tar.xz};
+: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --enable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-talkd --enable-telnetd --disable-tftpd --disable-uucpd --disable-dnsdomainname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --enable-hostname --disable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute --with-ncurses-include-dir=${PREFIX_NATIVE}/include/ncurses"};
+
+ex_pkg_register "inetutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/irssi.package b/groups.d/241.native_packages_inet.d/irssi.package
new file mode 100644
index 00000000..a6dafd81
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/irssi.package
@@ -0,0 +1,9 @@
+: ${PKG_IRSSI_DEPENDS:="glib libressl ncurses"};
+: ${PKG_IRSSI_SHA256SUM:=29cbb746d7e57591d8fcf799406fb28cb7c2d734bc4288cbb8b4c4e05cf99c25};
+: ${PKG_IRSSI_VERSION:=1.2.3};
+: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/${PKG_IRSSI_VERSION}/irssi-${PKG_IRSSI_VERSION}.tar.gz};
+: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}};
+
+ex_pkg_register "irssi" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/isync.package b/groups.d/241.native_packages_inet.d/isync.package
new file mode 100644
index 00000000..060dbbc9
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/isync.package
@@ -0,0 +1,9 @@
+: ${PKG_ISYNC_DEPENDS:="libressl"};
+: ${PKG_ISYNC_SHA256SUM:=7c3273894f22e98330a330051e9d942fd9ffbc02b91952c2f1896a5c37e700ff};
+: ${PKG_ISYNC_VERSION:=1.4.4};
+: ${PKG_ISYNC_URL:=https://sources.voidlinux.org/isync-${PKG_ISYNC_VERSION}/isync-${PKG_ISYNC_VERSION}.tar.gz};
+: ${PKG_ISYNC_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
+
+ex_pkg_register "isync" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/ldns.package b/groups.d/241.native_packages_inet.d/ldns.package
new file mode 100644
index 00000000..e3415295
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/ldns.package
@@ -0,0 +1,10 @@
+: ${PKG_LDNS_DEPENDS:="libressl"};
+: ${PKG_LDNS_SHA256SUM:=c3f72dd1036b2907e3a56e6acf9dfb2e551256b3c1bbd9787942deeeb70e7860};
+: ${PKG_LDNS_VERSION:=1.8.3};
+: ${PKG_LDNS_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/ldns/ldns-${PKG_LDNS_VERSION}.tar.gz};
+: ${PKG_LDNS_CONFIGURE_ARGS_EXTRA:="--with-ssl=${PREFIX_NATIVE} --disable-dane-ta-usage --disable-gost --with-drill --with-examples"};
+: ${PKG_LDNS_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "ldns" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/lighttpd.package b/groups.d/241.native_packages_inet.d/lighttpd.package
new file mode 100644
index 00000000..88c02ba4
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/lighttpd.package
@@ -0,0 +1,11 @@
+: ${PKG_LIGHTTPD_DEPENDS:="bzip2 pcre libressl libsasl2 libz gnutls"};
+: ${PKG_LIGHTTPD_SHA256SUM:=8cbf4296e373cfd0cedfe9d978760b5b05c58fdc4048b4e2bcaf0a61ac8f5011};
+: ${PKG_LIGHTTPD_VERSION:=1.4.76};
+: ${PKG_LIGHTTPD_URL:=https://download.lighttpd.net/lighttpd/releases-${PKG_LIGHTTPD_VERSION%.*}.x/lighttpd-${PKG_LIGHTTPD_VERSION}.tar.xz};
+: ${PKG_LIGHTTPD_CONFIGURE_ARGS_EXTRA:="--with-pcre2 --with-bzip2 --with-openssl --with-gnutls --with-libxml --with-sasl"};
+: ${PKG_LIGHTTPD_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4"};
+: ${PKG_LIGHTTPD_CONFIG_CACHE_EXTRA:="ac_cv_func_copy_file_range=no"};
+
+ex_pkg_register "lighttpd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/links.package b/groups.d/241.native_packages_inet.d/links.package
new file mode 100644
index 00000000..5d2b1c96
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/links.package
@@ -0,0 +1,9 @@
+: ${PKG_LINKS_DEPENDS:="bzip2 libz libpng libX11 libressl tiff libjpeg_turbo xz zstd"};
+: ${PKG_LINKS_SHA256SUM:=22aa96c0b38e1a6f8f7ed9d7a4167a47fc37246097759ef6059ecf8f9ead7998};
+: ${PKG_LINKS_VERSION:=2.29};
+: ${PKG_LINKS_URL:=http://links.twibright.com/download/links-${PKG_LINKS_VERSION}.tar.bz2};
+: ${PKG_LINKS_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --disable-graphics --without-freetype"};
+
+ex_pkg_register "links" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/lynx.package b/groups.d/241.native_packages_inet.d/lynx.package
new file mode 100644
index 00000000..a182aa72
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/lynx.package
@@ -0,0 +1,12 @@
+: ${PKG_LYNX_DEPENDS:="gnutls ncursesw readline"};
+: ${PKG_LYNX_SHA256SUM:=6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7};
+: ${PKG_LYNX_VERSION:=2.8.8rel.2};
+: ${PKG_LYNX_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/lynx/lynx${PKG_LYNX_VERSION}.tar.bz2};
+: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw -DNCURSES_INTERNALS"};
+: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--with-gnutls};
+: ${PKG_LYNX_SUBDIR:=lynx2-8-8};
+: ${PKG_LYNX_DISABLED:=1};
+
+ex_pkg_register "lynx" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/mailutils.package b/groups.d/241.native_packages_inet.d/mailutils.package
new file mode 100644
index 00000000..9bfdd2aa
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/mailutils.package
@@ -0,0 +1,11 @@
+: ${PKG_MAILUTILS_DEPENDS:="gnutls ncurses libunistring"};
+: ${PKG_MAILUTILS_SHA256SUM:=b7d0c286c352fcc7da7978cfd617cc66736b21fa891aa4f88855f516354f2ddb};
+: ${PKG_MAILUTILS_VERSION:=3.15};
+: ${PKG_MAILUTILS_URL:=https://ftp.gnu.org/gnu/mailutils/mailutils-${PKG_MAILUTILS_VERSION}.tar.xz};
+: ${PKG_MAILUTILS_CONFIGURE_ARGS_EXTRA:="mu_cv_lib_gnutls=yes --disable-python --with-gnutls --without-fribidi --without-gssapi"};
+: ${PKG_MAILUTILS_LDFLAGS_BUILD_EXTRA:="-lgnutls -lunistring"};
+: ${PKG_MAILUTILS_IN_TREE=1};
+
+ex_pkg_register "mailutils" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/microsocks.package b/groups.d/241.native_packages_inet.d/microsocks.package
new file mode 100644
index 00000000..3747e9f1
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/microsocks.package
@@ -0,0 +1,6 @@
+: ${PKG_MICROSOCKS_URLS_GIT:=microsocks=https://github.com/rofl0r/microsocks.git@master};
+: ${PKG_MICROSOCKS_BUILD_DIR:=microsocks};
+
+ex_pkg_register "microsocks" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/mutt.package b/groups.d/241.native_packages_inet.d/mutt.package
new file mode 100644
index 00000000..d8044caa
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/mutt.package
@@ -0,0 +1,13 @@
+: ${PKG_MUTT_DEPENDS:="gnutls libz ncursesw libiconv"};
+: ${PKG_MUTT_SHA256SUM:=eb23faddc1cc97d867693f3a4a9f30949ad93765ad5b6fdae2797a4001c58efb};
+: ${PKG_MUTT_VERSION:=2.2.13};
+: ${PKG_MUTT_URL:=http://ftp.mutt.org/pub/mutt/mutt-${PKG_MUTT_VERSION}.tar.gz};
+: ${PKG_MUTT_CONFIG_CACHE_EXTRA:="
+mutt_cv_c99_snprintf=yes
+mutt_cv_c99_vsnprintf=yes
+mutt_cv_regex_broken=no"};
+: ${PKG_MUTT_CONFIGURE_ARGS_EXTRA:="--enable-imap --enable-pop --enable-smtp --enable-sidebar --with-curses --with-mailpath=/var/spool/mail --with-gnutls --disable-doc"};
+
+ex_pkg_register "mutt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/nginx.package b/groups.d/241.native_packages_inet.d/nginx.package
new file mode 100644
index 00000000..9397ca38
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/nginx.package
@@ -0,0 +1,12 @@
+: ${PKG_NGINX_DEPENDS:="libz pcre"};
+: ${PKG_NGINX_SHA256SUM:=958876757782190a1653e14dc26dfc7ba263de310e04c113e11e97d1bef45a42};
+: ${PKG_NGINX_VERSION:=1.20.2};
+: ${PKG_NGINX_URL:=http://nginx.org/download/nginx-${PKG_NGINX_VERSION}.tar.gz};
+: ${PKG_NGINX_CFLAGS_BUILD_EXTRA:="-Wno-sign-compare"};
+: ${PKG_NGINX_CONFIGURE_ARGS:="--prefix="};
+: ${PKG_NGINX_ENV_VARS_EXTRA:=CC=${DEFAULT_NATIVE_CC}};
+: ${PKG_NGINX_IN_TREE:=1};
+
+ex_pkg_register "nginx" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/ngircd.package b/groups.d/241.native_packages_inet.d/ngircd.package
new file mode 100644
index 00000000..d1a384e0
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/ngircd.package
@@ -0,0 +1,9 @@
+: ${PKG_NGIRCD_DEPENDS:="gnutls"};
+: ${PKG_NGIRCD_SHA256SUM:=55c16fd26009f6fc6a007df4efac87a02e122f680612cda1ce26e17a18d86254};
+: ${PKG_NGIRCD_VERSION:=26.1};
+: ${PKG_NGIRCD_URL:=https://arthur.barton.de/pub/ngircd/ngircd-${PKG_NGIRCD_VERSION}.tar.xz};
+: ${PKG_NGIRCD_CONFIGURE_ARGS_EXTRA:="--with-gnutls"};
+
+ex_pkg_register "ngircd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/nullmailer.package b/groups.d/241.native_packages_inet.d/nullmailer.package
new file mode 100644
index 00000000..b9324834
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/nullmailer.package
@@ -0,0 +1,13 @@
+: ${PKG_NULLMAILER_DEPENDS:="gnutls"};
+: ${PKG_NULLMAILER_SHA256SUM:=6d277f69f1999c86df0ca9a97a4f14f9bb431c50fd4e016918290b84ff679241}
+: ${PKG_NULLMAILER_VERSION:=2.2}
+: ${PKG_NULLMAILER_URL:=https://github.com/bruceg/nullmailer/archive/${PKG_NULLMAILER_VERSION}.tar.gz};
+: ${PKG_NULLMAILER_CONFIG_CACHE_EXTRA:="local_cv_flag_NAMEDPIPEBUG=no"};
+: ${PKG_NULLMAILER_CONFIGURE_ARGS_EXTRA:="--enable-tls"}
+: ${PKG_NULLMAILER_FORCE_AUTORECONF:=1};
+: ${PKG_NULLMAILER_IN_TREE:=1}
+: ${PKG_NULLMAILER_SUBDIR:=nullmailer-${PKG_NULLMAILER_VERSION}};
+
+ex_pkg_register "nullmailer" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/openlitespeed.package b/groups.d/241.native_packages_inet.d/openlitespeed.package
new file mode 100644
index 00000000..3c51f74b
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/openlitespeed.package
@@ -0,0 +1,14 @@
+: ${PKG_OPENLITESPEED_SHA256SUM:=11cea34ebb0d72e5c620c61dce9ee4982474311dc5f35e0737a6b6d760bcf577};
+: ${PKG_OPENLITESPEED_VERSION:=1.4.27};
+: ${PKG_OPENLITESPEED_URL:=http://open.litespeedtech.com/packages/openlitespeed-${PKG_OPENLITESPEED_VERSION}.tgz};
+: ${PKG_OPENLITESPEED_CONFIGURE_ARGS:="-C --host=${DEFAULT_TARGET} --prefix=/usr/lsws --target=${DEFAULT_TARGET} --with-expat=${PREFIX_NATIVE} --with-openssl=${PREFIX_NATIVE} --with-zlib=${PREFIX_NATIVE}" --enable-spdy=no};
+: ${PKG_OPENLITESPEED_CXXFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
+: ${PKG_OPENLITESPEED_DESTDIR:=destdir/lsws};
+: ${PKG_OPENLITESPEED_DISABLED:=1};
+: ${PKG_OPENLITESPEED_IN_TREE:=1};
+: ${PKG_OPENLITESPEED_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_OPENLITESPEED_PREFIX:=${PREFIX_NATIVE}/lsws};
+
+ex_pkg_register "openlitespeed" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/opensmtpd.package b/groups.d/241.native_packages_inet.d/opensmtpd.package
new file mode 100644
index 00000000..4b2cbe22
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/opensmtpd.package
@@ -0,0 +1,10 @@
+: ${PKG_OPENSMTPD_DEPENDS:="libevent libressl libz musl_fts"};
+: ${PKG_OPENSMTPD_SHA256SUM:=fccdfbc5b98d150012bf9ccdef51752c18a862ed10888b56289826b83a2b5a4e};
+: ${PKG_OPENSMTPD_VERSION:=7.3.0p2};
+: ${PKG_OPENSMTPD_URL:=https://www.opensmtpd.org/archives/opensmtpd-${PKG_OPENSMTPD_VERSION}.tar.gz}
+: ${PKG_OPENSMTPD_CONFIGURE_ARGS_EXTRA:="--with-maildir=/var/mail --with-libz=${PREFIX_NATIVE} --with-libevent=${PREFIX_NATIVE}"};
+: ${PKG_OPENSMTPD_IN_TREE:=1};
+
+ex_pkg_register "opensmtpd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/openssh.package b/groups.d/241.native_packages_inet.d/openssh.package
new file mode 100644
index 00000000..3a9a3e98
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/openssh.package
@@ -0,0 +1,14 @@
+: ${PKG_OPENSSH_DEPENDS:="libedit libressl libz libmd"};
+: ${PKG_OPENSSH_SHA256SUM:=f026e7b79ba7fb540f75182af96dc8a8f1db395f922bbc9f6ca603672686086b};
+: ${PKG_OPENSSH_VERSION:=9.5p1};
+: ${PKG_OPENSSH_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PKG_OPENSSH_VERSION}.tar.gz};
+: ${PKG_OPENSSH_CFLAGS_CONFIGURE_EXTRA:="-DUSE_PIPES -DUSE_LIBEDIT"};
+: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA:="--with-libedit=${PREFIX_NATIVE} --without-shadow"};
+: ${PKG_OPENSSH_DEBUG_CONFIGURE_ARGS_EXTRA:=--disable-strip};
+: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys};
+: ${PKG_OPENSSH_MAKEFLAGS_INSTALL_EXTRA:=STRIP_OPT=};
+: ${PKG_OPENSSH_ENV_VARS_EXTRA:="LIBEDIT=-ledit -ltinfo"};
+
+ex_pkg_register "openssh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/proxytunnel.package b/groups.d/241.native_packages_inet.d/proxytunnel.package
new file mode 100644
index 00000000..eec98b9c
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/proxytunnel.package
@@ -0,0 +1,12 @@
+: ${PKG_PROXYTUNNEL_DEPENDS:="libressl"};
+: ${PKG_PROXYTUNNEL_SHA256SUM:=acc111ba4ef47a61878eb480636941add36edb38defae22dd54288bcf036cdc4};
+: ${PKG_PROXYTUNNEL_VERSION:=1.12.1}
+: ${PKG_PROXYTUNNEL_URL:=https://github.com/proxytunnel/proxytunnel/archive/v${PKG_PROXYTUNNEL_VERSION}.tar.gz};
+: ${PKG_PROXYTUNNEL_SUBDIR:=proxytunnel-${PKG_PROXYTUNNEL_VERSION}};
+: ${PKG_PROXYTUNNEL_BUILD_DIR:=${PKG_PROXYTUNNEL_SUBDIR}};
+: ${PKG_PROXYTUNNEL_CFLAGS_BUILD_EXTRA:=${DEFAULT_CFLAGS}};
+: ${PKG_PROXYTUNNEL_LDFLAGS_BUILD_EXTRA:="-lssl -lcrypto"};
+
+ex_pkg_register "proxytunnel" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/rsync.package b/groups.d/241.native_packages_inet.d/rsync.package
new file mode 100644
index 00000000..ccb0a4e0
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/rsync.package
@@ -0,0 +1,9 @@
+: ${PKG_RSYNC_DEPENDS:="libressl"};
+: ${PKG_RSYNC_SHA256SUM:=6f761838d08052b0b6579cf7f6737d93e47f01f4da04c5d24d3447b7f2a5fad1};
+: ${PKG_RSYNC_VERSION:=3.2.4};
+: ${PKG_RSYNC_URL:=https://download.samba.org/pub/rsync/src/rsync-${PKG_RSYNC_VERSION}.tar.gz};
+: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:="--with-included-zlib --disable-simd --disable-xxhash --disable-lz4 --disable-zstd"};
+
+ex_pkg_register "rsync" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/socat.package b/groups.d/241.native_packages_inet.d/socat.package
new file mode 100644
index 00000000..b2acc831
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/socat.package
@@ -0,0 +1,7 @@
+: ${PKG_SOCAT_SHA256SUM:=d9ed2075abed7b3ec9730ed729b4c8e287c502181c806d4487020418a6e2fc36};
+: ${PKG_SOCAT_VERSION:=1.7.3.4};
+: ${PKG_SOCAT_URL:=http://www.dest-unreach.org/socat/download/socat-${PKG_SOCAT_VERSION}.tar.gz};
+
+ex_pkg_register "socat" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/thttpd.package b/groups.d/241.native_packages_inet.d/thttpd.package
new file mode 100644
index 00000000..e36141ca
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/thttpd.package
@@ -0,0 +1,11 @@
+: ${PKG_THTTPD_SHA256SUM:=99c09f47da326b1e7b5295c45549d2b65534dce27c44812cf7eef1441681a397};
+: ${PKG_THTTPD_VERSION:=2.29};
+: ${PKG_THTTPD_URL:=https://acme.com/software/thttpd/thttpd-${PKG_THTTPD_VERSION}.tar.gz};
+: ${PKG_THTTPD_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_THTTPD_IN_TREE:=1};
+: ${PKG_THTTPD_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_THTTPD_MAKE_INSTALL_VNAME:=prefix};
+
+ex_pkg_register "thttpd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/w3m.package b/groups.d/241.native_packages_inet.d/w3m.package
new file mode 100644
index 00000000..9d81d826
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/w3m.package
@@ -0,0 +1,14 @@
+: ${PKG_W3M_DEPENDS:="bdwgc imlib2 libressl ncurses"};
+: ${PKG_W3M_SHA256SUM:=0467bb5429b75749205a3f57b9f5e8abba49929272aeab6fce94ff17953f0784};
+: ${PKG_W3M_VERSION:=0.5.3+git20190105};
+: ${PKG_W3M_URL:=https://github.com/tats/w3m/archive/v${PKG_W3M_VERSION}.tar.gz};
+: ${PKG_W3M_CONFIG_CACHE_EXTRA:="ac_cv_func_setpgrp_void=yes"};
+: ${PKG_W3M_CONFIGURE_ARGS_EXTRA:="--with-ssl --with-imagelib=imlib2 --with-termlib=ncurses --disable-w3mmailer"};
+: ${PKG_W3M_ENV_VARS_EXTRA:="LIBS=-ltinfo"};
+: ${PKG_W3M_IN_TREE:=1};
+: ${PKG_W3M_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_W3M_SUBDIR:=w3m-0.5.3-git20190105};
+
+ex_pkg_register "w3m" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/weechat.package b/groups.d/241.native_packages_inet.d/weechat.package
new file mode 100644
index 00000000..e7b9b813
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/weechat.package
@@ -0,0 +1,11 @@
+: ${PKG_WEECHAT_DEPENDS:="aspell curl gnutls libgcrypt libz ncursesw perl"};
+: ${PKG_WEECHAT_SHA256SUM:=d9d27fac127c724564cf28c6179fa6ecc79a61f9dad09a3b251500f2b0755409};
+: ${PKG_WEECHAT_VERSION:=3.8};
+: ${PKG_WEECHAT_URL:=https://weechat.org/files/src/weechat-${PKG_WEECHAT_VERSION}.tar.gz};
+: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-guile --disable-javascript --disable-python --disable-ruby --disable-tcl --enable-perl PERL_CFLAGS=-I${PREFIX_NATIVE}/lib/perl5/5.36.0/${DEFAULT_TARGET}/CORE PERL_LFLAGS=-lperl"};
+: ${PKG_WEECHAT_ENV_VARS_EXTRA:="CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config:LIBGCRYPT_CONFIG=${PREFIX_NATIVE}/bin/libgcrypt-config:PKGCONFIG=${DEFAULT_TARGET}-pkg-config"};
+: ${PKG_WEECHAT_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4 -I${PREFIX_NATIVE}/include/php -I${PREFIX_NATIVE}/include/php/main -I${PREFIX_NATIVE}/include/php/Zend -I${PREFIX_NATIVE}/include/php/TSRM"};
+
+ex_pkg_register "weechat" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/wget.package b/groups.d/241.native_packages_inet.d/wget.package
new file mode 100644
index 00000000..5763212c
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/wget.package
@@ -0,0 +1,17 @@
+: ${PKG_WGET_DEPENDS:="gnutls gpgme libz libidn2 libpsl libiconv libunistring"};
+: ${PKG_WGET_SHA256SUM:=fa2dc35bab5184ecbc46a9ef83def2aaaa3f4c9f3c97d4bd19dcb07d4da637de};
+: ${PKG_WGET_VERSION:=1.24.5};
+: ${PKG_WGET_URL:=https://ftp.gnu.org/gnu/wget/wget-${PKG_WGET_VERSION}.tar.gz};
+: ${PKG_WGET_CONFIGURE_ARGS_EXTRA:="--with-ssl=gnutls --with-gpgme-prefix=${PREFIX_NATIVE}"};
+: ${PKG_WGET_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
+: ${PKG_WGET_PYTHON:=${PREFIX}/bin/python3};
+: ${PKG_WGET_CONFIG_CACHE_EXTRA:="
+ac_cv_path_GPGRT_CONFIG=${PREFIX_NATIVE}/bin/gpgrt-config"};
+: ${PKG_WGET2_DEPENDS:="gnutls gpgme libz libidn2 libpsl bzip2 pcre2 xz zstd"};
+: ${PKG_WGET2_SHA256SUM:=0bb7fa03697bb5b8d05e1b5e15b863440826eb845874c4ffb5e32330f9845db1};
+: ${PKG_WGET2_VERSION:=2.0.1};
+: ${PKG_WGET2_URL:=https://ftp.gnu.org/gnu/wget/wget2-${PKG_WGET2_VERSION}.tar.gz};
+
+ex_pkg_register "wget" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/241.native_packages_inet.d/whois.package b/groups.d/241.native_packages_inet.d/whois.package
new file mode 100644
index 00000000..ba34195c
--- /dev/null
+++ b/groups.d/241.native_packages_inet.d/whois.package
@@ -0,0 +1,12 @@
+: ${PKG_WHOIS_DEPENDS:="libidn2"};
+: ${PKG_WHOIS_SHA256SUM:=b7de4288700951b141420e2b4408f0906eaf4e97409cf5043aee80ef4d31e2b4};
+: ${PKG_WHOIS_VERSION:=5.5.22};
+: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz};
+: ${PKG_WHOIS_IN_TREE:=1};
+: ${PKG_WHOIS_CFLAGS_BUILD:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
+: ${PKG_WHOIS_MAKE_INSTALL_VNAME:=BASEDIR};
+: ${PKG_WHOIS_SUBDIR:=whois-${PKG_WHOIS_VERSION}};
+
+ex_pkg_register "whois" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/aspell.package b/groups.d/251.native_packages_lib.d/aspell.package
new file mode 100644
index 00000000..48ea0d6c
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/aspell.package
@@ -0,0 +1,9 @@
+: ${PKG_ASPELL_DEPENDS:=ncursesw};
+: ${PKG_ASPELL_SHA256SUM:=f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2};
+: ${PKG_ASPELL_VERSION:=0.60.8};
+: ${PKG_ASPELL_URL:=https://ftp.gnu.org/gnu/aspell/aspell-${PKG_ASPELL_VERSION}.tar.gz};
+: ${PKG_ASPELL_LDFLAGS_CONFIGURE_EXTRA:="-ltinfow"};
+
+ex_pkg_register "aspell" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/bearssl.package b/groups.d/251.native_packages_lib.d/bearssl.package
new file mode 100644
index 00000000..47770af2
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/bearssl.package
@@ -0,0 +1,9 @@
+: ${PKG_BEARSSL_SHA256SUM:=6705bba1714961b41a728dfc5debbe348d2966c117649392f8c8139efc83ff14};
+: ${PKG_BEARSSL_VERSION:=0.6};
+: ${PKG_BEARSSL_URL:=https://bearssl.org/bearssl-${PKG_BEARSSL_VERSION}.tar.gz};
+: ${PKG_BEARSSL_IN_TREE:=1};
+: ${PKG_BEARSSL_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
+
+ex_pkg_register "bearssl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/enchant.package b/groups.d/251.native_packages_lib.d/enchant.package
new file mode 100644
index 00000000..58bd8194
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/enchant.package
@@ -0,0 +1,9 @@
+: ${PKG_ENCHANT_DEPENDS:="glib hunspell aspell"};
+: ${PKG_ENCHANT_SHA256SUM:=3da12103f11cf49c3cf2fd2ce3017575c5321a489e5b9bfa81dd91ec413f3891};
+: ${PKG_ENCHANT_VERSION:=2.3.3};
+: ${PKG_ENCHANT_URL:=https://github.com/AbiWord/enchant/releases/download/v${PKG_ENCHANT_VERSION}/enchant-${PKG_ENCHANT_VERSION}.tar.gz};
+: ${PKG_ENCHANT_CXXFLAGS_CONFIGURE_EXTRA:="-std=c++0x"};
+
+ex_pkg_register "enchant" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/fribidi.package b/groups.d/251.native_packages_lib.d/fribidi.package
new file mode 100644
index 00000000..e65e5a90
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/fribidi.package
@@ -0,0 +1,7 @@
+: ${PKG_FRIBIDI_SHA256SUM:=7fa16c80c81bd622f7b198d31356da139cc318a63fc7761217af4130903f54a2};
+: ${PKG_FRIBIDI_VERSION:=1.0.13};
+: ${PKG_FRIBIDI_URL:=https://github.com/fribidi/fribidi/releases/download/v${PKG_FRIBIDI_VERSION}/fribidi-${PKG_FRIBIDI_VERSION}.tar.xz};
+
+ex_pkg_register "fribidi" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/glib.package b/groups.d/251.native_packages_lib.d/glib.package
new file mode 100644
index 00000000..fadf0d3b
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/glib.package
@@ -0,0 +1,9 @@
+: ${PKG_GLIB_DEPENDS:="libffi libz pcre libiconv"};
+: ${PKG_GLIB_SHA256SUM:=d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789};
+: ${PKG_GLIB_VERSION:=2.56.2};
+: ${PKG_GLIB_URL:="https://download.gnome.org/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz https://ftp.pieskovisko.sk/slackware/slackware-current/source/l/glib2/glib-${PKG_GLIB_VERSION}.tar.xz"};
+: ${PKG_GLIB_CONFIGURE_ARGS_EXTRA:="--disable-dtrace --disable-libelf --disable-libmount --with-python=${PREFIX}/bin/python3 --with-libiconv=gnu"};
+
+ex_pkg_register "glib" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/hunspell.package b/groups.d/251.native_packages_lib.d/hunspell.package
new file mode 100644
index 00000000..25b3530b
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/hunspell.package
@@ -0,0 +1,9 @@
+: ${PKG_HUNSPELL_DEPENDS:="readline"};
+: ${PKG_HUNSPELL_SHA256SUM:=b2d9c5369c2cc7f321cb5983fda2dbf007dce3d9e17519746840a6f0c4bf7444};
+: ${PKG_HUNSPELL_VERSION:=1.7.1};
+: ${PKG_HUNSPELL_URL:=https://github.com/hunspell/hunspell/releases/download/v${PKG_HUNSPELL_VERSION}/hunspell-${PKG_HUNSPELL_VERSION}.tar.gz};
+: ${PKG_HUNSPELL_CONFIGURE_ARGS_EXTRA:="--with-ui --with-readline"};
+
+ex_pkg_register "hunspell" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/ivykis.package b/groups.d/251.native_packages_lib.d/ivykis.package
new file mode 100644
index 00000000..b39be3fc
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/ivykis.package
@@ -0,0 +1,8 @@
+: ${PKG_IVYKIS_SHA256SUM:=6ef8ed255814e5068473356877da55d67493eeafd978884cdecc5a3e58067129};
+: ${PKG_IVYKIS_VERSION:=0.42.4};
+: ${PKG_IVYKIS_URL:=https://mirrors.dotsrc.org/debian/pool/main/i/ivykis/ivykis_${PKG_IVYKIS_VERSION}.orig.tar.gz};
+: ${PKG_IVYKIS_SUBDIR=ivykis-${PKG_IVYKIS_VERSION}};
+
+ex_pkg_register "ivykis" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/jansson.package b/groups.d/251.native_packages_lib.d/jansson.package
new file mode 100644
index 00000000..3694eae1
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/jansson.package
@@ -0,0 +1,7 @@
+: ${PKG_JANSSON_SHA256SUM:=f4f377da17b10201a60c1108613e78ee15df6b12016b116b6de42209f47a474f};
+: ${PKG_JANSSON_VERSION:=2.13.1};
+: ${PKG_JANSSON_URL:=https://digip.org/jansson/releases/jansson-${PKG_JANSSON_VERSION}.tar.gz};
+
+ex_pkg_register "jansson" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/kvazaar.package b/groups.d/251.native_packages_lib.d/kvazaar.package
new file mode 100644
index 00000000..d2751228
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/kvazaar.package
@@ -0,0 +1,7 @@
+: ${PKG_KVAZAAR_SHA256SUM:=ca30575026d2f1a1201af4b94697bb0fcd05913388008631dc3332bae94122bd};
+: ${PKG_KVAZAAR_VERSION:=2.3.1};
+: ${PKG_KVAZAAR_URL:=https://github.com/ultravideo/kvazaar/releases/download/v${PKG_KVAZAAR_VERSION}/kvazaar-${PKG_KVAZAAR_VERSION}.tar.xz};
+
+ex_pkg_register "kvazaar" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/lame.package b/groups.d/251.native_packages_lib.d/lame.package
new file mode 100644
index 00000000..29043167
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/lame.package
@@ -0,0 +1,9 @@
+: ${PKG_LAME_SHA256SUM:=ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e};
+: ${PKG_LAME_VERSION:=3.100};
+: ${PKG_LAME_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/lame/lame-${PKG_LAME_VERSION}.tar.gz};
+: ${PKG_LAME_CONFIGURE_ARGS_EXTRA:="--enable-nasm"};
+: ${PKG_LAME_LDFLAGS_CONFIGURE_EXTRA:="-Wl,--as-needed -ltinfo -Wl,--no-as-needed"};
+
+ex_pkg_register "lame" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libao.package b/groups.d/251.native_packages_lib.d/libao.package
new file mode 100644
index 00000000..e8c8cc46
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libao.package
@@ -0,0 +1,11 @@
+: ${PKG_LIBAO_DEPENDS:="w32api w32lib"};
+: ${PKG_LIBAO_SHA256SUM:=03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf};
+: ${PKG_LIBAO_VERSION:=1.2.0};
+: ${PKG_LIBAO_URL:=http://downloads.xiph.org/releases/ao/libao-${PKG_LIBAO_VERSION}.tar.gz};
+: ${PKG_LIBAO_CONFIGURE_ARGS_EXTRA:="--enable-wmm --disable-esd --without-x"};
+: ${PKG_LIBAO_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
+: ${PKG_LIBAO_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lwinmm"}
+
+ex_pkg_register "libao" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libarchive.package b/groups.d/251.native_packages_lib.d/libarchive.package
new file mode 100644
index 00000000..5c6e7228
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libarchive.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBARCHIVE_DEPENDS:="libxml2 xz libiconv bzip2 libmd"};
+: ${PKG_LIBARCHIVE_SHA256SUM:=63e7a7174638fc7d6b79b4c8b0ad954e0f4f45abe7239c1ecb200232aa9a43d2};
+: ${PKG_LIBARCHIVE_VERSION:=3.7.3};
+: ${PKG_LIBARCHIVE_URL:=https://www.libarchive.de/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.xz};
+: ${PKG_LIBARCHIVE_CONFIG_CACHE_LOCAL:="ac_cv_func_lstat_dereferences_slashed_symlink=yes"};
+: ${PKG_LIBARCHIVE_LIBTOOL:=rlibtool};
+
+ex_pkg_register "libarchive" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libass.package b/groups.d/251.native_packages_lib.d/libass.package
new file mode 100644
index 00000000..1c85c986
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libass.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBASS_DEPENDS:="freetype fontconfig harfbuzz fribidi libiconv"};
+: ${PKG_LIBASS_SHA256SUM:=f0da0bbfba476c16ae3e1cfd862256d30915911f7abaa1b16ce62ee653192784};
+: ${PKG_LIBASS_VERSION:=0.17.1};
+: ${PKG_LIBASS_URL:=https://github.com/libass/libass/releases/download/${PKG_LIBASS_VERSION}/libass-${PKG_LIBASS_VERSION}.tar.xz};
+: ${PKG_LIBASS_CONFIGURE_ARGS_EXTRA:="--disable-asm"};
+
+ex_pkg_register "libass" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libassuan.package b/groups.d/251.native_packages_lib.d/libassuan.package
new file mode 100644
index 00000000..1872a149
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libassuan.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBASSUAN_DEPENDS:="libgpg_error"};
+: ${PKG_LIBASSUAN_SHA256SUM:=8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4};
+: ${PKG_LIBASSUAN_VERSION:=2.5.5};
+: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2};
+: ${PKG_LIBASSUAN_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
+
+ex_pkg_register "libassuan" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libatomic_ops.package b/groups.d/251.native_packages_lib.d/libatomic_ops.package
new file mode 100644
index 00000000..f69b0acd
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libatomic_ops.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBATOMIC_OPS_SHA256SUM:=587edf60817f56daf1e1ab38a4b3c729b8e846ff67b4f62a6157183708f099af};
+: ${PKG_LIBATOMIC_OPS_VERSION:=7.6.10};
+: ${PKG_LIBATOMIC_OPS_URL:=https://github.com/ivmai/libatomic_ops/releases/download/v${PKG_LIBATOMIC_OPS_VERSION}/libatomic_ops-${PKG_LIBATOMIC_OPS_VERSION}.tar.gz};
+
+ex_pkg_register "libatomic_ops" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libdmtx.package b/groups.d/251.native_packages_lib.d/libdmtx.package
new file mode 100644
index 00000000..4008a84c
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libdmtx.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBDMTX_SHA256SUM:=686bcfb44e50b96345aa53f41e285f2118a2cf87a333b69b74165a2e7ddca492};
+: ${PKG_LIBDMTX_VERSION:=0.7.4};
+: ${PKG_LIBDMTX_URL:=https://midipix.org/mirror/libdmtx/libdmtx-${PKG_LIBDMTX_VERSION}.tar.gz};
+
+ex_pkg_register "libdmtx" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libedit.package b/groups.d/251.native_packages_lib.d/libedit.package
new file mode 100644
index 00000000..ade3fcf5
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libedit.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBEDIT_DEPENDS:="ncurses"};
+: ${PKG_LIBEDIT_SHA256SUM:=6792a6a992050762edcca28ff3318cdb7de37dccf7bc30db59fcd7017eed13c5};
+: ${PKG_LIBEDIT_VERSION:=20210910-3.1};
+: ${PKG_LIBEDIT_URL:=https://www.thrysoee.dk/editline/libedit-${PKG_LIBEDIT_VERSION}.tar.gz};
+: ${PKG_LIBEDIT_CFLAGS_CONFIGURE_EXTRA:="--include=stdc-predef.h -I${PREFIX_NATIVE}/include/ncurses"};
+
+ex_pkg_register "libedit" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libeditline.package b/groups.d/251.native_packages_lib.d/libeditline.package
new file mode 100644
index 00000000..49db91e3
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libeditline.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBEDITLINE_SHA256SUM:=df223b3333a545fddbc67b49ded3d242c66fadf7a04beb3ada20957fcd1ffc0e};
+: ${PKG_LIBEDITLINE_VERSION:=1.17.1};
+: ${PKG_LIBEDITLINE_URL:=https://github.com/troglobit/editline/releases/download/${PKG_LIBEDITLINE_VERSION}/editline-${PKG_LIBEDITLINE_VERSION}.tar.xz};
+
+ex_pkg_register "libeditline" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libelf.package b/groups.d/251.native_packages_lib.d/libelf.package
new file mode 100644
index 00000000..7b3ef7c1
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libelf.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBELF_SHA256SUM:=591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d};
+: ${PKG_LIBELF_VERSION:=0.8.13};
+: ${PKG_LIBELF_URL:=https://fossies.org/linux/misc/old/libelf-${PKG_LIBELF_VERSION}.tar.gz};
+: ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}"};
+: ${PKG_LIBELF_MAKE_INSTALL_VNAME:=prefix};
+: ${PKG_LIBELF_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libelf/libelf-${PKG_LIBELF_VERSION}.midipix.patch"};
+
+ex_pkg_register "libelf" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libestr.package b/groups.d/251.native_packages_lib.d/libestr.package
new file mode 100644
index 00000000..a32139d1
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libestr.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBESTR_SHA256SUM:=46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024};
+: ${PKG_LIBESTR_VERSION:=0.1.11};
+: ${PKG_LIBESTR_URL:=http://libestr.adiscon.com/files/download/libestr-${PKG_LIBESTR_VERSION}.tar.gz};
+
+ex_pkg_register "libestr" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libevent.package b/groups.d/251.native_packages_lib.d/libevent.package
new file mode 100644
index 00000000..056f8ad8
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libevent.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBEVENT_DEPENDS:="libressl"};
+: ${PKG_LIBEVENT_SHA256SUM:=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb};
+: ${PKG_LIBEVENT_VERSION:=2.1.12-stable};
+: ${PKG_LIBEVENT_URL:=https://github.com/libevent/libevent/releases/download/release-${PKG_LIBEVENT_VERSION}/libevent-${PKG_LIBEVENT_VERSION}.tar.gz};
+: ${PKG_LIBEVENT_CONFIG_CACHE_EXTRA:="ac_pe_target=true"};
+
+ex_pkg_register "libevent" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libexif.package b/groups.d/251.native_packages_lib.d/libexif.package
new file mode 100644
index 00000000..3470ea33
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libexif.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBEXIF_SHA256SUM:=d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae};
+: ${PKG_LIBEXIF_VERSION:=0.6.24};
+: ${PKG_LIBEXIF_URL:=https://github.com/libexif/libexif/releases/download/v${PKG_LIBEXIF_VERSION}/libexif-${PKG_LIBEXIF_VERSION}.tar.bz2};
+
+ex_pkg_register "libexif" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libfastjson.package b/groups.d/251.native_packages_lib.d/libfastjson.package
new file mode 100644
index 00000000..638d502e
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libfastjson.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBFASTJSON_SHA256SUM:=3544c757668b4a257825b3cbc26f800f59ef3c1ff2a260f40f96b48ab1d59e07};
+: ${PKG_LIBFASTJSON_VERSION:=0.99.8};
+: ${PKG_LIBFASTJSON_URL:=http://download.rsyslog.com/libfastjson/libfastjson-${PKG_LIBFASTJSON_VERSION}.tar.gz};
+
+ex_pkg_register "libfastjson" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libfetch.package b/groups.d/251.native_packages_lib.d/libfetch.package
new file mode 100644
index 00000000..2fbb0565
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libfetch.package
@@ -0,0 +1,12 @@
+: ${PKG_LIBFETCH_DEPENDS:="libressl"};
+: ${PKG_LIBFETCH_SHA256SUM:=3226f53d5ad29cc27510db968ef0d37bf4554b8aaaeadcd56e23067213b08943};
+: ${PKG_LIBFETCH_VERSION:=2.33};
+: ${PKG_LIBFETCH_URL:=https://sources.archlinux.org/other/libfetch/libfetch-${PKG_LIBFETCH_VERSION}.tar.gz};
+: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}};
+: ${PKG_LIBFETCH_IN_TREE:=1};
+: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA_LIST:="E=echo:Q=:AR=${DEFAULT_TARGET}-ar:CC=${DEFAULT_NATIVE_CC}:LD=${DEFAULT_NATIVE_CCLD}"};
+: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:="E=echo Q="};
+
+ex_pkg_register "libfetch" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libffi.package b/groups.d/251.native_packages_lib.d/libffi.package
new file mode 100644
index 00000000..21e4d940
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libffi.package
@@ -0,0 +1,13 @@
+: ${PKG_LIBFFI_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37};
+: ${PKG_LIBFFI_VERSION:=3.2.1};
+: ${PKG_LIBFFI_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_VERSION}.tar.gz};
+: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64};
+: ${PKG_LIBFFI_ENV_VARS_EXTRA:="MAKE=make LIBTOOL=slibtool"};
+: ${PKG_LIBFFI_INSTALL_FILES_V2:="
+ +lib/libffi-${PKG_LIBFFI_VERSION}/include/ffi.h=include/%[FNAME]
+ +lib/libffi-${PKG_LIBFFI_VERSION}/include/ffitarget.h=include/%[FNAME]"};
+: ${PKG_LIBFFI_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libffi/libffi-${PKG_LIBFFI_VERSION}.midipix.patch"};
+
+ex_pkg_register "libffi" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libfirm.package b/groups.d/251.native_packages_lib.d/libfirm.package
new file mode 100644
index 00000000..929057f0
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libfirm.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBFIRM_URLS_GIT:="libfirm=https://github.com/lalbornoz/libfirm@main bfirm=${DEFAULT_GITROOT}/compilers/bfirm@main"};
+: ${PKG_LIBFIRM_BUILD_DIR:=build/libfirm};
+: ${PKG_LIBFIRM_CONFIGURE:=bfirm/configure};
+: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../libfirm --prefix="};
+
+ex_pkg_register "libfirm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libflac.package b/groups.d/251.native_packages_lib.d/libflac.package
new file mode 100644
index 00000000..f41cae3d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libflac.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBFLAC_DEPENDS:="libogg libiconv"};
+: ${PKG_LIBFLAC_SHA256SUM:=6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70};
+: ${PKG_LIBFLAC_VERSION:=1.4.3};
+: ${PKG_LIBFLAC_URL:=https://ftp.osuosl.org/pub/xiph/releases/flac/flac-${PKG_LIBFLAC_VERSION}.tar.xz};
+: ${PKG_LIBFLAC_CONFIGURE_ARGS_EXTRA:="--with-ogg=yes --disable-stack-smash-protection"};
+
+ex_pkg_register "libflac" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libgcrypt.package b/groups.d/251.native_packages_lib.d/libgcrypt.package
new file mode 100644
index 00000000..5b6fadac
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libgcrypt.package
@@ -0,0 +1,13 @@
+: ${PKG_LIBGCRYPT_DEPENDS:="libgpg_error"};
+: ${PKG_LIBGCRYPT_SHA256SUM:=8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa};
+: ${PKG_LIBGCRYPT_VERSION:=1.10.3};
+: ${PKG_LIBGCRYPT_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${PKG_LIBGCRYPT_VERSION}.tar.bz2};
+: ${PKG_LIBGCRYPT_CONFIG_CACHE_EXTRA:="
+gcry_cv_broken_visibility_attribute=no
+gcry_cv_visibility_attribute=yes
+ac_cv_path_GPGRT_CONFIG=${PREFIX_NATIVE}/bin/gpgrt-config"};
+: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE} --disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support --disable-amd64-as-feature-detection};
+
+ex_pkg_register "libgcrypt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libglob.package b/groups.d/251.native_packages_lib.d/libglob.package
new file mode 100644
index 00000000..73c19f69
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libglob.package
@@ -0,0 +1,6 @@
+: ${PKG_LIBGLOB_URLS_GIT:=libglob=https://github.com/void-linux/libglob.git@master};
+: ${PKG_LIBGLOB_BUILD_DIR:=libglob};
+
+ex_pkg_register "libglob" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libgpg_error.package b/groups.d/251.native_packages_lib.d/libgpg_error.package
new file mode 100644
index 00000000..122c3d9d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libgpg_error.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBGPG_ERROR_SHA256SUM:=64b078b45ac3c3003d7e352a5e05318880a5778c42331ce1ef33d1a0d9922742};
+: ${PKG_LIBGPG_ERROR_VERSION:=1.41};
+: ${PKG_LIBGPG_ERROR_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${PKG_LIBGPG_ERROR_VERSION}.tar.bz2};
+: ${PKG_LIBGPG_ERROR_FORCE_AUTORECONF:=1};
+: ${PKG_LIBGPG_ERROR_IN_TREE:=1};
+
+ex_pkg_register "libgpg_error" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libgsasl.package b/groups.d/251.native_packages_lib.d/libgsasl.package
new file mode 100644
index 00000000..9211c038
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libgsasl.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBGSASL_DEPENDS:="libgcrypt"};
+: ${PKG_LIBGSASL_SHA256SUM:=f1b553384dedbd87478449775546a358d6f5140c15cccc8fb574136fdc77329f};
+: ${PKG_LIBGSASL_VERSION:=1.10.0};
+: ${PKG_LIBGSASL_URL:=https://ftp.gnu.org/gnu/gsasl/libgsasl-${PKG_LIBGSASL_VERSION}.tar.gz};
+: ${PKG_LIBGSASL_CONFIGURE_ARGS_EXTRA:="--disable-ntlm --disable-gssapi --disable-gs2 --disable-kerberos_v5 --disable-obsolete --with-libgcrypt --with-libgcrypt-prefix=${PREFIX_NATIVE}"};
+
+ex_pkg_register "libgsasl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libiconv.package b/groups.d/251.native_packages_lib.d/libiconv.package
new file mode 100644
index 00000000..a493818d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libiconv.package
@@ -0,0 +1,11 @@
+: ${PKG_LIBICONV_SHA256SUM:=8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313};
+: ${PKG_LIBICONV_VERSION:=1.17};
+: ${PKG_LIBICONV_URL:=https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${PKG_LIBICONV_VERSION}.tar.gz};
+: ${PKG_LIBICONV_CONFIGURE_ARGS_EXTRA:="--enable-extra-encodings"};
+: ${PKG_LIBICONV_INSTALL_FILES_V2:="
+ @../../native/include/iconv.h=%[_prefix]/../x86_64-nt64-midipix/include/iconv.v
+ +%[_files]/lib/pkgconfig/iconv.pc=lib/pkgconfig/iconv.pc"};
+
+ex_pkg_register "libiconv" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libidn.package b/groups.d/251.native_packages_lib.d/libidn.package
new file mode 100644
index 00000000..6cf084e3
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libidn.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBIDN_DEPENDS:="libiconv"};
+: ${PKG_LIBIDN_SHA256SUM:=d6c199dcd806e4fe279360cb4b08349a0d39560ed548ffd1ccadda8cdecb4723};
+: ${PKG_LIBIDN_VERSION:=1.42};
+: ${PKG_LIBIDN_URL:=https://ftp.gnu.org/gnu/libidn/libidn-${PKG_LIBIDN_VERSION}.tar.gz};
+: ${PKG_LIBIDN_CONFIGURE_ARGS_EXTRA:="--disable-java --disable-csharp --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf"};
+
+ex_pkg_register "libidn" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libidn2.package b/groups.d/251.native_packages_lib.d/libidn2.package
new file mode 100644
index 00000000..e17f8411
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libidn2.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBIDN2_DEPENDS:="libunistring libiconv"};
+: ${PKG_LIBIDN2_SHA256SUM:=93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f};
+: ${PKG_LIBIDN2_VERSION:=2.3.4};
+: ${PKG_LIBIDN2_URL:=https://ftp.gnu.org/gnu/libidn/libidn2-${PKG_LIBIDN2_VERSION}.tar.gz};
+
+ex_pkg_register "libidn2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libite.package b/groups.d/251.native_packages_lib.d/libite.package
new file mode 100644
index 00000000..e86a8649
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libite.package
@@ -0,0 +1,6 @@
+: ${PKG_LIBITE_URLS_GIT:=libite=https://github.com/troglobit/libite.git@master};
+: ${PKG_LIBITE_SUBDIR:=libite};
+
+ex_pkg_register "libite" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libjpeg_turbo.package b/groups.d/251.native_packages_lib.d/libjpeg_turbo.package
new file mode 100644
index 00000000..488d44d6
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libjpeg_turbo.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBJPEG_TURBO_SHA256SUM:=22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75};
+: ${PKG_LIBJPEG_TURBO_VERSION:=3.0.1};
+: ${PKG_LIBJPEG_TURBO_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libjpeg-turbo/libjpeg-turbo-${PKG_LIBJPEG_TURBO_VERSION}.tar.gz};
+: ${PKG_LIBJPEG_TURBO_CMAKE_ARGS_EXTRA:="
+ -DWITH_SIMD=OFF
+ -DWITH_JPEG8=ON"};
+
+ex_pkg_register "libjpeg_turbo" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libksba.package b/groups.d/251.native_packages_lib.d/libksba.package
new file mode 100644
index 00000000..8d1b35ea
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libksba.package
@@ -0,0 +1,13 @@
+: ${PKG_LIBKSBA_DEPENDS:="libgpg_error"};
+: ${PKG_LIBKSBA_SHA256SUM:=bbb43f032b9164d86c781ffe42213a83bf4f2fee91455edfa4654521b8b03b6b};
+: ${PKG_LIBKSBA_VERSION:=1.6.4};
+: ${PKG_LIBKSBA_URL:=https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${PKG_LIBKSBA_VERSION}.tar.bz2};
+: ${PKG_LIBKSBA_CONFIG_CACHE_EXTRA:="
+ksba_cv_broken_visibility_attribute=no
+ksba_cv_visibility_attribute=yes
+ac_cv_path_GPGRT_CONFIG=${PREFIX_NATIVE}/bin/gpgrt-config"};
+: ${PKG_LIBKSBA_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
+
+ex_pkg_register "libksba" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libmad.package b/groups.d/251.native_packages_lib.d/libmad.package
new file mode 100644
index 00000000..3a017aab
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libmad.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBMAD_SHA256SUM:=bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690};
+: ${PKG_LIBMAD_VERSION:=0.15.1b};
+: ${PKG_LIBMAD_URL:=ftp://ftp.mars.org/pub/mpeg/libmad-${PKG_LIBMAD_VERSION}.tar.gz};
+: ${PKG_LIBMAD_CONFIGURE_ARGS_EXTRA:="--enable-fpm=64bit --enable-accuracy"};
+
+ex_pkg_register "libmad" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libmd.package b/groups.d/251.native_packages_lib.d/libmd.package
new file mode 100644
index 00000000..1a16d938
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libmd.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBMD_SHA256SUM:=1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332};
+: ${PKG_LIBMD_VERSION:=1.1.0};
+: ${PKG_LIBMD_URL:=https://archive.hadrons.org/software/libmd/libmd-${PKG_LIBMD_VERSION}.tar.xz};
+
+ex_pkg_register "libmd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libmp3splt.package b/groups.d/251.native_packages_lib.d/libmp3splt.package
new file mode 100644
index 00000000..d045785d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libmp3splt.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBMP3SPLT_SHA256SUM:=30eed64fce58cb379b7cc6a0d8e545579cb99d0f0f31eb00b9acc8aaa1b035dc};
+: ${PKG_LIBMP3SPLT_DEPENDS:="pcre libflac libogg libvorbis libmad"};
+: ${PKG_LIBMP3SPLT_VERSION:=0.9.2};
+: ${PKG_LIBMP3SPLT_URL:=https://ftp.fau.de/macports/distfiles/libmp3splt/libmp3splt-${PKG_LIBMP3SPLT_VERSION}.tar.gz};
+: ${PKG_LIBMP3SPLT_CONFIGURE_ARGS_EXTRA:="--disable-cutter --disable-id3tag --disable-optimise --with-ogg=${PREFIX_NATIVE} --with-vorbis=${PREFIX_NATIVE} --with-mad=${PREFIX_NATIVE}"};
+: ${PKG_LIBMP3SPLT_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "libmp3splt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libmspack.package b/groups.d/251.native_packages_lib.d/libmspack.package
new file mode 100644
index 00000000..ba376d17
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libmspack.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBMSPACK_SHA256SUM:=70dd1fb2f0aecc36791b71a1e1840e62173079eadaa081192d1c323a0eeea21b};
+: ${PKG_LIBMSPACK_VERSION:=0.11alpha};
+: ${PKG_LIBMSPACK_URL:=https://www.cabextract.org.uk/libmspack/libmspack-${PKG_LIBMSPACK_VERSION}.tar.gz};
+
+ex_pkg_register "libmspack" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libogg.package b/groups.d/251.native_packages_lib.d/libogg.package
new file mode 100644
index 00000000..dde1e775
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libogg.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBOGG_SHA256SUM:=c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705};
+: ${PKG_LIBOGG_VERSION:=1.3.5};
+: ${PKG_LIBOGG_URL:=https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-${PKG_LIBOGG_VERSION}.tar.xz};
+
+ex_pkg_register "libogg" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libpcap.package b/groups.d/251.native_packages_lib.d/libpcap.package
new file mode 100644
index 00000000..2e9a5b48
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libpcap.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBPCAP_SHA256SUM:=8ac670de8dd6eff39441580c67f0520f326773422bbf89fdffcd269bd0cfddde};
+: ${PKG_LIBPCAP_VERSION:=1.9.1};
+: ${PKG_LIBPCAP_URL:=https://github.com/the-tcpdump-group/libpcap/archive/libpcap-${PKG_LIBPCAP_VERSION}.tar.gz};
+: ${PKG_LIBPCAP_CONFIG_CACHE_EXTRA:="ac_cv_lbl_unaligned_fail=no"};
+: ${PKG_LIBPCAP_SUBDIR:="libpcap-libpcap-${PKG_LIBPCAP_VERSION}"};
+
+ex_pkg_register "libpcap" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libpng.package b/groups.d/251.native_packages_lib.d/libpng.package
new file mode 100644
index 00000000..cb6f54db
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libpng.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBPNG_DEPENDS:="libz"};
+: ${PKG_LIBPNG_SHA256SUM:=6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c};
+: ${PKG_LIBPNG_VERSION:=1.6.43};
+: ${PKG_LIBPNG_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libpng/libpng-${PKG_LIBPNG_VERSION}.tar.xz};
+
+ex_pkg_register "libpng" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libpsl.package b/groups.d/251.native_packages_lib.d/libpsl.package
new file mode 100644
index 00000000..7c72f724
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libpsl.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBPSL_DEPENDS:="libidn2 libunistring libiconv"}
+: ${PKG_LIBPSL_SHA256SUM:=e35991b6e17001afa2c0ca3b10c357650602b92596209b7492802f3768a6285f};
+: ${PKG_LIBPSL_VERSION:=0.21.2};
+: ${PKG_LIBPSL_URL:=https://github.com/rockdaboot/libpsl/releases/download/${PKG_LIBPSL_VERSION}/libpsl-${PKG_LIBPSL_VERSION}.tar.gz};
+
+ex_pkg_register "libpsl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libredwg.package b/groups.d/251.native_packages_lib.d/libredwg.package
new file mode 100644
index 00000000..a419f765
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libredwg.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBREDWG_SHA256SUM:=dd906f59d71b26c13fd2420f50fc50bea666fd54acc764d8c344f7f89d5ab94e};
+: ${PKG_LIBREDWG_VERSION:=0.13};
+: ${PKG_LIBREDWG_URL:=https://ftp.gnu.org/gnu/libredwg/libredwg-${PKG_LIBREDWG_VERSION}.tar.xz};
+: ${PKG_LIBREDWG_CONFIGURE_ARGS_EXTRA:="--disable-python --disable-bindings --disable-werror --enable-compile-warnings=yes"};
+
+ex_pkg_register "libredwg" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libressl.package b/groups.d/251.native_packages_lib.d/libressl.package
new file mode 100644
index 00000000..18ddfe7e
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libressl.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBRESSL_SHA256SUM:=6da0b954695f7ee62b03f64200a8a4f02af93717b60cce04ab6c8df262c07a51};
+: ${PKG_LIBRESSL_VERSION:=3.9.1};
+: ${PKG_LIBRESSL_URL:=https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_VERSION}.tar.gz};
+: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm --enable-nc};
+
+ex_pkg_register "libressl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libsasl2.package b/groups.d/251.native_packages_lib.d/libsasl2.package
new file mode 100644
index 00000000..dd954fff
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libsasl2.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBSASL2_DEPENDS:="libressl"};
+: ${PKG_LIBSASL2_SHA256SUM:=7ccfc6abd01ed67c1a0924b353e526f1b766b21f42d4562ee635a8ebfc5bb38c};
+: ${PKG_LIBSASL2_VERSION:=2.1.28};
+: ${PKG_LIBSASL2_URL:="https://ftp.osuosl.org/pub/blfs/conglomeration/cyrus-sasl/cyrus-sasl-${PKG_LIBSASL2_VERSION}.tar.gz"};
+: ${PKG_LIBSASL2_CONFIGURE_ARGS_EXTRA:="--cache-file=../obj/config.cache"};
+: ${PKG_LIBSASL2_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "libsasl2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libshine.package b/groups.d/251.native_packages_lib.d/libshine.package
new file mode 100644
index 00000000..483815ce
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libshine.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBSHINE_SHA256SUM:=58e61e70128cf73f88635db495bfc17f0dde3ce9c9ac070d505a0cd75b93d384};
+: ${PKG_LIBSHINE_VERSION:=3.1.1};
+: ${PKG_LIBSHINE_URL:=https://github.com/toots/shine/releases/download/${PKG_LIBSHINE_VERSION}/shine-${PKG_LIBSHINE_VERSION}.tar.gz};
+: ${PKG_LIBSHINE_IN_TREE:=1};
+
+ex_pkg_register "libshine" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libsndfile.package b/groups.d/251.native_packages_lib.d/libsndfile.package
new file mode 100644
index 00000000..18d6a237
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libsndfile.package
@@ -0,0 +1,11 @@
+: ${PKG_LIBSNDFILE_DEPENDS:="mpg123 lame libflac libogg libzip opus sqlite3"};
+: ${PKG_LIBSNDFILE_SHA256SUM:=0e30e7072f83dc84863e2e55f299175c7e04a5902ae79cfb99d4249ee8f6d60a};
+: ${PKG_LIBSNDFILE_VERSION:=1.2.0};
+: ${PKG_LIBSNDFILE_URL:=https://github.com/libsndfile/libsndfile/releases/download/${PKG_LIBSNDFILE_VERSION}/libsndfile-${PKG_LIBSNDFILE_VERSION}.tar.xz};
+: ${PKG_LIBSNDFILE_CONFIGURE_ARGS_EXTRA:="--disable-alsa"};
+: ${PKG_LIBSNDFILE_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
+: ${PKG_LIBSNDFILE_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32 -lwinmm"};
+
+ex_pkg_register "libsndfile" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libsolv.package b/groups.d/251.native_packages_lib.d/libsolv.package
new file mode 100644
index 00000000..3f05b8b1
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libsolv.package
@@ -0,0 +1,29 @@
+: ${PKG_LIBSOLV_DEPENDS:="bzip2 libxml2 libz musl_compat rpm"};
+: ${PKG_LIBSOLV_SHA256SUM:=153eb48814ffdbac396c98126037cf45c07e2b7087a61f86eb18a75ea1ab134b};
+: ${PKG_LIBSOLV_VERSION:=0.6.34};
+: ${PKG_LIBSOLV_URL:=https://github.com/openSUSE/libsolv/archive/${PKG_LIBSOLV_VERSION}.tar.gz};
+: ${PKG_LIBSOLV_SUBDIR:=libsolv-${PKG_LIBSOLV_VERSION}};
+: ${PKG_LIBSOLV_CMAKE_ARGS_EXTRA:="
+ -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
+ -DENABLE_APPDATA:BOOL=ON
+ -DENABLE_BZIP2_COMPRESSION:BOOL=ON
+ -DENABLE_COMPLEX_DEPS:BOOL=ON
+ -DENABLE_COMPS:BOOL=ON
+ -DENABLE_LZMA_COMPRESSION:BOOL=ON
+ -DENABLE_RPMDB:BOOL=ON
+ -DENABLE_RPMDB_BYRPMHEADER:BOOL=ON
+ -DENABLE_RPMDB_LIBRPM:BOOL=ON
+ -DENABLE_RPMMD:BOOL=ON
+ -DENABLE_RPMPKG_LIBRPM:BOOL=ON
+ -DFEDORA=1
+ -DLIBXML2_LIBRARIES=${PREFIX_NATIVE}/lib/libxml2.lib.a
+ -DLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
+ -DRPMIO_LIBRARY=${PREFIX_NATIVE}/lib/librpmio.so
+ -DWITH_LIBXML2:BOOL=ON
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
+
+ex_pkg_register "libsolv" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libssh.package b/groups.d/251.native_packages_lib.d/libssh.package
new file mode 100644
index 00000000..9ad07b5d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libssh.package
@@ -0,0 +1,15 @@
+: ${PKG_LIBSSH_DEPENDS:="libz"};
+: ${PKG_LIBSSH_SHA256SUM:=1861d498f5b6f1741b6abc73e608478491edcf9c9d4b6630eef6e74596de9dc1};
+: ${PKG_LIBSSH_VERSION:=0.10.6};
+: ${PKG_LIBSSH_URL:=https://www.libssh.org/files/${PKG_LIBSSH_VERSION%.*}/libssh-${PKG_LIBSSH_VERSION}.tar.xz};
+: ${PKG_LIBSSH_SUBDIR:=libssh-${PKG_LIBSSH_VERSION}};
+: ${PKG_LIBSSH_CMAKE_ARGS_EXTRA:="
+ -DWITH_EXAMPLES=OFF
+ -DWITH_GCRYPT=ON
+ -DWITH_SYMBOL_VERSIONING=OFF
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.lib.a"};
+
+ex_pkg_register "libssh" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libstrophe.package b/groups.d/251.native_packages_lib.d/libstrophe.package
new file mode 100644
index 00000000..fedcc09c
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libstrophe.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBSTROPHE_DEPENDS:="libressl expat"};
+: ${PKG_LIBSTROPHE_SHA256SUM:=b3c79b6deeafafc0f622ba3ee3ca67e9a8e7d75edb102588c6b6f52b38c9fa4b};
+: ${PKG_LIBSTROPHE_VERSION=0.12.2};
+: ${PKG_LIBSTROPHE_URL:=https://github.com/strophe/libstrophe/releases/download/${PKG_LIBSTROPHE_VERSION}/libstrophe-${PKG_LIBSTROPHE_VERSION}.tar.xz};
+
+ex_pkg_register "libstrophe" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libtasn1.package b/groups.d/251.native_packages_lib.d/libtasn1.package
new file mode 100644
index 00000000..9257cf01
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libtasn1.package
@@ -0,0 +1,12 @@
+: ${PKG_LIBTASN1_SHA256SUM:=1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a};
+: ${PKG_LIBTASN1_VERSION:=4.19.0};
+: ${PKG_LIBTASN1_URL:=https://ftp.gnu.org/gnu/libtasn1/libtasn1-${PKG_LIBTASN1_VERSION}.tar.gz};
+: ${PKG_LIBTASN1_CONFIGURE_ARGS_EXTRA:="--disable-static"};
+: ${PKG_LIBTASN1_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
+: ${PKG_LIBTASN1_LIBTOOL=rdlibtool};
+: ${PKG_LIBTASN1_CONFIG_CACHE_EXTRA:="
+gl_cv_ld_output_def=no"};
+
+ex_pkg_register "libtasn1" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libtelnet.package b/groups.d/251.native_packages_lib.d/libtelnet.package
new file mode 100644
index 00000000..d81d03f2
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libtelnet.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBTELNET_DEPENDS:="libz"};
+: ${PKG_LIBTELNET_SHA256SUM:=d2f01a9dc0cc01777844b6d27f0f836dad9a4b9a32a31c7bbde0762480262f25};
+: ${PKG_LIBTELNET_VERSION:=0.23};
+: ${PKG_LIBTELNET_URL:=https://github.com/seanmiddleditch/libtelnet/releases/download/${PKG_LIBTELNET_VERSION}/libtelnet-${PKG_LIBTELNET_VERSION}.tar.gz};
+
+ex_pkg_register "libtelnet" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libtheora.package b/groups.d/251.native_packages_lib.d/libtheora.package
new file mode 100644
index 00000000..d2ff9fbf
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libtheora.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBTHEORA_DEPENDS:="libvorbis"};
+: ${PKG_LIBTHEORA_SHA256SUM:=b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc};
+: ${PKG_LIBTHEORA_VERSION:=1.1.1};
+: ${PKG_LIBTHEORA_URL:=http://downloads.xiph.org/releases/theora/libtheora-${PKG_LIBTHEORA_VERSION}.tar.bz2};
+: ${PKG_LIBTHEORA_IN_TREE:=1};
+: ${PKG_LIBTHEORA_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "libtheora" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libtirpc.package b/groups.d/251.native_packages_lib.d/libtirpc.package
new file mode 100644
index 00000000..98c75a92
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libtirpc.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBTIRPC_DEPENDS:="musl_compat"};
+: ${PKG_LIBTIRPC_SHA256SUM:=245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17};
+: ${PKG_LIBTIRPC_VERSION:=1.3.1};
+: ${PKG_LIBTIRPC_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libtirpc/libtirpc-${PKG_LIBTIRPC_VERSION}.tar.bz2};
+: ${PKG_LIBTIRPC_CONFIGURE_ARGS_EXTRA:="--disable-gssapi"};
+
+ex_pkg_register "libtirpc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libudns.package b/groups.d/251.native_packages_lib.d/libudns.package
new file mode 100644
index 00000000..db7ea97c
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libudns.package
@@ -0,0 +1,5 @@
+: ${PKG_LIBUDNS_URLS_GIT:=libudns=https://github.com/shadowsocks/libudns.git@master};
+
+ex_pkg_register "libudns" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libunistring.package b/groups.d/251.native_packages_lib.d/libunistring.package
new file mode 100644
index 00000000..6284c077
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libunistring.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBUNISTRING_SHA256SUM:=827c1eb9cb6e7c738b171745dac0888aa58c5924df2e59239318383de0729b98};
+: ${PKG_LIBUNISTRING_VERSION:=1.1};
+: ${PKG_LIBUNISTRING_URL:=https://ftp.gnu.org/gnu/libunistring/libunistring-${PKG_LIBUNISTRING_VERSION}.tar.xz};
+
+ex_pkg_register "libunistring" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libuv.package b/groups.d/251.native_packages_lib.d/libuv.package
new file mode 100644
index 00000000..f03d9f78
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libuv.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBUV_SHA256SUM:=7cbcf2017e7116cf9da8ec1c6a146d578536b1e479458438873c991f984a53d7};
+: ${PKG_LIBUV_VERSION:=1.19.2};
+: ${PKG_LIBUV_URL:=https://dist.libuv.org/dist/v${PKG_LIBUV_VERSION}/libuv-v${PKG_LIBUV_VERSION}.tar.gz};
+
+ex_pkg_register "libuv" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libvorbis.package b/groups.d/251.native_packages_lib.d/libvorbis.package
new file mode 100644
index 00000000..94bdcbe9
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libvorbis.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBVORBIS_DEPENDS:="libogg"};
+: ${PKG_LIBVORBIS_SHA256SUM:=b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b};
+: ${PKG_LIBVORBIS_VERSION:=1.3.7};
+: ${PKG_LIBVORBIS_URL:=https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-${PKG_LIBVORBIS_VERSION}.tar.xz};
+
+ex_pkg_register "libvorbis" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libwebp.package b/groups.d/251.native_packages_lib.d/libwebp.package
new file mode 100644
index 00000000..3101ed33
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libwebp.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBWEBP_DEPENDS:="tiff giflib libpng"};
+: ${PKG_LIBWEBP_SHA256SUM:=2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4};
+: ${PKG_LIBWEBP_VERSION:=1.3.2};
+: ${PKG_LIBWEBP_URL:=https://sources.voidlinux.org/libwebp-${PKG_LIBWEBP_VERSION}/libwebp-${PKG_LIBWEBP_VERSION}.tar.gz};
+: ${PKG_LIBWEBP_CONFIGURE_ARGS_EXTRA:="--disable-gl --disable-sdl --disable-sse4.1 --enable-libwebpdecoder --enable-libwebpextras --with-pnglibdir=${PREFIX_NATIVE} --with-pngincludedir=${PREFIX_NATIVE}"};
+
+ex_pkg_register "libwebp" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libxml2.package b/groups.d/251.native_packages_lib.d/libxml2.package
new file mode 100644
index 00000000..dcb813db
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libxml2.package
@@ -0,0 +1,12 @@
+: ${PKG_LIBXML2_DEPENDS:="libz xz libiconv"};
+: ${PKG_LIBXML2_SHA256SUM:=889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb};
+: ${PKG_LIBXML2_VERSION:=2.12.6};
+: ${PKG_LIBXML2_URL:=https://download.gnome.org/sources/libxml2/${PKG_LIBXML2_VERSION%.*}/libxml2-${PKG_LIBXML2_VERSION}.tar.xz};
+: ${PKG_LIBXML2_CONFIGURE_ARGS_EXTRA:="--with-python=no"};
+: ${PKG_LIBXML2_INSTALL_FILES_V2:="
+ +%[_files]/bin/\%[_target]-xml2-config=bin/%[_target]-xml2-config
+ m0755=bin/%[_target]-xml2-config"};
+
+ex_pkg_register "libxml2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libxslt.package b/groups.d/251.native_packages_lib.d/libxslt.package
new file mode 100644
index 00000000..e174a752
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libxslt.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBXSLT_DEPENDS:="libxml2 libgcrypt"};
+: ${PKG_LIBXSLT_SHA256SUM:=2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0};
+: ${PKG_LIBXSLT_VERSION:=1.1.39};
+: ${PKG_LIBXSLT_URL:=https://sources.voidlinux.org/libxslt-${PKG_LIBXSLT_VERSION}/libxslt-${PKG_LIBXSLT_VERSION}.tar.xz};
+: ${PKG_LIBXSLT_CONFIGURE_ARGS_EXTRA:="--without-python"};
+: ${PKG_LIBXSLT_FORCE_AUTORECONF:=1};
+
+ex_pkg_register "libxslt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libz.package b/groups.d/251.native_packages_lib.d/libz.package
new file mode 100644
index 00000000..a8ea2280
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libz.package
@@ -0,0 +1,10 @@
+: ${PKG_LIBZ_SHA256SUM:=abcc2831b7a0e891d0875fa852e9b9510b420d843d3d20aad010f65493fe4f7b};
+: ${PKG_LIBZ_VERSION:=1.2.8.2015.12.26};
+: ${PKG_LIBZ_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_VERSION}.tar.gz};
+: ${PKG_LIBZ_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
+: ${PKG_LIBZ_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET} --enable-shared"};
+: ${PKG_LIBZ_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+
+ex_pkg_register "libz" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/libzip.package b/groups.d/251.native_packages_lib.d/libzip.package
new file mode 100644
index 00000000..57da5988
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/libzip.package
@@ -0,0 +1,23 @@
+: ${PKG_LIBZIP_DEPENDS:="bzip2 gnutls libz musl_fts nettle"};
+: ${PKG_LIBZIP_SHA256SUM:=a020dc1b17a79faa748e43a05f8605d65e403813e8e97ad3a300a90ddba097ac};
+: ${PKG_LIBZIP_VERSION:=1.7.1};
+: ${PKG_LIBZIP_URL:=https://libzip.org/download/libzip-${PKG_LIBZIP_VERSION}.tar.xz};
+: ${PKG_LIBZIP_CMAKE_ARGS_EXTRA:="
+ -DBZIP2_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
+ -DENABLE_GNUTLS=:BOOL=ON
+ -DENABLE_MBEDTLS=:BOOL=OFF
+ -DGNUTLS_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DGNUTLS_LIBRARY=${PREFIX_NATIVE}/lib/libgnutls.lib.a
+ -DLIBLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DLIBLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
+ -DNETTLE_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DNETTLE_LIBRARY=${PREFIX_NATIVE}/lib/libnettle.lib.a
+ -DOPENSSL_CRYPTO_LIBRARY=${PREFIX_NATIVE}/lib/libcrypto.lib.a
+ -DOPENSSL_SSL_LIBRARY=${PREFIX_NATIVE}/lib/libssl.lib.a
+ -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
+ -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
+
+ex_pkg_register "libzip" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/lzlib.package b/groups.d/251.native_packages_lib.d/lzlib.package
new file mode 100644
index 00000000..8537b008
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/lzlib.package
@@ -0,0 +1,9 @@
+: ${PKG_LZLIB_SHA256SUM:=5acac8714ed4f306020bae660dddce706e5f8a795863679037da9fe6bf4dcf6f};
+: ${PKG_LZLIB_VERSION:=1.14};
+: ${PKG_LZLIB_URL:=http://download.savannah.gnu.org/releases/lzip/lzlib/lzlib-${PKG_LZLIB_VERSION}.tar.gz};
+: ${PKG_LZLIB_CONFIGURE_ARGS_LIST:="--prefix=:CC=${DEFAULT_NATIVE_CC}:AR=${DEFAULT_TARGET}-ar"};
+: ${PKG_LZLIB_CFLAGS_BUILD:=${DEFAULT_CFLAGS}};
+
+ex_pkg_register "lzlib" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/lzo.package b/groups.d/251.native_packages_lib.d/lzo.package
new file mode 100644
index 00000000..219fa1c3
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/lzo.package
@@ -0,0 +1,7 @@
+: ${PKG_LZO_SHA256SUM:=c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072};
+: ${PKG_LZO_VERSION:=2.10};
+: ${PKG_LZO_URL:=https://www.oberhumer.com/opensource/lzo/download/lzo-${PKG_LZO_VERSION}.tar.gz};
+
+ex_pkg_register "lzo" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/nettle.package b/groups.d/251.native_packages_lib.d/nettle.package
new file mode 100644
index 00000000..86acfdb4
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/nettle.package
@@ -0,0 +1,11 @@
+: ${PKG_NETTLE_SHA256SUM:=364f3e2b77cd7dcde83fd7c45219c834e54b0c75e428b6f894a23d12dd41cbfe};
+: ${PKG_NETTLE_VERSION:=3.8.1};
+: ${PKG_NETTLE_URL:=https://ftp.gnu.org/gnu/nettle/nettle-${PKG_NETTLE_VERSION}.tar.gz};
+: ${PKG_NETTLE_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
+: ${PKG_NETTLE_CONFIG_CACHE_EXTRA:="nettle_cv_asm_underscore=no"};
+: ${PKG_NETTLE_INSTALL_FILES_V2:="m0755=lib/%<lib*.so>"};
+: ${PKG_NETTLE_MAKEFLAGS_PARALLELISE:="-j1"};
+
+ex_pkg_register "nettle" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/onig.package b/groups.d/251.native_packages_lib.d/onig.package
new file mode 100644
index 00000000..b836eb9d
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/onig.package
@@ -0,0 +1,7 @@
+: ${PKG_ONIG_SHA256SUM:=60162bd3b9fc6f4886d4c7a07925ffd374167732f55dce8c491bfd9cd818a6cf};
+: ${PKG_ONIG_VERSION:=6.9.9};
+: ${PKG_ONIG_URL:=https://github.com/kkos/oniguruma/releases/download/v${PKG_ONIG_VERSION}/onig-${PKG_ONIG_VERSION}.tar.gz};
+
+ex_pkg_register "onig" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/opus.package b/groups.d/251.native_packages_lib.d/opus.package
new file mode 100644
index 00000000..5950d8bd
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/opus.package
@@ -0,0 +1,8 @@
+: ${PKG_OPUS_SHA256SUM:=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d};
+: ${PKG_OPUS_VERSION:=1.3.1};
+: ${PKG_OPUS_URL:=https://ftp.osuosl.org/pub/xiph/releases/opus/opus-${PKG_OPUS_VERSION}.tar.gz};
+: ${PKG_OPUS_CONFIGURE_ARGS_EXTRA:="--disable-intrinsics --disable-asm --disable-hardening"};
+
+ex_pkg_register "opus" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/readline.package b/groups.d/251.native_packages_lib.d/readline.package
new file mode 100644
index 00000000..772d8fcf
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/readline.package
@@ -0,0 +1,18 @@
+: ${PKG_READLINE_DEPENDS:="ncurses ncursestw ncursesw"};
+: ${PKG_READLINE_SHA256SUM:=3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35};
+: ${PKG_READLINE_VERSION:=8.2};
+: ${PKG_READLINE_URL:=https://ftp.gnu.org/gnu/readline/readline-${PKG_READLINE_VERSION}.tar.gz};
+: ${PKG_READLINE_CFLAGS_CONFIGURE:="${DEFAULT_CFLAGS:+${DEFAULT_CFLAGS} }-I${PREFIX_NATIVE}/include"};
+: ${PKG_READLINE_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
+: ${PKG_READLINE_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET} --with-curses"};
+: ${PKG_READLINE_LDFLAGS_CONFIGURE:="${DEFAULT_LDFLAGS:+${DEFAULT_LDFLAGS} }-L${PREFIX_NATIVE}/lib"};
+: ${PKG_READLINE_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
+: ${PKG_READLINE_CONFIG_CACHE_EXTRA:="
+bash_cv_func_strcoll_broken=yes
+bash_cv_func_ctype_nonascii=no
+bash_cv_must_reinstall_sighandlers=no
+bash_cv_func_sigsetjmp=yes"};
+
+ex_pkg_register "readline" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/sdl1.package b/groups.d/251.native_packages_lib.d/sdl1.package
new file mode 100644
index 00000000..21576802
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/sdl1.package
@@ -0,0 +1,35 @@
+: ${PKG_SDL1_DEPENDS:="w32api w32lib"};
+: ${PKG_SDL1_SHA256SUM:=d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00};
+: ${PKG_SDL1_VERSION:=1.2.15};
+: ${PKG_SDL1_URL:=https://www.libsdl.org/release/SDL-${PKG_SDL1_VERSION}.tar.gz};
+: ${PKG_SDL1_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports"};
+: ${PKG_SDL1_IN_TREE:=1};
+: ${PKG_SDL1_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
+: ${PKG_SDL1_NET_DEPENDS:="sdl1"};
+: ${PKG_SDL1_NET_SHA256SUM:=5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4};
+: ${PKG_SDL1_NET_VERSION:=1.2.8};
+: ${PKG_SDL1_NET_URL:=https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PKG_SDL1_NET_VERSION}.tar.gz};
+: ${PKG_SDL1_NET_CONFIGURE_ARGS_EXTRA:="--disable-gui"};
+: ${PKG_SDL1_MIXER_DEPENDS:="sdl1"};
+: ${PKG_SDL1_MIXER_SHA256SUM:=1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a};
+: ${PKG_SDL1_MIXER_VERSION:=1.2.12};
+: ${PKG_SDL1_MIXER_URL:=https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PKG_SDL1_MIXER_VERSION}.tar.gz};
+: ${PKG_SDL1_MIXER_CONFIGURE_ARGS_EXTRA:="--enable-music-mod=no --enable-music-mod-modplug=no --enable-music-midi=no --enable-music-fluidsynth-midi=no --enable-music-mp3=no"};
+: ${PKG_SDL1_MIXER_LDFLAGS_CONFIGURE:=-L${PREFIX_NATIVE}/lib};
+: ${PKG_SDL1_IMAGE_DEPENDS:="libz sdl1 libpng libjpeg_turbo tiff"};
+: ${PKG_SDL1_IMAGE_SHA256SUM:=0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699};
+: ${PKG_SDL1_IMAGE_VERSION:=1.2.12};
+: ${PKG_SDL1_IMAGE_URL:=https://www.libsdl.org/projects/SDL_image/release/SDL_image-${PKG_SDL1_IMAGE_VERSION}.tar.gz};
+: ${PKG_SDL1_IMAGE_CONFIGURE_ARGS_EXTRA:="--enable-jpg-shared --enable-png-shared --enable-tif-shared --disable-webp --disable-webp-shared"};
+: ${PKG_SDL1_TTF_DEPENDS:="sdl1 freetype libiconv"};
+: ${PKG_SDL1_TTF_SHA256SUM:=724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7};
+: ${PKG_SDL1_TTF_VERSION:=2.0.11};
+: ${PKG_SDL1_TTF_URL:=https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PKG_SDL1_TTF_VERSION}.tar.gz};
+: ${PKG_SDL1_TTF_CONFIGURE_ARGS_EXTRA:="--with-freetype-prefix=${PREFIX_NATIVE} --without-x"};
+: ${PKG_SDL1_TTF_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
+: ${PKG_SDL1_TTF_LDFLAGS_CONFIGURE_EXTRA:="-liconv"};
+: ${PKG_SDL1_TTF_IN_TREE:=1};
+
+ex_pkg_register "sdl1" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/sdl2.package b/groups.d/251.native_packages_lib.d/sdl2.package
new file mode 100644
index 00000000..381621bf
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/sdl2.package
@@ -0,0 +1,30 @@
+: ${PKG_SDL2_DEPENDS:="w32api w32lib"};
+: ${PKG_SDL2_SHA256SUM:=349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863};
+: ${PKG_SDL2_VERSION:=2.0.12};
+: ${PKG_SDL2_URL:=https://www.libsdl.org/release/SDL2-${PKG_SDL2_VERSION}.tar.gz};
+: ${PKG_SDL2_CONFIG_CACHE_EXTRA:="ac_cv_func_strtod=yes"};
+: ${PKG_SDL2_CONFIGURE_ARGS_EXTRA:="--disable-video-vulkan --disable-video-opengles2 --disable-alsa --disable-static --disable-power"};
+: ${PKG_SDL2_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_UTF16_DEFAULT -DUNICODE -DWINVER=0x0601 -I${PREFIX_NATIVE}/include/w32api.ports -DSDL_DISABLE_WINDOWS_IME"};
+: ${PKG_SDL2_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32 -luser32 -lgdi32 -limm32 -lshell32 -lu16ports"};
+: ${PKG_SDL2_MAKEFLAGS_PARALLELISE:="-j1"};
+: ${PKG_SDL2_IN_TREE:=1};
+: ${PKG_SDL2_FORCE_AUTORECONF:=1};
+: ${PKG_SDL2_IMAGE_DEPENDS:="sdl2 libz libpng libjpeg_turbo tiff"};
+: ${PKG_SDL2_IMAGE_SHA256SUM:=bdd5f6e026682f7d7e1be0b6051b209da2f402a2dd8bd1c4bd9c25ad263108d0};
+: ${PKG_SDL2_IMAGE_VERSION:=2.0.5};
+: ${PKG_SDL2_IMAGE_URL:=https://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PKG_SDL2_IMAGE_VERSION}.tar.gz};
+: ${PKG_SDL2_TTF_DEPENDS:="sdl2 freetype"};
+: ${PKG_SDL2_TTF_SHA256SUM:=a9eceb1ad88c1f1545cd7bd28e7cbc0b2c14191d40238f531a15b01b1b22cd33};
+: ${PKG_SDL2_TTF_VERSION:=2.0.15};
+: ${PKG_SDL2_TTF_URL:=https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PKG_SDL2_TTF_VERSION}.tar.gz};
+: ${PKG_SDL2_TTF_CONFIGURE_ARGS_EXTRA:="--without-x"};
+: ${PKG_SDL2_TTF_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
+: ${PKG_SDL2_NET_DEPENDS:="sdl2"};
+: ${PKG_SDL2_NET_SHA256SUM:=15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21};
+: ${PKG_SDL2_NET_VERSION:=2.0.1};
+: ${PKG_SDL2_NET_URL:=https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PKG_SDL2_NET_VERSION}.tar.gz};
+: ${PKG_SDL2_NET_CONFIGURE_ARGS_EXTRA:="--disable-gui"};
+
+ex_pkg_register "sdl2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/twolame.package b/groups.d/251.native_packages_lib.d/twolame.package
new file mode 100644
index 00000000..10a6186c
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/twolame.package
@@ -0,0 +1,8 @@
+: ${PKG_TWOLAME_DEPENDS:="libsndfile"};
+: ${PKG_TWOLAME_SHA256SUM:=cc35424f6019a88c6f52570b63e1baf50f62963a3eac52a03a800bb070d7c87d};
+: ${PKG_TWOLAME_VERSION:=0.4.0};
+: ${PKG_TWOLAME_URL:=https://github.com/njh/twolame/releases/download/${PKG_TWOLAME_VERSION}/twolame-${PKG_TWOLAME_VERSION}.tar.gz};
+
+ex_pkg_register "twolame" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/251.native_packages_lib.d/wolfssl.package b/groups.d/251.native_packages_lib.d/wolfssl.package
new file mode 100644
index 00000000..b394bd12
--- /dev/null
+++ b/groups.d/251.native_packages_lib.d/wolfssl.package
@@ -0,0 +1,12 @@
+: ${PKG_WOLFSSL_DEPENDS:="libz"};
+: ${PKG_WOLFSSL_SHA256SUM:=2de93e8af588ee856fe67a6d7fce23fc1b226b74d710b0e3946bc8061f6aa18f};
+: ${PKG_WOLFSSL_VERSION:=5.7.0};
+: ${PKG_WOLFSSL_URL:=https://github.com/wolfSSL/wolfssl/archive/v${PKG_WOLFSSL_VERSION}-stable.tar.gz};
+: ${PKG_WOLFSSL_CONFIGURE_ARGS_EXTRA:="--enable-distro --disable-examples --enable-reproducible-build --enable-ed25519 --enable-ed25519-stream --with-libz=${PREFIX_NATIVE}"};
+: ${PKG_WOLFSSL_SUBDIR:=wolfssl-${PKG_WOLFSSL_VERSION}-stable};
+: ${PKG_WOLFSSL_INSTALL_FILES_V2:="
+ +../obj/wolfssl/options.h=include/wolfssl/%[FNAME]"};
+
+ex_pkg_register "wolfssl" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/Xrender.package b/groups.d/261.native_packages_x11.d/Xrender.package
new file mode 100644
index 00000000..6ed27851
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/Xrender.package
@@ -0,0 +1,8 @@
+: ${PKG_XRENDER_DEPENDS:="libX11 xorgproto"};
+: ${PKG_XRENDER_SHA256SUM:=c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949};
+: ${PKG_XRENDER_VERSION:=0.9.10};
+: ${PKG_XRENDER_URL:=https://www.x.org/releases/individual/lib/libXrender-${PKG_XRENDER_VERSION}.tar.bz2};
+
+ex_pkg_register "Xrender" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/cairo.package b/groups.d/261.native_packages_x11.d/cairo.package
new file mode 100644
index 00000000..53294a9b
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/cairo.package
@@ -0,0 +1,9 @@
+: ${PKG_CAIRO_DEPENDS:="fontconfig freetype ghostpdl glib libXext libpng pixman"};
+: ${PKG_CAIRO_VERSION:=1.15.6};
+: ${PKG_CAIRO_URL:=http://cairographics.org/snapshots/cairo-${PKG_CAIRO_VERSION}.tar.xz};
+: ${PKG_CAIRO_SHA256SUM:=5228e0a1f8fd14317f30f08f3dd72971bca432f8cdd2281d421fdcc2279de58c};
+: ${PKG_CAIRO_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+
+ex_pkg_register "cairo" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/fontconfig.package b/groups.d/261.native_packages_x11.d/fontconfig.package
new file mode 100644
index 00000000..f6670090
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/fontconfig.package
@@ -0,0 +1,10 @@
+: ${PKG_FONTCONFIG_DEPENDS:="expat freetype util_linux"};
+: ${PKG_FONTCONFIG_SHA256SUM:=298e883f6e11d2c5e6d53c8a8394de58d563902cfab934e6be12fb5a5f361ef0};
+: ${PKG_FONTCONFIG_VERSION:=2.14.1};
+: ${PKG_FONTCONFIG_URL:=https://www.freedesktop.org/software/fontconfig/release/fontconfig-${PKG_FONTCONFIG_VERSION}.tar.xz};
+: ${PKG_FONTCONFIG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+: ${PKG_FONTCONFIG_CONFIGURE_ARGS_EXTRA:="PYTHON=${PREFIX}/bin/python3 --enable-iconv --disable-docs"};
+
+ex_pkg_register "fontconfig" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/freetype.package b/groups.d/261.native_packages_x11.d/freetype.package
new file mode 100644
index 00000000..4f42ad0a
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/freetype.package
@@ -0,0 +1,9 @@
+: ${PKG_FREETYPE_DEPENDS:="bzip2 harfbuzz libpng libz"};
+: ${PKG_FREETYPE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
+: ${PKG_FREETYPE_VERSION:=2.11.1};
+: ${PKG_FREETYPE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_VERSION}.tar.xz};
+: ${PKG_FREETYPE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=yes --with-png=yes --with-zlib=yes"};
+
+ex_pkg_register "freetype" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/freetype_pre.package b/groups.d/261.native_packages_x11.d/freetype_pre.package
new file mode 100644
index 00000000..8c650556
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/freetype_pre.package
@@ -0,0 +1,10 @@
+: ${PKG_FREETYPE_PRE_DEPENDS:="bzip2 libpng libz"};
+: ${PKG_FREETYPE_PRE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
+: ${PKG_FREETYPE_PRE_VERSION:=2.11.1};
+: ${PKG_FREETYPE_PRE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_PRE_VERSION}.tar.xz};
+: ${PKG_FREETYPE_PRE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=no --with-png=yes --with-zlib=yes"};
+: ${PKG_FREETYPE_PRE_RPM_DISABLE:=1};
+
+ex_pkg_register "freetype_pre" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/gxemul.package b/groups.d/261.native_packages_x11.d/gxemul.package
new file mode 100644
index 00000000..97c13882
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/gxemul.package
@@ -0,0 +1,12 @@
+: ${PKG_GXEMUL_DEPENDS:="libX11"};
+: ${PKG_GXEMUL_SHA256SUM:=79c4437c6f8ca904f46d33ac36062a65fdcf4a92a248478e408ab11295cf8e83};
+: ${PKG_GXEMUL_VERSION:=0.7.0};
+: ${PKG_GXEMUL_URL:=http://gavare.se/gxemul/src/gxemul-${PKG_GXEMUL_VERSION}.tar.gz};
+: ${PKG_GXEMUL_CONFIGURE_ARGS:=""};
+: ${PKG_GXEMUL_CFLAGS_CONFIGURE_EXTRA:="-std=gnu99"};
+: ${PKG_GXEMUL_ENV_VARS_EXTRA:="XLIB=-lX11"};
+: ${PKG_GXEMUL_IN_TREE:=1};
+
+ex_pkg_register "gxemul" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/harfbuzz.package b/groups.d/261.native_packages_x11.d/harfbuzz.package
new file mode 100644
index 00000000..98d0e08f
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/harfbuzz.package
@@ -0,0 +1,9 @@
+: ${PKG_HARFBUZZ_DEPENDS:="freetype_pre glib"};
+: ${PKG_HARFBUZZ_SHA256SUM:=613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee};
+: ${PKG_HARFBUZZ_VERSION:=2.1.3};
+: ${PKG_HARFBUZZ_URL:=https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${PKG_HARFBUZZ_VERSION}.tar.bz2};
+: ${PKG_HARFBUZZ_CONFIGURE_ARGS_EXTRA:="--with-icu=no --with-cairo=no"};
+
+ex_pkg_register "harfbuzz" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/imlib2.package b/groups.d/261.native_packages_x11.d/imlib2.package
new file mode 100644
index 00000000..0a51345e
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/imlib2.package
@@ -0,0 +1,12 @@
+: ${PKG_IMLIB2_DEPENDS:="freetype libX11 libXext"};
+: ${PKG_IMLIB2_SHA256SUM:=4d393a77e13da883c8ee2da3b029da3570210fe37d000c9ac33d9fce751b166d};
+: ${PKG_IMLIB2_VERSION:=1.6.1};
+: ${PKG_IMLIB2_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/imlib/imlib2-${PKG_IMLIB2_VERSION}.tar.bz2};
+: ${PKG_IMLIB2_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+: ${PKG_IMLIB2_CPPFLAGS_CONFIGURE:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
+: ${PKG_IMLIB2_CONFIGURE_ARGS_EXTRA:="--disable-static --disable-mmx --disable-amd64"};
+: ${PKG_IMLIB2_LIBTOOL=rdlibtool};
+
+ex_pkg_register "imlib2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libICE.package b/groups.d/261.native_packages_x11.d/libICE.package
new file mode 100644
index 00000000..fd17e503
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libICE.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBICE_DEPENDS:="xorgproto xtrans"};
+: ${PKG_LIBICE_SHA256SUM:=03e77afaf72942c7ac02ccebb19034e6e20f456dcf8dddadfeb572aa5ad3e451};
+: ${PKG_LIBICE_VERSION:=1.1.1};
+: ${PKG_LIBICE_URL:=https://www.x.org/releases/individual/lib/libICE-${PKG_LIBICE_VERSION}.tar.xz};
+: ${PKG_LIBICE_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
+
+ex_pkg_register "libICE" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libSM.package b/groups.d/261.native_packages_x11.d/libSM.package
new file mode 100644
index 00000000..9b16489d
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libSM.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBSM_DEPENDS:="libICE xtrans"};
+: ${PKG_LIBSM_SHA256SUM:=fdcbe51e4d1276b1183da77a8a4e74a137ca203e0bcfb20972dd5f3347e97b84};
+: ${PKG_LIBSM_VERSION:=1.2.4};
+: ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.xz};
+: ${PKG_LIBSM_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
+
+ex_pkg_register "libSM" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libX11.package b/groups.d/261.native_packages_x11.d/libX11.package
new file mode 100644
index 00000000..cf13b21c
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libX11.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBX11_DEPENDS:="xcb xorgproto xtrans"};
+: ${PKG_LIBX11_SHA256SUM:=05f267468e3c851ae2b5c830bcf74251a90f63f04dd7c709ca94dc155b7e99ee};
+: ${PKG_LIBX11_VERSION:=1.8.7};
+: ${PKG_LIBX11_URL:=https://www.x.org/releases/individual/lib/libX11-${PKG_LIBX11_VERSION}.tar.xz};
+: ${PKG_LIBX11_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-unix-transport"};
+
+ex_pkg_register "libX11" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXau.package b/groups.d/261.native_packages_x11.d/libXau.package
new file mode 100644
index 00000000..485e51bb
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXau.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXAU_DEPENDS:="xorgproto"};
+: ${PKG_LIBXAU_SHA256SUM:=f3fa3282f5570c3f6bd620244438dbfbdd580fc80f02f549587a0f8ab329bbeb};
+: ${PKG_LIBXAU_VERSION:=1.0.11};
+: ${PKG_LIBXAU_URL:=https://www.x.org/releases/individual/lib/libXau-${PKG_LIBXAU_VERSION}.tar.xz};
+
+ex_pkg_register "libXau" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXaw.package b/groups.d/261.native_packages_x11.d/libXaw.package
new file mode 100644
index 00000000..446f8c21
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXaw.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXAW_DEPENDS:="libX11 libXext libXmu libXpm libXt xorgproto"};
+: ${PKG_LIBXAW_SHA256SUM:=76aef98ea3df92615faec28004b5ce4e5c6855e716fa16de40c32030722a6f8e};
+: ${PKG_LIBXAW_VERSION:=1.0.14};
+: ${PKG_LIBXAW_URL:=https://www.x.org/releases/individual/lib/libXaw-${PKG_LIBXAW_VERSION}.tar.bz2};
+: ${PKG_LIBXAW_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "libXaw" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXcursor.package b/groups.d/261.native_packages_x11.d/libXcursor.package
new file mode 100644
index 00000000..b4db5241
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXcursor.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXCURSOR_DEPENDS:="libX11 libXfixes xorgproto Xrender"};
+: ${PKG_LIBXCURSOR_SHA256SUM:=77f96b9ad0a3c422cfa826afabaf1e02b9bfbfc8908c5fa1a45094faad074b98};
+: ${PKG_LIBXCURSOR_VERSION:=1.2.1};
+: ${PKG_LIBXCURSOR_URL:=https://www.x.org/releases/individual/lib/libXcursor-${PKG_LIBXCURSOR_VERSION}.tar.gz};
+
+ex_pkg_register "libXcursor" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXdamage.package b/groups.d/261.native_packages_x11.d/libXdamage.package
new file mode 100644
index 00000000..6e4c0d61
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXdamage.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXDAMAGE_DEPENDS:="libX11 libXfixes xorgproto"};
+: ${PKG_LIBXDAMAGE_SHA256SUM:=52733c1f5262fca35f64e7d5060c6fcd81a880ba8e1e65c9621cf0727afb5d11};
+: ${PKG_LIBXDAMAGE_VERSION:=1.1.6};
+: ${PKG_LIBXDAMAGE_URL:=https://x.org/releases/individual/lib/libXdamage-${PKG_LIBXDAMAGE_VERSION}.tar.xz};
+
+ex_pkg_register "libXdamage" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXdmcp.package b/groups.d/261.native_packages_x11.d/libXdmcp.package
new file mode 100644
index 00000000..b53ee832
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXdmcp.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXDMCP_DEPENDS:="xorgproto"};
+: ${PKG_LIBXDMCP_SHA256SUM:=20523b44aaa513e17c009e873ad7bbc301507a3224c232610ce2e099011c6529};
+: ${PKG_LIBXDMCP_VERSION:=1.1.3};
+: ${PKG_LIBXDMCP_URL:=https://x.org/releases/individual/lib/libXdmcp-${PKG_LIBXDMCP_VERSION}.tar.bz2};
+: ${PKG_LIBXDMCP_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "libXdmcp" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXext.package b/groups.d/261.native_packages_x11.d/libXext.package
new file mode 100644
index 00000000..16685d7a
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXext.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXEXT_DEPENDS:="libX11 xorgproto"};
+: ${PKG_LIBXEXT_SHA256SUM:=db14c0c895c57ea33a8559de8cb2b93dc76c42ea4a39e294d175938a133d7bca};
+: ${PKG_LIBXEXT_VERSION:=1.3.5};
+: ${PKG_LIBXEXT_URL:=https://www.x.org/releases/individual/lib/libXext-${PKG_LIBXEXT_VERSION}.tar.xz};
+: ${PKG_LIBXEXT_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "libXext" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXfixes.package b/groups.d/261.native_packages_x11.d/libXfixes.package
new file mode 100644
index 00000000..42590f3b
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXfixes.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXFIXES_DEPENDS:="libX11 util_macros xorgproto"};
+: ${PKG_LIBXFIXES_SHA256SUM:=9ab6c13590658501ce4bd965a8a5d32ba4d8b3bb39a5a5bc9901edffc5666570};
+: ${PKG_LIBXFIXES_VERSION:=5.0.3};
+: ${PKG_LIBXFIXES_URL:=https://x.org/releases/individual/lib/libXfixes-${PKG_LIBXFIXES_VERSION}.tar.gz};
+
+ex_pkg_register "libXfixes" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXfont2.package b/groups.d/261.native_packages_x11.d/libXfont2.package
new file mode 100644
index 00000000..c787892a
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXfont2.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXFONT2_DEPENDS:="freetype libfontenc libz xorgproto xtrans"};
+: ${PKG_LIBXFONT2_SHA256SUM:=0e8ab7fd737ccdfe87e1f02b55f221f0bd4503a1c5f28be4ed6a54586bac9c4e};
+: ${PKG_LIBXFONT2_VERSION:=2.0.3};
+: ${PKG_LIBXFONT2_URL:=https://x.org/releases/individual/lib/libXfont2-${PKG_LIBXFONT2_VERSION}.tar.bz2};
+: ${PKG_LIBXFONT2_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+
+ex_pkg_register "libXfont2" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXft.package b/groups.d/261.native_packages_x11.d/libXft.package
new file mode 100644
index 00000000..7978b3a0
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXft.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXFT_DEPENDS:="fontconfig freetype libX11 util_macros Xrender"};
+: ${PKG_LIBXFT_SHA256SUM:=7fce32b92dcb7b2869bed567af2abc7bbad0d5d6fcf471b8a3e137964a31bbbd};
+: ${PKG_LIBXFT_VERSION:=2.3.1};
+: ${PKG_LIBXFT_URL:=https://www.x.org/releases/individual/lib/libXft-${PKG_LIBXFT_VERSION}.tar.bz2};
+: ${PKG_LIBXFT_CFLAGS_BUILD_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
+
+ex_pkg_register "libXft" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXi.package b/groups.d/261.native_packages_x11.d/libXi.package
new file mode 100644
index 00000000..ffa91bbc
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXi.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXI_DEPENDS:="libX11 libXext libXfixes util_macros xorgproto"};
+: ${PKG_LIBXI_SHA256SUM:=463cc5370191404bc0f8a450fdbf6d9159efbbf274e5e0f427a60191fed9cf4b};
+: ${PKG_LIBXI_VERSION:=1.7.9};
+: ${PKG_LIBXI_URL:=https://x.org/releases/individual/lib/libXi-${PKG_LIBXI_VERSION}.tar.gz};
+
+ex_pkg_register "libXi" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXmu.package b/groups.d/261.native_packages_x11.d/libXmu.package
new file mode 100644
index 00000000..548ca12f
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXmu.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXMU_DEPENDS:="libXext libXt libX11 xorgproto"};
+: ${PKG_LIBXMU_SHA256SUM:=210de3ab9c3e9382572c25d17c2518a854ce6e2c62c5f8315deac7579e758244};
+: ${PKG_LIBXMU_VERSION:=1.1.4};
+: ${PKG_LIBXMU_URL:=https://www.x.org/releases/individual/lib/libXmu-${PKG_LIBXMU_VERSION}.tar.xz};
+: ${PKG_LIBXMU_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-unix-transport"};
+
+ex_pkg_register "libXmu" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXpm.package b/groups.d/261.native_packages_x11.d/libXpm.package
new file mode 100644
index 00000000..2fb98d2a
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXpm.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXPM_DEPENDS:="libX11 xorgproto"};
+: ${PKG_LIBXPM_SHA256SUM:=60bb906c5c317a6db863e39b69c4a83fdbd2ae2154fcf47640f8fefc9fdfd1c1};
+: ${PKG_LIBXPM_VERSION:=3.5.15};
+: ${PKG_LIBXPM_URL:=https://www.x.org/releases/individual/lib/libXpm-${PKG_LIBXPM_VERSION}.tar.xz};
+: ${PKG_LIBXPM_CONFIGURE_ARGS_EXTRA:="--disable-open-zfile --disable-stat-zfile --disable-unit-tests"};
+
+ex_pkg_register "libXpm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXt.package b/groups.d/261.native_packages_x11.d/libXt.package
new file mode 100644
index 00000000..6a1df1f4
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXt.package
@@ -0,0 +1,15 @@
+: ${PKG_LIBXT_DEPENDS:="libICE libSM libX11"};
+: ${PKG_LIBXT_SHA256SUM:=679cc08f1646dbd27f5e48ffe8dd49406102937109130caab02ca32c083a3d60};
+: ${PKG_LIBXT_VERSION:=1.2.1};
+: ${PKG_LIBXT_URL:=https://www.x.org/releases/individual/lib/libXt-${PKG_LIBXT_VERSION}.tar.bz2};
+: ${PKG_LIBXT_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g};
+: ${PKG_LIBXTST_DEPENDS:="libX11 libXext libXi xorgproto"};
+: ${PKG_LIBXTST_SHA256SUM:=84f5f30b9254b4ffee14b5b0940e2622153b0d3aed8286a3c5b7eeb340ca33c8};
+: ${PKG_LIBXTST_VERSION:=1.2.4};
+: ${PKG_LIBXTST_URL:=http://www.x.org/releases/individual/lib/libXtst-${PKG_LIBXTST_VERSION}.tar.xz};
+: ${PKG_LIBXTST_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "libXt" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libXtst.package b/groups.d/261.native_packages_x11.d/libXtst.package
new file mode 100644
index 00000000..052d513c
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libXtst.package
@@ -0,0 +1,9 @@
+: ${PKG_LIBXTST_DEPENDS:="libX11 libXext libXi xorgproto"};
+: ${PKG_LIBXTST_SHA256SUM:=84f5f30b9254b4ffee14b5b0940e2622153b0d3aed8286a3c5b7eeb340ca33c8};
+: ${PKG_LIBXTST_VERSION:=1.2.4};
+: ${PKG_LIBXTST_URL:=http://www.x.org/releases/individual/lib/libXtst-${PKG_LIBXTST_VERSION}.tar.xz};
+: ${PKG_LIBXTST_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "libXtst" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libcaca.package b/groups.d/261.native_packages_x11.d/libcaca.package
new file mode 100644
index 00000000..044ffd5b
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libcaca.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBCACA_DEPENDS:="freetype ncursesw"};
+: ${PKG_LIBCACA_URLS_GIT:=libcaca=https://github.com/cacalabs/libcaca@main};
+: ${PKG_LIBCACA_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -std=gnu99"};
+: ${PKG_LIBCACA_LDFLAGS_CONFIGURE_EXTRA:="-Wl,--as-needed -ltinfow -Wl,--as-needed"};
+
+ex_pkg_register "libcaca" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libfontenc.package b/groups.d/261.native_packages_x11.d/libfontenc.package
new file mode 100644
index 00000000..30746ee8
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libfontenc.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBFONTENC_DEPENDS:="libz xorgproto"};
+: ${PKG_LIBFONTENC_SHA256SUM:=c0d36991faee06551ddbaf5d99266e97becdc05edfae87a833c3ff7bf73cfec2};
+: ${PKG_LIBFONTENC_VERSION:=1.1.7};
+: ${PKG_LIBFONTENC_URL:=https://x.org/releases/individual/lib/libfontenc-${PKG_LIBFONTENC_VERSION}.tar.xz};
+
+ex_pkg_register "libfontenc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libpthread_stubs.package b/groups.d/261.native_packages_x11.d/libpthread_stubs.package
new file mode 100644
index 00000000..c20e07af
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libpthread_stubs.package
@@ -0,0 +1,7 @@
+: ${PKG_LIBPTHREAD_STUBS_SHA256SUM:=e4d05911a3165d3b18321cc067fdd2f023f06436e391c6a28dff618a78d2e733};
+: ${PKG_LIBPTHREAD_STUBS_VERSION:=0.4};
+: ${PKG_LIBPTHREAD_STUBS_URL:=https://xcb.freedesktop.org/dist/libpthread-stubs-${PKG_LIBPTHREAD_STUBS_VERSION}.tar.bz2};
+
+ex_pkg_register "libpthread_stubs" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/libxkbfile.package b/groups.d/261.native_packages_x11.d/libxkbfile.package
new file mode 100644
index 00000000..330c6875
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/libxkbfile.package
@@ -0,0 +1,8 @@
+: ${PKG_LIBXKBFILE_DEPENDS:="libX11"};
+: ${PKG_LIBXKBFILE_SHA256SUM:=51817e0530961975d9513b773960b4edd275f7d5c72293d5a151ed4f42aeb16a};
+: ${PKG_LIBXKBFILE_VERSION:=1.0.9};
+: ${PKG_LIBXKBFILE_URL:=https://www.x.org/releases/individual/lib/libxkbfile-${PKG_LIBXKBFILE_VERSION}.tar.bz2};
+
+ex_pkg_register "libxkbfile" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/pango.package b/groups.d/261.native_packages_x11.d/pango.package
new file mode 100644
index 00000000..3aebcd31
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/pango.package
@@ -0,0 +1,9 @@
+: ${PKG_PANGO_DEPENDS:="cairo fontconfig harfbuzz"};
+: ${PKG_PANGO_VERSION:=1.40.11};
+: ${PKG_PANGO_SHA256SUM:=5b11140590e632739e4151cae06b8116160d59e22bf36a3ccd5df76d1cf0383e};
+: ${PKG_PANGO_URL:=http://ftp.gnome.org/pub/GNOME/sources/pango/${PKG_PANGO_VERSION%.*}/pango-${PKG_PANGO_VERSION}.tar.xz};
+: ${PKG_PANGO_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include/harfbuzz};
+
+ex_pkg_register "pango" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/pixman.package b/groups.d/261.native_packages_x11.d/pixman.package
new file mode 100644
index 00000000..42a9e561
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/pixman.package
@@ -0,0 +1,7 @@
+: ${PKG_PIXMAN_VERSION:=0.34.0};
+: ${PKG_PIXMAN_URL:=https://www.cairographics.org/releases/pixman-${PKG_PIXMAN_VERSION}.tar.gz};
+: ${PKG_PIXMAN_SHA256SUM:=21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e};
+
+ex_pkg_register "pixman" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/rdesktop.package b/groups.d/261.native_packages_x11.d/rdesktop.package
new file mode 100644
index 00000000..eb62f386
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/rdesktop.package
@@ -0,0 +1,11 @@
+: ${PKG_RDESKTOP_DEPENDS:="gnutls libICE libX11 libXcursor"};
+: ${PKG_RDESKTOP_SHA256SUM:=473c2f312391379960efe41caad37852c59312bc8f100f9b5f26609ab5704288};
+: ${PKG_RDESKTOP_VERSION:=1.9.0};
+: ${PKG_RDESKTOP_URL:=https://github.com/rdesktop/rdesktop/releases/download/v${PKG_RDESKTOP_VERSION}/rdesktop-${PKG_RDESKTOP_VERSION}.tar.gz};
+: ${PKG_RDESKTOP_CPPFLAGS_CONFIGURE:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
+: ${PKG_RDESKTOP_IN_TREE:=1};
+: ${PKG_RDESKTOP_CONFIGURE_ARGS_EXTRA:="--disable-credssp --disable-smartcard --without-sound --with-openssl=${PREFIX_NATIVE}"};
+
+ex_pkg_register "rdesktop" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/rxvt_unicode.package b/groups.d/261.native_packages_x11.d/rxvt_unicode.package
new file mode 100644
index 00000000..68bb8ebe
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/rxvt_unicode.package
@@ -0,0 +1,9 @@
+: ${PKG_RXVT_UNICODE_DEPENDS:="libX11 libXmu libXft Xrender"};
+: ${PKG_RXVT_UNICODE_SHA256SUM:=e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd};
+: ${PKG_RXVT_UNICODE_VERSION:=9.22};
+: ${PKG_RXVT_UNICODE_URL:=http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PKG_RXVT_UNICODE_VERSION}.tar.bz2};
+: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp --disable-xft --disable-pixbuf};
+
+ex_pkg_register "rxvt_unicode" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/st.package b/groups.d/261.native_packages_x11.d/st.package
new file mode 100644
index 00000000..2194c42d
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/st.package
@@ -0,0 +1,16 @@
+: ${PKG_ST_DEPENDS:="freetype fontconfig libX11 libXft"};
+: ${PKG_ST_SHA256SUM:=f7870d906ccc988926eef2cc98950a99cc78725b685e934c422c03c1234e6000};
+: ${PKG_ST_VERSION:=0.7};
+: ${PKG_ST_URL:=https://dl.suckless.org/st/st-${PKG_ST_VERSION}.tar.gz};
+: ${PKG_ST_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_ST_CFLAGS_BUILD_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include"};
+: ${PKG_ST_IN_TREE:=1};
+: ${PKG_ST_INSTALL_FILES_V2:="
+ +../st-${PKG_ST_VERSION}/st=bin/%[FNAME]
+ +../st-${PKG_ST_VERSION}/st.info=share/info/%[FNAME]
+ +../st-${PKG_ST_VERSION}/st.1=share/man/man1/%[FNAME]"};
+: ${PKG_ST_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib -lX11 -lXft -lfreetype -lfontconfig};
+
+ex_pkg_register "st" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/util_macros.package b/groups.d/261.native_packages_x11.d/util_macros.package
new file mode 100644
index 00000000..9838f66a
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/util_macros.package
@@ -0,0 +1,7 @@
+: ${PKG_UTIL_MACROS_SHA256SUM:=d7e43376ad220411499a79735020f9d145fdc159284867e99467e0d771f3e712};
+: ${PKG_UTIL_MACROS_VERSION:=1.19.2};
+: ${PKG_UTIL_MACROS_URL:=https://www.x.org/archive/individual/util/util-macros-${PKG_UTIL_MACROS_VERSION}.tar.bz2};
+
+ex_pkg_register "util_macros" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcalc.package b/groups.d/261.native_packages_x11.d/xcalc.package
new file mode 100644
index 00000000..e577f867
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcalc.package
@@ -0,0 +1,8 @@
+: ${PKG_XCALC_DEPENDS:="libX11 libXt libXaw"};
+: ${PKG_XCALC_SHA256SUM:=8578dfa1457e94289f6d6ed6146714307d8a73a1b54d2f42af1321b625fc1cd4};
+: ${PKG_XCALC_VERSION:=1.1.2};
+: ${PKG_XCALC_URL:=https://www.x.org/releases/individual/app/xcalc-${PKG_XCALC_VERSION}.tar.xz};
+
+ex_pkg_register "xcalc" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb.package b/groups.d/261.native_packages_x11.d/xcb.package
new file mode 100644
index 00000000..0e166daa
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb.package
@@ -0,0 +1,12 @@
+: ${PKG_XCB_DEPENDS:="libpthread_stubs libXau xcb_proto"};
+: ${PKG_XCB_SHA256SUM:=f24d187154c8e027b358fc7cb6588e35e33e6a92f11c668fe77396a7ae66e311};
+: ${PKG_XCB_VERSION:=1.16.1};
+: ${PKG_XCB_URL:=https://www.x.org/releases/individual/xcb/libxcb-${PKG_XCB_VERSION}.tar.xz};
+: ${PKG_XCB_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
+: ${PKG_XCB_CONFIG_CACHE_EXTRA:="ac_cv_search_sendmsg=no"};
+: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:="--disable-randr PYTHON=${PREFIX}/bin/python3"};
+: ${PKG_XCB_ENV_VARS_EXTRA:="XCBPROTO_XCBPYTHONDIR=${PREFIX_NATIVE}/lib/python2.7/site-packages:XCBPROTO_XCBINCLUDEDIR=${PREFIX_NATIVE}/share/xcb"};
+
+ex_pkg_register "xcb" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_proto.package b/groups.d/261.native_packages_x11.d/xcb_proto.package
new file mode 100644
index 00000000..8717d5b6
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_proto.package
@@ -0,0 +1,7 @@
+: ${PKG_XCB_PROTO_SHA256SUM:=a75a1848ad2a89a82d841a51be56ce988ff3c63a8d6bf4383ae3219d8d915119};
+: ${PKG_XCB_PROTO_VERSION:=1.16.0};
+: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/proto/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_proto" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util.package b/groups.d/261.native_packages_x11.d/xcb_util.package
new file mode 100644
index 00000000..b16d0d72
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_DEPENDS:="xcb"};
+: ${PKG_XCB_UTIL_SHA256SUM:=5abe3bbbd8e54f0fa3ec945291b7e8fa8cfd3cccc43718f8758430f94126e512};
+: ${PKG_XCB_UTIL_VERSION:=0.4.1};
+: ${PKG_XCB_UTIL_URL:=https://x.org/releases/individual/xcb/xcb-util-${PKG_XCB_UTIL_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util_image.package b/groups.d/261.native_packages_x11.d/xcb_util_image.package
new file mode 100644
index 00000000..83536d61
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util_image.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_IMAGE_DEPENDS:="xcb xcb_util"};
+: ${PKG_XCB_UTIL_IMAGE_SHA256SUM:=ccad8ee5dadb1271fd4727ad14d9bd77a64e505608766c4e98267d9aede40d3d};
+: ${PKG_XCB_UTIL_IMAGE_VERSION:=0.4.1};
+: ${PKG_XCB_UTIL_IMAGE_URL:=https://x.org/releases/individual/xcb/xcb-util-image-${PKG_XCB_UTIL_IMAGE_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util_image" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xcb_util_wm.package b/groups.d/261.native_packages_x11.d/xcb_util_wm.package
new file mode 100644
index 00000000..b2c9aecf
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xcb_util_wm.package
@@ -0,0 +1,8 @@
+: ${PKG_XCB_UTIL_WM_DEPENDS:="xcb"};
+: ${PKG_XCB_UTIL_WM_SHA256SUM:=62c34e21d06264687faea7edbf63632c9f04d55e72114aa4a57bb95e4f888a0b};
+: ${PKG_XCB_UTIL_WM_VERSION:=0.4.2};
+: ${PKG_XCB_UTIL_WM_URL:=https://x.org/releases/individual/xcb/xcb-util-wm-${PKG_XCB_UTIL_WM_VERSION}.tar.xz};
+
+ex_pkg_register "xcb_util_wm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xeyes.package b/groups.d/261.native_packages_x11.d/xeyes.package
new file mode 100644
index 00000000..e0026399
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xeyes.package
@@ -0,0 +1,8 @@
+: ${PKG_XEYES_DEPENDS:="libX11 libXext libXmu libXt Xrender"};
+: ${PKG_XEYES_SHA256SUM:=57bcec0d2d167af9e5d44d0dbd74c6d7c0f0591cd0608952b23c749fdd910553};
+: ${PKG_XEYES_VERSION:=1.1.2};
+: ${PKG_XEYES_URL:=https://www.x.org/releases/individual/app/xeyes-${PKG_XEYES_VERSION}.tar.bz2};
+
+ex_pkg_register "xeyes" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xorgproto.package b/groups.d/261.native_packages_x11.d/xorgproto.package
new file mode 100644
index 00000000..db6075d2
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xorgproto.package
@@ -0,0 +1,8 @@
+: ${PKG_XORGPROTO_SHA256SUM:=5d13dbf2be08f95323985de53352c4f352713860457b95ccaf894a647ac06b9e};
+: ${PKG_XORGPROTO_VERSION:=2022.2};
+: ${PKG_XORGPROTO_URL:=https://www.x.org/releases/individual/proto/xorgproto-${PKG_XORGPROTO_VERSION}.tar.xz};
+: ${PKG_XORGPROTO_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-specs --enable-legacy PYTHON=${PREFIX}/bin/python3"};
+
+ex_pkg_register "xorgproto" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xterm.package b/groups.d/261.native_packages_x11.d/xterm.package
new file mode 100644
index 00000000..ada1db40
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xterm.package
@@ -0,0 +1,10 @@
+: ${PKG_XTERM_DEPENDS:="libX11 libXaw libXmu libXpm ncurses"};
+: ${PKG_XTERM_SHA256SUM:=9ae856a30fd93046be93952a6898ba47f6f88ad6a988a7c949c4c80d5199ef10};
+: ${PKG_XTERM_VERSION:=331};
+: ${PKG_XTERM_URL:=ftp://ftp.invisible-island.net/xterm/xterm-${PKG_XTERM_VERSION}.tgz};
+: ${PKG_XTERM_CONFIGURE_ARGS_EXTRA:="--disable-setuid --disable-setgid --disable-full-tgetent --enable-ansi-color --enable-88-color --enable-256-color --enable-broken-osc --enable-broken-st --enable-load-vt-fonts --enable-i18n --enable-doublechars --enable-warnings --enable-tcap-query --enable-logging --enable-dabbrev --enable-freetype --enable-luit --enable-mini-luit --enable-narrowproto --enable-exec-xterm --enable-sixel-graphics --with-utempter"};
+: ${PKG_XTERM_ENV_VARS_EXTRA:=LIBS=-lncurses -ltinfo};
+
+ex_pkg_register "xterm" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xtrans.package b/groups.d/261.native_packages_x11.d/xtrans.package
new file mode 100644
index 00000000..8dfc06b1
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xtrans.package
@@ -0,0 +1,9 @@
+: ${PKG_XTRANS_DEPENDS:="util_macros"};
+: ${PKG_XTRANS_SHA256SUM:=377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773};
+: ${PKG_XTRANS_VERSION:=1.4.0};
+: ${PKG_XTRANS_URL:=https://www.x.org/releases/individual/lib/xtrans-${PKG_XTRANS_VERSION}.tar.bz2};
+: ${PKG_XTRANS_CONFIGURE_ARGS_EXTRA:="--without-fop"};
+
+ex_pkg_register "xtrans" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xwd.package b/groups.d/261.native_packages_x11.d/xwd.package
new file mode 100644
index 00000000..f0c5d142
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xwd.package
@@ -0,0 +1,8 @@
+: ${PKG_XWD_DEPENDS:="libX11 libxkbfile"};
+: ${PKG_XWD_SHA256SUM:=3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79};
+: ${PKG_XWD_VERSION:=1.0.6};
+: ${PKG_XWD_URL:=https://www.x.org/releases/individual/app/xwd-${PKG_XWD_VERSION}.tar.bz2};
+
+ex_pkg_register "xwd" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/261.native_packages_x11.d/xwin.package b/groups.d/261.native_packages_x11.d/xwin.package
new file mode 100644
index 00000000..674786ed
--- /dev/null
+++ b/groups.d/261.native_packages_x11.d/xwin.package
@@ -0,0 +1,12 @@
+: ${PKG_XWIN_SHA256SUM:=59c99fe86fe75b8164c6567bfc6e982aecc2e4a51e6fbac1b842d5d00549e918};
+: ${PKG_XWIN_VERSION:=1.20.1};
+: ${PKG_XWIN_URL:=https://x.org/releases/individual/xserver/xorg-server-${PKG_XWIN_VERSION}.tar.bz2};
+: ${PKG_XWIN_CFLAGS_BUILD_EXTRA:=-Wno-redundant-decls};
+: ${PKG_XWIN_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports/"};
+: ${PKG_XWIN_CONFIGURE_ARGS_EXTRA:="--enable-xwin --disable-xorg --disable-dri --disable-dri2 --disable-dri3 --disable-pciaccess --disable-glx"};
+: ${PKG_XWIN_DISABLED:=1};
+: ${PKG_XWIN_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib/"};
+
+ex_pkg_register "xwin" "${RTL_FILEOP_SOURCE_FNAME}" "native_packages";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/bash_minipix.package b/groups.d/800.minipix.d/bash_minipix.package
new file mode 100644
index 00000000..702fb343
--- /dev/null
+++ b/groups.d/800.minipix.d/bash_minipix.package
@@ -0,0 +1,10 @@
+: ${PKG_BASH_MINIPIX_INHERIT_FROM:=bash};
+: ${PKG_BASH_MINIPIX_BUILD_STEPS_DISABLE:=install_make};
+: ${PKG_BASH_MINIPIX_INSTALL_FILES_V2:="
+ +../obj/bash=bin/%[FNAME]
+ +../obj/bashbug=bin/%[FNAME]"};
+: ${PKG_BASH_MINIPIX_VARS_FILE:="vars/bash.vars"};
+
+ex_pkg_register "bash_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/bzip2_minipix.package b/groups.d/800.minipix.d/bzip2_minipix.package
new file mode 100644
index 00000000..f92ff577
--- /dev/null
+++ b/groups.d/800.minipix.d/bzip2_minipix.package
@@ -0,0 +1,15 @@
+: ${PKG_BZIP2_MINIPIX_INHERIT_FROM:=bzip2};
+: ${PKG_BZIP2_MINIPIX_BUILD_STEPS_DISABLE:="install_make"};
+: ${PKG_BZIP2_MINIPIX_INSTALL_FILES_V2:="
+ +../bzip2-${PKG_BZIP2_VERSION}/bzip2=bin/%[FNAME]
+ @bzip2=bin/bunzip2
+ @bzip2=bin/bzcat
+ @bzip2=bin/bzdiff
+ @bzip2=bin/bzgrep
+ @bzip2=bin/bzip2recover
+ @bzip2=bin/bzmore"};
+: ${PKG_BZIP2_MINIPIX_MAKEFLAGS_BUILD_EXTRA:="-f Makefile"};
+
+ex_pkg_register "bzip2_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/ca_certificates_minipix.package b/groups.d/800.minipix.d/ca_certificates_minipix.package
new file mode 100644
index 00000000..a6492a4e
--- /dev/null
+++ b/groups.d/800.minipix.d/ca_certificates_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_CA_CERTIFICATES_MINIPIX_INHERIT_FROM:=ca_certificates};
+
+ex_pkg_register "ca_certificates_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/coreutils_minipix.package b/groups.d/800.minipix.d/coreutils_minipix.package
new file mode 100644
index 00000000..54aa33f3
--- /dev/null
+++ b/groups.d/800.minipix.d/coreutils_minipix.package
@@ -0,0 +1,7 @@
+: ${PKG_COREUTILS_MINIPIX_INHERIT_FROM:=coreutils};
+: ${PKG_COREUTILS_MINIPIX_INSTALL_TARGET:=install-binPROGRAMS};
+: ${PKG_COREUTILS_MINIPIX_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_PROGRAM=${DEFAULT_TARGET}-install-strip};
+
+ex_pkg_register "coreutils_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/dash_minipix.package b/groups.d/800.minipix.d/dash_minipix.package
new file mode 100644
index 00000000..56c23405
--- /dev/null
+++ b/groups.d/800.minipix.d/dash_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_DASH_MINIPIX_INHERIT_FROM:=dash};
+: ${PKG_DASH_MINIPIX_INSTALL_FILES_V2:="+bin/dash=bin/sh"};
+
+ex_pkg_register "dash_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/diffutils_minipix.package b/groups.d/800.minipix.d/diffutils_minipix.package
new file mode 100644
index 00000000..81904766
--- /dev/null
+++ b/groups.d/800.minipix.d/diffutils_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_DIFFUTILS_MINIPIX_INHERIT_FROM:=diffutils};
+
+ex_pkg_register "diffutils_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/dropbear_minipix.package b/groups.d/800.minipix.d/dropbear_minipix.package
new file mode 100644
index 00000000..a2f85655
--- /dev/null
+++ b/groups.d/800.minipix.d/dropbear_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_DROPBEAR_MINIPIX_INHERIT_FROM:=dropbear};
+: ${PKG_DROPBEAR_MINIPIX_INSTALL_FILES_V2:="+sbin/dropbear=bin/%[FNAME]"};
+
+ex_pkg_register "dropbear_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/findutils_minipix.package b/groups.d/800.minipix.d/findutils_minipix.package
new file mode 100644
index 00000000..2132a131
--- /dev/null
+++ b/groups.d/800.minipix.d/findutils_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_FINDUTILS_MINIPIX_INHERIT_FROM:=findutils};
+
+ex_pkg_register "findutils_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/gawk_minipix.package b/groups.d/800.minipix.d/gawk_minipix.package
new file mode 100644
index 00000000..d837b94d
--- /dev/null
+++ b/groups.d/800.minipix.d/gawk_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_GAWK_MINIPIX_INHERIT_FROM:=gawk};
+
+ex_pkg_register "gawk_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/gdb_minipix.package b/groups.d/800.minipix.d/gdb_minipix.package
new file mode 100644
index 00000000..83fddae2
--- /dev/null
+++ b/groups.d/800.minipix.d/gdb_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_GDB_MINIPIX_INHERIT_FROM:=gdb};
+: ${PKG_GDB_MINIPIX_DISABLED:=1};
+
+ex_pkg_register "gdb_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/grep_minipix.package b/groups.d/800.minipix.d/grep_minipix.package
new file mode 100644
index 00000000..5cac71a8
--- /dev/null
+++ b/groups.d/800.minipix.d/grep_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_GREP_MINIPIX_INHERIT_FROM:=grep};
+
+ex_pkg_register "grep_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/gzip_minipix.package b/groups.d/800.minipix.d/gzip_minipix.package
new file mode 100644
index 00000000..902abbed
--- /dev/null
+++ b/groups.d/800.minipix.d/gzip_minipix.package
@@ -0,0 +1,7 @@
+: ${PKG_GZIP_MINIPIX_INHERIT_FROM:=gzip};
+: ${PKG_GZIP_MINIPIX_INSTALL_TARGET:=install-binPROGRAMS};
+: ${PKG_GZIP_MINIPIX_MAKEFLAGS_INSTALL_EXTRA:="OBJA="};
+
+ex_pkg_register "gzip_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/infounzip_minipix.package b/groups.d/800.minipix.d/infounzip_minipix.package
new file mode 100644
index 00000000..a44d3321
--- /dev/null
+++ b/groups.d/800.minipix.d/infounzip_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_INFOUNZIP_MINIPIX_INHERIT_FROM:=infounzip};
+: ${PKG_INFOUNZIP_MINIPIX_LDFLAGS_BUILD_EXTRA:=${MINIPIX_LDFLAGS_CONFIGURE}};
+
+ex_pkg_register "infounzip_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/infozip_minipix.package b/groups.d/800.minipix.d/infozip_minipix.package
new file mode 100644
index 00000000..7b990e41
--- /dev/null
+++ b/groups.d/800.minipix.d/infozip_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_INFOZIP_MINIPIX_INHERIT_FROM:=infozip};
+: ${PKG_INFOZIP_MINIPIX_LDFLAGS_BUILD_EXTRA:=${MINIPIX_LDFLAGS_CONFIGURE}};
+
+ex_pkg_register "infozip_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/less_minipix.package b/groups.d/800.minipix.d/less_minipix.package
new file mode 100644
index 00000000..443f40c3
--- /dev/null
+++ b/groups.d/800.minipix.d/less_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_LESS_MINIPIX_INHERIT_FROM:=less};
+
+ex_pkg_register "less_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/libz_minipix.package b/groups.d/800.minipix.d/libz_minipix.package
new file mode 100644
index 00000000..985e0f5e
--- /dev/null
+++ b/groups.d/800.minipix.d/libz_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_LIBZ_MINIPIX_INHERIT_FROM:=libz};
+
+ex_pkg_register "libz_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/mintty_minipix.package b/groups.d/800.minipix.d/mintty_minipix.package
new file mode 100644
index 00000000..8a164ff6
--- /dev/null
+++ b/groups.d/800.minipix.d/mintty_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_MINTTY_MINIPIX_INHERIT_FROM:=mintty};
+: ${PKG_MINTTY_MINIPIX_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -mvrfs"};
+
+ex_pkg_register "mintty_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/nano_minipix.package b/groups.d/800.minipix.d/nano_minipix.package
new file mode 100644
index 00000000..e30e4212
--- /dev/null
+++ b/groups.d/800.minipix.d/nano_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_NANO_MINIPIX_INHERIT_FROM:=nano};
+
+ex_pkg_register "nano_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/ntctty_minipix.package b/groups.d/800.minipix.d/ntctty_minipix.package
new file mode 100644
index 00000000..39f8c4af
--- /dev/null
+++ b/groups.d/800.minipix.d/ntctty_minipix.package
@@ -0,0 +1,7 @@
+: ${PKG_NTCTTY_MINIPIX_INHERIT_FROM:=ntctty};
+: ${PKG_NTCTTY_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
+: ${PKG_NTCTTY_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
+
+ex_pkg_register "ntctty_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/ntux_minipix.package b/groups.d/800.minipix.d/ntux_minipix.package
new file mode 100644
index 00000000..f5bcb43f
--- /dev/null
+++ b/groups.d/800.minipix.d/ntux_minipix.package
@@ -0,0 +1,9 @@
+: ${PKG_NTUX_MINIPIX_INHERIT_FROM:=ntux};
+: ${PKG_NTUX_MINIPIX_CFLAGS_CONFIGURE:="${DEFAULT_CFLAGS_RUNTIME} --sysroot=${PREFIX_NATIVE} -O0 -DNTUX_STANDALONE"};
+: ${PKG_NTUX_MINIPIX_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET} --bindir=/bin"};
+: ${PKG_NTUX_MINIPIX_LDFLAGS_BUILD:="--sysroot=${PREFIX_NATIVE}"};
+: ${PKG_NTUX_MINIPIX_LDFLAGS_CONFIGURE:="--sysroot=${PREFIX_NATIVE}"};
+
+ex_pkg_register "ntux_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/patch_minipix.package b/groups.d/800.minipix.d/patch_minipix.package
new file mode 100644
index 00000000..9fa7df8c
--- /dev/null
+++ b/groups.d/800.minipix.d/patch_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_PATCH_MINIPIX_INHERIT_FROM:=patch};
+
+ex_pkg_register "patch_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/perk_minipix.package b/groups.d/800.minipix.d/perk_minipix.package
new file mode 100644
index 00000000..5587bdfe
--- /dev/null
+++ b/groups.d/800.minipix.d/perk_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_PERK_MINIPIX_INHERIT_FROM:=perk};
+
+ex_pkg_register "perk_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/ptycon_minipix.package b/groups.d/800.minipix.d/ptycon_minipix.package
new file mode 100644
index 00000000..b476696f
--- /dev/null
+++ b/groups.d/800.minipix.d/ptycon_minipix.package
@@ -0,0 +1,7 @@
+: ${PKG_PTYCON_MINIPIX_INHERIT_FROM:=ptycon};
+: ${PKG_PTYCON_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
+: ${PKG_PTYCON_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
+
+ex_pkg_register "ptycon_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/python2_minipix.package b/groups.d/800.minipix.d/python2_minipix.package
new file mode 100644
index 00000000..a40f2ea4
--- /dev/null
+++ b/groups.d/800.minipix.d/python2_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_PYTHON2_MINIPIX_INHERIT_FROM:=python2};
+: ${PKG_PYTHON2_MINIPIX_BASE_DIR:=${BUILD_WORKDIR}/python2-minipix-${DEFAULT_TARGET}};
+
+ex_pkg_register "python2_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/sed_minipix.package b/groups.d/800.minipix.d/sed_minipix.package
new file mode 100644
index 00000000..cff3d3b3
--- /dev/null
+++ b/groups.d/800.minipix.d/sed_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_SED_MINIPIX_INHERIT_FROM:=sed};
+
+ex_pkg_register "sed_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/tar_minipix.package b/groups.d/800.minipix.d/tar_minipix.package
new file mode 100644
index 00000000..e909e290
--- /dev/null
+++ b/groups.d/800.minipix.d/tar_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_TAR_MINIPIX_INHERIT_FROM:=tar};
+: ${PKG_TAR_MINIPIX_MAKEFLAGS_INSTALL:="-C src install-binPROGRAMS"};
+
+ex_pkg_register "tar_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/toksvc_minipix.package b/groups.d/800.minipix.d/toksvc_minipix.package
new file mode 100644
index 00000000..8389d7e3
--- /dev/null
+++ b/groups.d/800.minipix.d/toksvc_minipix.package
@@ -0,0 +1,7 @@
+: ${PKG_TOKSVC_MINIPIX_INHERIT_FROM:=toksvc};
+: ${PKG_TOKSVC_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
+: ${PKG_TOKSVC_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
+
+ex_pkg_register "toksvc_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/tpax_minipix.package b/groups.d/800.minipix.d/tpax_minipix.package
new file mode 100644
index 00000000..d16365c8
--- /dev/null
+++ b/groups.d/800.minipix.d/tpax_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_TPAX_MINIPIX_INHERIT_FROM:=tpax};
+: ${PKG_TPAX_MINIPIX_INHERIT_CONFIGURE_ARGS:="--prefix --strict --host=${DEFAULT_TARGET}"};
+
+ex_pkg_register "tpax_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/vim_minipix.package b/groups.d/800.minipix.d/vim_minipix.package
new file mode 100644
index 00000000..045bd106
--- /dev/null
+++ b/groups.d/800.minipix.d/vim_minipix.package
@@ -0,0 +1,6 @@
+: ${PKG_VIM_MINIPIX_INHERIT_FROM:=vim};
+: ${PKG_VIM_MINIPIX_VARS_FILE:="vars/vim.vars"};
+
+ex_pkg_register "vim_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/wget_minipix.package b/groups.d/800.minipix.d/wget_minipix.package
new file mode 100644
index 00000000..88ff5872
--- /dev/null
+++ b/groups.d/800.minipix.d/wget_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_WGET_MINIPIX_INHERIT_FROM:=wget};
+
+ex_pkg_register "wget_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/which_minipix.package b/groups.d/800.minipix.d/which_minipix.package
new file mode 100644
index 00000000..7d2fe107
--- /dev/null
+++ b/groups.d/800.minipix.d/which_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_WHICH_MINIPIX_INHERIT_FROM:=which};
+
+ex_pkg_register "which_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.d/xz_minipix.package b/groups.d/800.minipix.d/xz_minipix.package
new file mode 100644
index 00000000..a97e3b51
--- /dev/null
+++ b/groups.d/800.minipix.d/xz_minipix.package
@@ -0,0 +1,5 @@
+: ${PKG_XZ_MINIPIX_INHERIT_FROM:=xz};
+
+ex_pkg_register "xz_minipix" "${RTL_FILEOP_SOURCE_FNAME}" "minipix";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups.d/800.minipix.group b/groups.d/800.minipix.group
new file mode 100644
index 00000000..5a11ec0f
--- /dev/null
+++ b/groups.d/800.minipix.group
@@ -0,0 +1,20 @@
+#
+# Build group minipix
+#
+rtl_lconcat2 \$MINIPIX_CFLAGS_CONFIGURE \$DEFAULT_CFLAGS "--sysroot=${PREFIX_NATIVE}";
+rtl_lconcat2 \$MINIPIX_CPPFLAGS_CONFIGURE \$DEFAULT_CPPFLAGS "--sysroot=${PREFIX_NATIVE}";
+rtl_lconcat2 \$MINIPIX_CXXFLAGS_CONFIGURE \$DEFAULT_CXXFLAGS "--sysroot=${PREFIX_NATIVE}";
+MINIPIX_CONFIG_CACHE_LOCAL="${CONFIG_CACHE_GNULIB}";
+MINIPIX_CONFIGURE_ARGS="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}";
+MINIPIX_GROUP_DEPENDS="host_deps host_deps_rpm cross_toolchain host_toolchain host_tools native_packages native_toolchain native_tools";
+MINIPIX_LDFLAGS_BUILD="--sysroot=${PREFIX_NATIVE} -mvrfs";
+MINIPIX_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE} -mvrfs";
+MINIPIX_MAKEFLAGS_INSTALL="PREFIX= prefix=";
+MINIPIX_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
+MINIPIX_PKGLIST_DISABLE=1;
+MINIPIX_PREFIX="${PREFIX}/minipix_dist";
+MINIPIX_RPM_DISABLE=1;
+
+ex_pkg_register_group "minipix" "${RTL_FILEOP_SOURCE_FNAME}";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups/999.dist.group b/groups.d/999.dist.group
index c980cf47..27ac86b9 100644
--- a/groups/999.dist.group
+++ b/groups.d/999.dist.group
@@ -4,6 +4,9 @@
DIST_FORCE=1;
DIST_NO_LOG_VARS=1;
DIST_PACKAGES="dist_gitref dist_minipix dist_zipdist";
+
: ${PKG_DIST_ZIPDIST_DEPENDS:="dist_minipix"};
+ex_pkg_register_group "dist" "${RTL_FILEOP_SOURCE_FNAME}";
+
# vim:filetype=sh textwidth=0
diff --git a/groups.d/dev_packages.group b/groups.d/dev_packages.group
new file mode 100644
index 00000000..ec853c6d
--- /dev/null
+++ b/groups.d/dev_packages.group
@@ -0,0 +1,11 @@
+#
+# Build group dev_packages
+#
+DEV_PACKAGES_PACKAGES="
+ncurses ncursesw libiconv coreutils bash libz git make sed grep findutils
+m4 flex bison diffutils patch patchutils gzip tar dos2unix nano vim";
+
+ex_pkg_copy_group_vars "native_packages" "dev_packages";
+ex_pkg_register_group "dev_packages" "${RTL_FILEOP_SOURCE_FNAME}" "copy" "noauto";
+
+# vim:filetype=sh textwidth=0
diff --git a/groups/000.host_tools.group b/groups/000.host_tools.group
deleted file mode 100644
index 310dee5e..00000000
--- a/groups/000.host_tools.group
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# Build group host_tools
-#
-HOST_TOOLS_BUILD_TYPE="host";
-HOST_TOOLS_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX}";
-HOST_TOOLS_MAKEFLAGS_INSTALL="prefix= PREFIX=";
-HOST_TOOLS_PACKAGES="
-autoconf_host autoconf_2_64_host automake_host automake_1_11_6_host
-gettext_tiny_host install_strip_host libtool_host m4_host pkgconf_host
-slibtool_host tpax_host";
-HOST_TOOLS_PREFIX="${PREFIX}";
-: ${PKG_AUTOCONF_HOST_DEPENDS:="m4_host pkgconf_host slibtool_host"};
-: ${PKG_AUTOCONF_HOST_SHA256SUM:=64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684};
-: ${PKG_AUTOCONF_HOST_VERSION:=2.69};
-: ${PKG_AUTOCONF_HOST_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_HOST_VERSION}.tar.xz};
-: ${PKG_AUTOCONF_2_64_HOST_DEPENDS:="m4_host pkgconf_host slibtool_host"};
-: ${PKG_AUTOCONF_2_64_HOST_SHA256SUM:=32d977213320b8ae76c71175305301197f2b0e04e72d70694bc3d3e2ae6c7248};
-: ${PKG_AUTOCONF_2_64_HOST_VERSION:=2.64};
-: ${PKG_AUTOCONF_2_64_HOST_URL:=https://ftp.gnu.org/gnu/autoconf/autoconf-${PKG_AUTOCONF_2_64_HOST_VERSION}.tar.xz};
-: ${PKG_AUTOCONF_2_64_HOST_INSTALL_FILES_V2:="
- /=libexec/autoconf-2.64
- !bin/%<*>=libexec/autoconf-2.64/%[FNAME]
- +%[_files]/bin/\%[FNAME]-2.64=bin/autoconf-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/autoheader-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/autom4te-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/autoreconf-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/autoscan-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/autoupdate-2.64
- +%[_files]/bin/\%[FNAME]-2.64=bin/ifnames-2.64
- !share/autoconf-2.64/autom4te.cfg=share/autoconf/autom4te.cfg
- -=share/autoconf-2.64/
- !share/autoconf=share/autoconf-2.64/
- -=share/info/dir
- !share/info/%<*.info>=share/info/%[FNAME%.info]-2.64.info
- !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.64.1"};
-: ${PKG_AUTOMAKE_HOST_DEPENDS:="autoconf_host pkgconf_host slibtool_host"};
-: ${PKG_AUTOMAKE_HOST_SHA256SUM:=ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a};
-: ${PKG_AUTOMAKE_HOST_VERSION:=1.16.3};
-: ${PKG_AUTOMAKE_HOST_URL:=https://ftp.gnu.org/gnu/automake/automake-${PKG_AUTOMAKE_HOST_VERSION}.tar.xz};
-: ${PKG_AUTOMAKE_1_11_6_HOST_DEPENDS:="autoconf_2_64_host pkgconf_host slibtool_host"};
-: ${PKG_AUTOMAKE_1_11_6_HOST_SHA256SUM:=1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5};
-: ${PKG_AUTOMAKE_1_11_6_HOST_VERSION:=1.11.6};
-: ${PKG_AUTOMAKE_1_11_6_HOST_URL:=https://ftp.gnu.org/gnu/automake/automake-${PKG_AUTOMAKE_1_11_6_HOST_VERSION}.tar.xz};
-: ${PKG_AUTOMAKE_1_11_6_HOST_INSTALL_FILES_V2:="
- -=bin/%<*-1.11>
- !bin/%<*>=bin/%[FNAME]-1.11
- -=share/info/dir
- !share/doc/automake=share/doc/automake-1.11.6
- !share/info/%<*.info*>=share/info/%[FNAME%.info*]-1.11.6.%[FNAME#*.]
- !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-1.11.6.1"};
-: ${PKG_GETTEXT_TINY_HOST_DEPENDS:="pkgconf_host slibtool_host"};
-: ${PKG_GETTEXT_TINY_HOST_SHA256SUM:=29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383};
-: ${PKG_GETTEXT_TINY_HOST_VERSION:=0.3.2};
-: ${PKG_GETTEXT_TINY_HOST_URL:=https://toolchains.bootlin.com/downloads/releases/sources/gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}/gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}.tar.gz};
-: ${PKG_GETTEXT_TINY_HOST_BUILD_DIR:=gettext-tiny-${PKG_GETTEXT_TINY_HOST_VERSION}};
-: ${PKG_GETTEXT_TINY_HOST_MAKEFLAGS_BUILD_EXTRA:="prefix=${PREFIX}"};
-: ${PKG_INSTALL_STRIP_HOST_BUILD_STEPS_DISABLE:="build install_make install_rpm"};
-: ${PKG_INSTALL_STRIP_HOST_NO_LOG_VARS:=1};
-: ${PKG_INSTALL_STRIP_HOST_INSTALL_FILES_V2:="
- +%[_files]/bin/\%[_target]-install-strip=bin/%[_target]-install-strip
- m0755=bin/%[_target]-install-strip"};
-: ${PKG_LIBTOOL_HOST_DEPENDS:="autoconf_host automake_host pkgconf_host slibtool_host"}:
-: ${PKG_LIBTOOL_HOST_SHA256SUM:=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f};
-: ${PKG_LIBTOOL_HOST_VERSION:=2.4.6};
-: ${PKG_LIBTOOL_HOST_URL:=https://ftp.gnu.org/gnu/libtool/libtool-${PKG_LIBTOOL_HOST_VERSION}.tar.xz};
-: ${PKG_LIBTOOL_HOST_LIBTOOL:=none};
-: ${PKG_M4_HOST_DEPENDS:="pkgconf_host slibtool_host"};
-: ${PKG_M4_HOST_SHA256SUM:=63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96};
-: ${PKG_M4_HOST_VERSION:=1.4.19};
-: ${PKG_M4_HOST_URL:=https://ftp.gnu.org/gnu/m4/m4-${PKG_M4_HOST_VERSION}.tar.xz};
-: ${PKG_PKGCONF_HOST_DEPENDS:="slibtool_host"};
-: ${PKG_PKGCONF_HOST_SHA256SUM:=ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf};
-: ${PKG_PKGCONF_HOST_VERSION:=1.8.0};
-: ${PKG_PKGCONF_HOST_URL:=https://distfiles.dereferenced.org/pkgconf/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.xz};
-: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="--prefix=${PREFIX} --with-system-libdir=${PREFIX_NATIVE}/lib --with-system-includedir=${PREFIX_NATIVE}/include --with-pkg-config-dir=${PREFIX_NATIVE}/lib/pkgconfig --with-personality-dir=${PREFIX_NATIVE}/share/pkgconfig/personality.d"};
-: ${PKG_PKGCONF_HOST_INSTALL_FILES_V2:="
- @pkgconf=bin/pkg-config
- +%[_files]/bin/\%[_target]-pkg-config=bin/%[_target]-pkg-config
- m0755=bin/%[_target]-pkg-config"};
-: ${PKG_SLIBTOOL_HOST_URLS_GIT:="slibtool=${DEFAULT_GITROOT}/slibtool"};
-: ${PKG_SLIBTOOL_HOST_CONFIGURE_ARGS:=--prefix=};
-: ${PKG_TPAX_HOST_URLS_GIT:="tpax=https://git.midipix.org/tpax@main"};
-: ${PKG_TPAX_HOST_CONFIGURE_ARGS:=--prefix=};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/010.host_deps.group b/groups/010.host_deps.group
deleted file mode 100644
index db621ae2..00000000
--- a/groups/010.host_deps.group
+++ /dev/null
@@ -1,298 +0,0 @@
-#
-# Build group host_deps
-#
-HOST_DEPS_BUILD_TYPE="host";
-HOST_DEPS_CFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CFLAGS_HOST}" "-I${PREFIX}/include")";
-HOST_DEPS_CXXFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CXXFLAGS_HOST}" "-I${PREFIX}/include")";
-HOST_DEPS_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX} --program-prefix=";
-HOST_DEPS_GROUP_DEPENDS="host_tools";
-HOST_DEPS_LDFLAGS_CONFIGURE="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib";
-HOST_DEPS_MAKEFLAGS_INSTALL="prefix= PREFIX=";
-HOST_DEPS_PACKAGES="
-binutils_build bison_host bmake_host bzip2_host ca_certificates_host
-chainport_host clang_host clzip_host cmake_host dbus_host
-expat_host file_host flex_host gdb_host gdbm_host glib_host gperf_host
-infounzip_host infozip_host intltool_host libffi_host
-libressl_host libz_host libzip_host llvm_host mdso_host mpackage_host
-musl_fts_host ncurses_host ncursestw_host ncursesw_host pcre_host
-perk_host python2_host python3_host readline_host ruby_host sbsigntools_host
-sqlite3_host texinfo_host tzdb_host util_linux_host xz_host";
-HOST_DEPS_PKG_CONFIG="${PREFIX}/bin/pkgconf";
-HOST_DEPS_PREFIX="${PREFIX}";
-: ${PKG_BINUTILS_BUILD_DEPENDS:="texinfo_host"};
-: ${PKG_BINUTILS_BUILD_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
-: ${PKG_BINUTILS_BUILD_VERSION:=2.24.51};
-: ${PKG_BINUTILS_BUILD_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_BUILD_VERSION}.tar.bz2};
-: ${PKG_BINUTILS_BUILD_AUTOCONF_CONFIG_GUESS:="keep"};
-: ${PKG_BINUTILS_BUILD_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --enable-install-libbfd --prefix=${PREFIX}/opt"};
-: ${PKG_BINUTILS_BUILD_LIBTOOL:=slibtool-static};
-: ${PKG_BINUTILS_BUILD_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_BUILD_VERSION}.midipix.patch"};
-: ${PKG_BINUTILS_BUILD_PREFIX:="${PREFIX}/opt"};
-: ${PKG_BINUTILS_BUILD_VARS_FILE:="vars/binutils.vars"};
-: ${PKG_BISON_HOST_DEPENDS:="readline_host"};
-: ${PKG_BISON_HOST_SHA256SUM:=67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf};
-: ${PKG_BISON_HOST_VERSION:=3.7.6};
-: ${PKG_BISON_HOST_URL:=https://ftp.gnu.org/gnu/bison/bison-${PKG_BISON_HOST_VERSION}.tar.xz};
-: ${PKG_BISON_HOST_ENV_VARS_EXTRA:="M4=${PREFIX}/bin/m4"};
-: ${PKG_BMAKE_HOST_URLS_GIT:="bmake=https://github.com/arichardson/bmake@master"};
-: ${PKG_BMAKE_HOST_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_BMAKE_HOST_CONFIGURE_ARGS:=--with-default-sys-path=${PREFIX}/share/mk};
-: ${PKG_BMAKE_HOST_CFLAGS_BUILD_EXTRA:="-fcommon"};
-: ${PKG_BMAKE_HOST_LDFLAGS_BUILD_EXTRA:="-fcommon"};
-: ${PKG_BZIP2_HOST_SHA256SUM:=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269};
-: ${PKG_BZIP2_HOST_VERSION:=1.0.8};
-: ${PKG_BZIP2_HOST_URL:=https://sourceware.org/pub/bzip2/bzip2-${PKG_BZIP2_HOST_VERSION}.tar.gz};
-: ${PKG_BZIP2_HOST_IN_TREE:=1};
-: ${PKG_BZIP2_HOST_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so};
-: ${PKG_BZIP2_HOST_MAKE_INSTALL_VNAME:=PREFIX};
-: ${PKG_CA_CERTIFICATES_HOST_DEPENDS:="libressl_host"};
-: ${PKG_CA_CERTIFICATES_HOST_URLS_GIT:="ca-certificates=https://github.com/Redfoxmoon3/ca-certificates@master"};
-: ${PKG_CA_CERTIFICATES_HOST_IN_TREE:=1};
-: ${PKG_CA_CERTIFICATES_HOST_CFLAGS_BUILD_EXTRA:=-I${PREFIX}/include};
-: ${PKG_CA_CERTIFICATES_HOST_LDFLAGS_BUILD_EXTRA:=-L${PREFIX}/lib};
-: ${PKG_CA_CERTIFICATES_HOST_ENV_VARS_EXTRA:="HOST_CC=gcc"};
-: ${PKG_CA_CERTIFICATES_HOST_VARS_FILE:="vars/ca_certificates.vars"};
-: ${PKG_CHAINPORT_HOST_URLS_GIT:="chainport=${DEFAULT_GITROOT}/ports/chainport"};
-: ${PKG_CHAINPORT_HOST_BUILD_STEPS_DISABLE:="build install_make install_rpm"};
-: ${PKG_CHAINPORT_HOST_NO_LOG_VARS:=1};
-: ${PKG_CHAINPORT_HOST_INSTALL_FILES_V2:="
- -=%[_workdir]/chainport
- +../chainport=%[_workdir]/chainport"};
-: ${PKG_CLANG_HOST_DEPENDS:="llvm_host"};
-: ${PKG_CLANG_HOST_SHA256SUM:=4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf};
-: ${PKG_CLANG_HOST_VERSION:=3.8.1};
-: ${PKG_CLANG_HOST_URL:=http://releases.llvm.org/${PKG_CLANG_HOST_VERSION}/cfe-${PKG_CLANG_HOST_VERSION}.src.tar.xz};
-: ${PKG_CLANG_HOST_DISABLED:=1};
-: ${PKG_CLANG_HOST_CMAKE_ARGS_EXTRA:="
- -DCLANG_BUILD_EXAMPLES:BOOL=OFF
- -DCLANG_INCLUDE_DOCS:BOOL=OFF
- -DCLANG_INCLUDE_TESTS:BOOL=OFF
- -DLIBCLANG_BUILD_STATIC:BOOL=ON
- -DLLVM_PREFIX=${PREFIX_NATIVE}
- -G Unix Makefiles
- -Wno-dev"};
-: ${PKG_CLZIP_HOST_SHA256SUM:=d9d51212afa80371dc2546d278ef8ebbb3cd57c06fdd761b7b204497586d24c0};
-: ${PKG_CLZIP_HOST_VERSION:=1.11};
-: ${PKG_CLZIP_HOST_URL:=http://download.savannah.gnu.org/releases/lzip/clzip/clzip-${PKG_CLZIP_HOST_VERSION}.tar.gz};
-: ${PKG_CLZIP_HOST_IN_TREE:=1};
-: ${PKG_CLZIP_HOST_INSTALL_FILES_V2:="@clzip=bin/lzip"};
-: ${PKG_CMAKE_HOST_DEPENDS:="bzip2_host musl_fts_host ncurses_host"};
-: ${PKG_CMAKE_HOST_SHA256SUM:=dc1246c4e6d168ea4d6e042cfba577c1acd65feea27e56f5ff37df920c30cae0};
-: ${PKG_CMAKE_HOST_VERSION:=3.7.2};
-: ${PKG_CMAKE_HOST_URL:=https://cmake.org/files/v${PKG_CMAKE_HOST_VERSION%.*}/cmake-${PKG_CMAKE_HOST_VERSION}.tar.gz};
-: ${PKG_CMAKE_HOST_CONFIGURE_TYPE:="cmake"};
-: ${PKG_CMAKE_HOST_CMAKE_ARGS_EXTRA:="
- -DCURSES_NCURSES_LIBRARY=${PREFIX}/lib/libncurses.so
- -DLIBMD_LIBRARY=
-"};
-: ${PKG_CMAKE_HOST_INSTALL_FILES_V2:="+../cmake-${PKG_CMAKE_HOST_VERSION}/Modules/Platform/BSDOS.cmake=share/cmake-${PKG_CMAKE_HOST_VERSION%.*}/Modules/Platform/Midipix.cmake"};
-: ${PKG_DBUS_HOST_DEPENDS:="expat_host"};
-: ${PKG_DBUS_HOST_VERSION:=1.11.20};
-: ${PKG_DBUS_HOST_URL:=https://dbus.freedesktop.org/releases/dbus/dbus-${PKG_DBUS_HOST_VERSION}.tar.gz};
-: ${PKG_DBUS_HOST_SHA256SUM:=7fd9d0536f7ec2f2afc94b84d5b5487f88c464e8d47c661d8e0b54aa83974bfa};
-: ${PKG_DBUS_HOST_CONFIGURE_ARGS_EXTRA:="--disable-tests --with-dbus-daemondir=/bin"};
-: ${PKG_DBUS_HOST_INSTALL_FILES_V2:="
- -=etc/%<*>
- -=var/%<*>"};
-: ${PKG_EXPAT_HOST_SHA256SUM:=caa34f99b6e3bcea8502507eb6549a0a84510b244a748dfb287271b2d47467a9};
-: ${PKG_EXPAT_HOST_VERSION:=2.3.0};
-: ${PKG_EXPAT_HOST_URL:=http://download.openpkg.org/components/cache/expat/expat-${PKG_EXPAT_HOST_VERSION}.tar.xz};
-: ${PKG_EXPAT_HOST_CONFIGURE_ARGS_EXTRA:="--without-docbook"};
-: ${PKG_EXPAT_HOST_CONFIGURE_TYPE:="autotools"};
-: ${PKG_FILE_HOST_SHA256SUM:=8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991};
-: ${PKG_FILE_HOST_VERSION:=5.43};
-: ${PKG_FILE_HOST_URL:=http://ftp.astron.com/pub/file/file-${PKG_FILE_HOST_VERSION}.tar.gz};
-: ${PKG_FILE_HOST_CONFIGURE_ARGS_EXTRA:="--disable-xzlib"};
-: ${PKG_FLEX_HOST_DEPENDS:="bison_host"};
-: ${PKG_FLEX_HOST_SHA256SUM:=e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995};
-: ${PKG_FLEX_HOST_VERSION:=2.6.4};
-: ${PKG_FLEX_HOST_URL:=https://github.com/westes/flex/releases/download/v${PKG_FLEX_HOST_VERSION}/flex-${PKG_FLEX_HOST_VERSION}.tar.gz};
-: ${PKG_FLEX_HOST_CFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
-: ${PKG_GDB_HOST_DISABLED:=1};
-: ${PKG_GDB_HOST_DEPENDS:="chainport_host expat_host ncurses_host python2_host"};
-: ${PKG_GDB_HOST_SHA256SUM:=149abac4add030a5713f15964bd7465bef7a23712bcc91377ca40949f33e93fb};
-: ${PKG_GDB_HOST_VERSION:=7.12};
-: ${PKG_GDB_HOST_URL:=ftp://sourceware.org/pub/gdb/releases/gdb-${PKG_GDB_HOST_VERSION}.tar.gz};
-: ${PKG_GDB_HOST_CFLAGS_CONFIGURE_EXTRA:="-g3 -O0 -I${PREFIX}/include/python2.7"};
-: ${PKG_GDB_HOST_CONFIGURE_ARGS:="--disable-nls --prefix= --target=${DEFAULT_TARGET} --with-system-libiberty --with-system-readline --with-system-zlib --with-python=python2.7 --with-guile=no --enable-guile=no"};
-: ${PKG_GDB_HOST_CXXFLAGS_CONFIGURE_EXTRA:="-fpermissive -g3 -O0 -I${PREFIX}/include/python2.7"};
-: ${PKG_GDB_HOST_ENV_VARS_EXTRA:="CFLAGS_FOR_TARGET=-g3 -O0 -I${PREFIX}/include/python2.7"};
-: ${PKG_GDB_HOST_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX}/lib"};
-: ${PKG_GDB_HOST_LIBTOOL:=rdlibtool};
-: ${PKG_GDB_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gdb/gdb-${PKG_GDB_HOST_VERSION}.midipix.patch"};
-: ${PKG_GDB_HOST_VARS_FILE:="vars/gdb.vars"};
-: ${PKG_GDBM_HOST_DEPENDS:="readline_host ncurses_host"};
-: ${PKG_GDBM_HOST_SHA256SUM:=86e613527e5dba544e73208f42b78b7c022d4fa5a6d5498bf18c8d6f745b91dc};
-: ${PKG_GDBM_HOST_VERSION:=1.18.1};
-: ${PKG_GDBM_HOST_URL:=ftp://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_HOST_VERSION}.tar.gz};
-: ${PKG_GDBM_HOST_CONFIGURE_ARGS_EXTRA:=--enable-libgdbm-compat};
-: ${PKG_GDBM_HOST_CFLAGS_CONFIGURE_EXTRA:="-fcommon"};
-: ${PKG_GLIB_HOST_DEPENDS:="python3_host"};
-: ${PKG_GLIB_HOST_SHA256SUM:=d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789};
-: ${PKG_GLIB_HOST_VERSION:=2.56.2};
-: ${PKG_GLIB_HOST_URL:="https://download.gnome.org/sources/glib/${PKG_GLIB_HOST_VERSION%.[0-9]}/glib-${PKG_GLIB_HOST_VERSION}.tar.xz https://ftp.pieskovisko.sk/slackware/slackware-current/source/l/glib2/glib-${PKG_GLIB_HOST_VERSION}.tar.xz"};
-: ${PKG_GLIB_HOST_BUILD_STEPS_DISABLE:=configure_patch};
-: ${PKG_GLIB_HOST_CONFIGURE_ARGS_EXTRA:="--with-pcre=internal --with-python=${PREFIX}/bin/python3 --disable-dtrace --disable-libelf --disable-libmount"};
-: ${PKG_GLIB_HOST_CFLAGS_BUILD_EXTRA:="-Wno-missing-include-dirs -Wno-format-nonliteral -Wno-format-overflow"};
-: ${PKG_GLIB_HOST_ENV_VARS_EXTRA:="LIBFFI_CFLAGS=-I${PREFIX}/lib/libffi-3.2.1/include:LIBFFI_LIBS=-L${PREFIX}/lib -lffi"};
-: ${PKG_GLIB_HOST_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX}/lib};
-: ${PKG_GPERF_HOST_SHA256SUM:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2};
-: ${PKG_GPERF_HOST_VERSION:=3.1};
-: ${PKG_GPERF_HOST_URL:=https://ftp.gnu.org/gnu/gperf/gperf-${PKG_GPERF_HOST_VERSION}.tar.gz};
-: ${PKG_INFOUNZIP_HOST_URLS_GIT:=infounzip-host=https://github.com/Redfoxmoon3/infounzip.git@master};
-: ${PKG_INFOUNZIP_HOST_IN_TREE:=1};
-: ${PKG_INFOZIP_HOST_URLS_GIT:=infozip-host=https://github.com/Redfoxmoon3/infozip.git@master};
-: ${PKG_INFOZIP_HOST_IN_TREE:=1};
-: ${PKG_INTLTOOL_HOST_SHA256SUM:=67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd};
-: ${PKG_INTLTOOL_HOST_VERSION:=0.51.0};
-: ${PKG_INTLTOOL_HOST_URL:=https://launchpad.net/intltool/trunk/${PKG_INTLTOOL_HOST_VERSION}/+download/intltool-${PKG_INTLTOOL_HOST_VERSION}.tar.gz};
-: ${PKG_LIBFFI_HOST_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37};
-: ${PKG_LIBFFI_HOST_VERSION:=3.2.1};
-: ${PKG_LIBFFI_HOST_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_HOST_VERSION}.tar.gz};
-: ${PKG_LIBFFI_HOST_INSTALL_FILES_V2:="
- @../lib/libffi-3.2.1/include/ffi.h=include/ffi.h
- @../lib/libffi-3.2.1/include/ffitarget.h=include/ffitarget.h"};
-: ${PKG_LIBFFI_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libffi/libffi-${PKG_LIBFFI_HOST_VERSION}.midipix.patch"};
-: ${PKG_LIBRESSL_HOST_SHA256SUM:=a471565b36ccd1a70d0bd7d37c6e95c43a26a62829b487d9d2cdebfe58be3066};
-: ${PKG_LIBRESSL_HOST_VERSION:=3.3.3};
-: ${PKG_LIBRESSL_HOST_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_HOST_VERSION}.tar.gz};
-: ${PKG_LIBRESSL_HOST_LDFLAGS_CONFIGURE:="-Wl,-rpath,${PREFIX}/lib"};
-: ${PKG_LIBZ_HOST_SHA256SUM:=abcc2831b7a0e891d0875fa852e9b9510b420d843d3d20aad010f65493fe4f7b};
-: ${PKG_LIBZ_HOST_VERSION:=1.2.8.2015.12.26};
-: ${PKG_LIBZ_HOST_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_HOST_VERSION}.tar.gz};
-: ${PKG_LIBZ_HOST_CONFIGURE_ARGS:="--enable-shared --prefix="};
-: ${PKG_LIBZIP_HOST_DEPENDS:="cmake_host libz_host"};
-: ${PKG_LIBZIP_HOST_SHA256SUM:=a020dc1b17a79faa748e43a05f8605d65e403813e8e97ad3a300a90ddba097ac};
-: ${PKG_LIBZIP_HOST_VERSION:=1.7.1};
-: ${PKG_LIBZIP_HOST_URL:=https://libzip.org/download/libzip-${PKG_LIBZIP_HOST_VERSION}.tar.xz};
-: ${PKG_LIBZIP_HOST_CMAKE_ARGS_EXTRA:="
- -DENABLE_GNUTLS=:BOOL=OFF
- -DENABLE_MBEDTLS=:BOOL=OFF"};
-: ${PKG_LLVM_HOST_SHA256SUM:=6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9};
-: ${PKG_LLVM_HOST_VERSION:=3.8.1};
-: ${PKG_LLVM_HOST_URL:=http://releases.llvm.org/${PKG_LLVM_HOST_VERSION}/llvm-${PKG_LLVM_HOST_VERSION}.src.tar.xz};
-: ${PKG_LLVM_HOST_DISABLED:=1};
-: ${PKG_LLVM_HOST_CMAKE_ARGS_EXTRA:="
- -DCMAKE_BUILD_TYPE=Release
- -DLLVM_BUILD_DOCS=NO
- -DLLVM_BUILD_EXAMPLES=NO
- -DLLVM_BUILD_TESTS=NO
- -DLLVM_ENABLE_SPHINX=NO
- -DLLVM_TARGETS_TO_BUILD=X86
- -DSPHINX_WARNINGS_AS_ERRORS=NO
- -G Unix Makefiles
- -Wno-dev"};
-: ${PKG_MDSO_HOST_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"};
-: ${PKG_MDSO_HOST_CONFIGURE_ARGS:="--prefix="};
-: ${PKG_MDSO_HOST_INSTALL_FILES_V2:="
- @mdso=bin/${DEFAULT_TARGET}-mdso
- /=${DEFAULT_TARGET}/bin
- +bin/mdso=${DEFAULT_TARGET}/bin/mdso"};
-: ${PKG_MPACKAGE_HOST_URLS_GIT:=mpackage=${DEFAULT_GITROOT}/mpackage};
-: ${PKG_MPACKAGE_HOST_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
-: ${PKG_MPACKAGE_HOST_IN_TREE:=1};
-: ${PKG_MPACKAGE_HOST_PKGLIST_DISABLE:=1};
-: ${PKG_MPACKAGE_HOST_PREFIX:=${PREFIX_NATIVE}};
-: ${PKG_MPACKAGE_HOST_RPM_DISABLE:=1};
-: ${PKG_MUSL_FTS_HOST_SHA256SUM:=32dfe02768f1d3d91ab04df4fbdb7922cd34cd529ce7081a78c3ca8b8652d1ee};
-: ${PKG_MUSL_FTS_HOST_VERSION:=1.2.7};
-: ${PKG_MUSL_FTS_HOST_URL:=https://midipix.org/mirror/musl-fts/musl-fts-${PKG_MUSL_FTS_HOST_VERSION}.tar.xz};
-: ${PKG_NCURSES_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSES_HOST_VERSION:=6.3};
-: ${PKG_NCURSES_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_HOST_VERSION}.tar.gz};
-: ${PKG_NCURSES_HOST_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
-: ${PKG_NCURSES_HOST_CONFIGURE_ARGS:="-C --disable-nls --prefix=${PREFIX} --program-prefix= --with-curses"};
-: ${PKG_NCURSES_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --without-pthread"};
-: ${PKG_NCURSES_HOST_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_NCURSESTW_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSESTW_HOST_VERSION:=6.3};
-: ${PKG_NCURSESTW_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_HOST_VERSION}.tar.gz};
-: ${PKG_NCURSESTW_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --with-pthread"};
-: ${PKG_NCURSESW_HOST_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSESW_HOST_VERSION:=6.3};
-: ${PKG_NCURSESW_HOST_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_HOST_VERSION}.tar.gz};
-: ${PKG_NCURSESW_HOST_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX}/lib/pkgconfig --with-manpages --with-progs --with-shared --with-termlib --without-ada --without-tests --enable-widec --without-pthread"};
-: ${PKG_NCURSESW_HOST_INSTALL_FILES_V2:="@ncursesw/ncurses.h=include/ncurses.h"};
-: ${PKG_PCRE_HOST_DEPENDS:="bzip2_host"};
-: ${PKG_PCRE_HOST_SHA256SUM:=91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b};
-: ${PKG_PCRE_HOST_VERSION:=8.43};
-: ${PKG_PCRE_HOST_URL:=https://ftp.pcre.org/pub/pcre/pcre-${PKG_PCRE_HOST_VERSION}.tar.bz2};
-: ${PKG_PERK_HOST_DEPENDS:="mdso_host"};
-: ${PKG_PERK_HOST_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"};
-: ${PKG_PERK_HOST_CONFIGURE_ARGS:="--prefix="};
-: ${PKG_PERK_HOST_INSTALL_FILES_V2:="@perk=bin/${DEFAULT_TARGET}-perk"};
-: ${PKG_PERK_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_PYTHON2_HOST_DEPENDS:="bzip2_host expat_host gdbm_host libffi_host readline_host libz_host ncurses_host ncursesw_host sqlite3_host"};
-: ${PKG_PYTHON2_HOST_SHA256SUM:=b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43};
-: ${PKG_PYTHON2_HOST_VERSION:=2.7.18};
-: ${PKG_PYTHON2_HOST_URL:="https://www.python.org/ftp/python/${PKG_PYTHON2_HOST_VERSION}/Python-${PKG_PYTHON2_HOST_VERSION}.tar.xz"};
-: ${PKG_PYTHON2_HOST_URLS_GIT:="build/sbpython2=${DEFAULT_GITROOT}/python/sbpython2@main"};
-: ${PKG_PYTHON2_HOST_BASE_DIR:=${BUILD_WORKDIR}/python2_host-host-${DEFAULT_TARGET}};
-: ${PKG_PYTHON2_HOST_BUILD_DIR:=build/python2};
-: ${PKG_PYTHON2_HOST_CONFIGURE:=build/sbpython2/configure};
-: ${PKG_PYTHON2_HOST_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON2_HOST_VERSION} --prefix=${PREFIX}"};
-: ${PKG_PYTHON2_HOST_CONFIGURE_TYPE:="sofort"};
-: ${PKG_PYTHON2_HOST_INSTALL_FILES_V2:="+%[_files]/bin/python2.7-config=bin/%[FNAME]"};
-: ${PKG_PYTHON2_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= EXEC_PREFIX= BINDIR=/bin SBINDIR=/sbin LIBDIR=/lib INCLUDEDIR=/include OLDINCLUDEDIR=/include MANDIR=/share/man DOCDIR=/share/doc LIBEXECDIR=/libexec"};
-: ${PKG_PYTHON2_HOST_SUBDIR:=Python-${PKG_PYTHON2_HOST_VERSION}};
-: ${PKG_PYTHON3_HOST_DEPENDS:="bzip2_host expat_host gdbm_host libffi_host readline_host libressl_host libz_host ncurses_host ncursesw_host sqlite3_host xz_host"};
-: ${PKG_PYTHON3_HOST_SHA256SUM:=f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b};
-: ${PKG_PYTHON3_HOST_VERSION:=3.7.10};
-: ${PKG_PYTHON3_HOST_URL:="https://www.python.org/ftp/python/${PKG_PYTHON3_HOST_VERSION}/Python-${PKG_PYTHON3_HOST_VERSION}.tar.xz"};
-: ${PKG_PYTHON3_HOST_URLS_GIT:="build/sbpython3=${DEFAULT_GITROOT}/python/sbpython3@main"};
-: ${PKG_PYTHON3_HOST_BASE_DIR:=${BUILD_WORKDIR}/python3_host-host-${DEFAULT_TARGET}};
-: ${PKG_PYTHON3_HOST_BUILD_DIR:=build/python3};
-: ${PKG_PYTHON3_HOST_CONFIGURE:=build/sbpython3/configure};
-: ${PKG_PYTHON3_HOST_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON3_HOST_VERSION} --prefix=${PREFIX}"};
-: ${PKG_PYTHON3_HOST_CONFIGURE_TYPE:="sofort"};
-: ${PKG_PYTHON3_HOST_INSTALL_FILES_V2:="@python3=bin/python"};
-: ${PKG_PYTHON3_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= EXEC_PREFIX= BINDIR=/bin SBINDIR=/sbin LIBDIR=/lib INCLUDEDIR=/include OLDINCLUDEDIR=/include MANDIR=/share/man DOCDIR=/share/doc LIBEXECDIR=/libexec"};
-: ${PKG_PYTHON3_HOST_SUBDIR:=Python-${PKG_PYTHON3_HOST_VERSION}};
-: ${PKG_READLINE_HOST_DEPENDS:="ncurses_host ncursestw_host ncursesw_host"};
-: ${PKG_READLINE_HOST_SHA256SUM:=7589a2381a8419e68654a47623ce7dfcb756815c8fee726b98f90bf668af7bc6};
-: ${PKG_READLINE_HOST_VERSION:=8.1.2};
-: ${PKG_READLINE_HOST_URL:=https://ftp.gnu.org/gnu/readline/readline-${PKG_READLINE_HOST_VERSION}.tar.gz};
-: ${PKG_READLINE_HOST_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
-: ${PKG_READLINE_HOST_CONFIGURE_ARGS_EXTRA:="--with-curses"};
-: ${PKG_READLINE_HOST_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_RUBY_HOST_SHA256SUM:=ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507};
-: ${PKG_RUBY_HOST_VERSION:=2.3.0};
-: ${PKG_RUBY_HOST_URL:=https://cache.ruby-lang.org/pub/ruby/${PKG_RUBY_HOST_VERSION%.*}/ruby-${PKG_RUBY_HOST_VERSION}.tar.gz};
-: ${PKG_RUBY_HOST_BUILD_STEPS_DISABLE:=configure_patch};
-: ${PKG_RUBY_HOST_CFLAGS_CONFIGURE:="-g0 -O1 -DHAVE_RL_USERNAME_COMPLETION_FUNCTION=1"};
-: ${PKG_RUBY_HOST_CONFIGURE_ARGS_EXTRA:="--disable-install-rdoc --with-out-ext=fiddle,openssl"};
-: ${PKG_RUBY_HOST_MAKEFLAGS_VERBOSITY:="none"};
-: ${PKG_SBSIGNTOOLS_HOST_DEPENDS:="binutils_build libressl_host util_linux_host"};
-: ${PKG_SBSIGNTOOLS_HOST_URLS_GIT:=sbsigntools-master=https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git@master};
-: ${PKG_SBSIGNTOOLS_HOST_SUBDIR:=sbsigntools-master};
-: ${PKG_SBSIGNTOOLS_HOST_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX}/opt/include"};
-: ${PKG_SBSIGNTOOLS_HOST_IN_TREE:=1};
-: ${PKG_SBSIGNTOOLS_HOST_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX}/opt/lib"};
-: ${PKG_SQLITE3_HOST_DEPENDS:="readline_host ncurses_host"};
-: ${PKG_SQLITE3_HOST_SHA256SUM:=bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3};
-: ${PKG_SQLITE3_HOST_VERSION:=3360000};
-: ${PKG_SQLITE3_HOST_URL:=https://sqlite.org/2021/sqlite-autoconf-${PKG_SQLITE3_HOST_VERSION}.tar.gz};
-: ${PKG_TEXINFO_HOST_SHA256SUM:=988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa};
-: ${PKG_TEXINFO_HOST_VERSION:=6.7};
-: ${PKG_TEXINFO_HOST_URL:=https://ftp.gnu.org/gnu/texinfo/texinfo-${PKG_TEXINFO_HOST_VERSION}.tar.xz};
-: ${PKG_TEXINFO_HOST_INSTALL_FILES_V2:="
- !bin/makeinfo=bin/makeinfo.dist
- +%[_files]/bin/makeinfo=bin/makeinfo
- m0755=bin/makeinfo"};
-: ${PKG_TEXINFO_HOST_LIBTOOL:=rdlibtool};
-: ${PKG_TZDB_HOST_DEPENDS:="clzip_host"};
-: ${PKG_TZDB_HOST_SHA256SUM:=b1c23c7825f5f842e6e1ddb702efe85b1c22bdf0e41815b927cfc04a28372962};
-: ${PKG_TZDB_HOST_VERSION:=2018e};
-: ${PKG_TZDB_HOST_URL:=https://data.iana.org/time-zones/releases/tzdb-${PKG_TZDB_HOST_VERSION}.tar.lz};
-: ${PKG_TZDB_HOST_BUILD_DIR:="tzdb-${PKG_TZDB_HOST_VERSION}"};
-: ${PKG_TZDB_HOST_INSTALL_FILES_V2:="-=etc/%<*>"};
-: ${PKG_UTIL_LINUX_HOST_DEPENDS:="ncursesw_host"};
-: ${PKG_UTIL_LINUX_HOST_SHA256SUM:=37de03dbb98cdeffdf9e754122b0aca2a9bbdc19769f6570dfcb6f123643bf53};
-: ${PKG_UTIL_LINUX_HOST_VERSION:=2.36.1};
-: ${PKG_UTIL_LINUX_HOST_URL:=https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${PKG_UTIL_LINUX_HOST_VERSION%.*}/util-linux-${PKG_UTIL_LINUX_HOST_VERSION}.tar.gz};
-: ${PKG_UTIL_LINUX_HOST_CONFIGURE_ARGS_EXTRA:="--disable-all-programs --enable-libuuid"};
-: ${PKG_XZ_HOST_SHA256SUM:=3e1e518ffc912f86608a8cb35e4bd41ad1aec210df2a47aaa1f95e7f5576ef56};
-: ${PKG_XZ_HOST_VERSION:=5.2.5};
-: ${PKG_XZ_HOST_URL:=https://fossies.org/linux/misc/xz-${PKG_XZ_HOST_VERSION}.tar.xz};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/020.host_deps_rpm.group b/groups/020.host_deps_rpm.group
deleted file mode 100644
index 0a1e7588..00000000
--- a/groups/020.host_deps_rpm.group
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Build group host_deps_rpm
-#
-HOST_DEPS_RPM_BUILD_TYPE="host";
-HOST_DEPS_RPM_CFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CFLAGS_HOST}" "-I${PREFIX}/include")";
-HOST_DEPS_RPM_CXXFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CXXFLAGS_HOST}" "-I${PREFIX}/include")";
-HOST_DEPS_RPM_CONFIGURE_ARGS="--disable-nls --prefix=${PREFIX}";
-HOST_DEPS_RPM_GROUP_DEPENDS="host_deps host_tools";
-HOST_DEPS_RPM_LDFLAGS_CONFIGURE="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib";
-HOST_DEPS_RPM_MAKEFLAGS_INSTALL_EXTRA="prefix= PREFIX=";
-HOST_DEPS_RPM_PACKAGES="
-libarchive_host popt_host rpm_host";
-HOST_DEPS_RPM_PKG_CONFIG="${PREFIX}/bin/pkgconf";
-HOST_DEPS_RPM_PREFIX="${PREFIX}";
-: ${PKG_LIBARCHIVE_HOST_SHA256SUM:=f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0};
-: ${PKG_LIBARCHIVE_HOST_VERSION:=3.5.2};
-: ${PKG_LIBARCHIVE_HOST_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_HOST_VERSION}.tar.xz};
-: ${PKG_LIBARCHIVE_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_LIBARCHIVE_HOST_CONFIGURE_ARGS_EXTRA:="--without-xml2"};
-: ${PKG_LIBARCHIVE_HOST_LDFLAGS_CONFIGURE:="-L${PREFIX}/lib"};
-: ${PKG_LIBARCHIVE_HOST_LIBTOOL:=rdlibtool};
-: ${PKG_POPT_HOST_SHA256SUM:=5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1};
-: ${PKG_POPT_HOST_VERSION:=1.18};
-: ${PKG_POPT_HOST_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/popt/popt-${PKG_POPT_HOST_VERSION}.tar.gz};
-: ${PKG_RPM_HOST_DEPENDS:="libarchive_host popt_host file_host"};
-: ${PKG_RPM_HOST_SHA256SUM:=ca5974e9da2939afb422598818ef187385061889ba766166c4a3829c5ef8d411};
-: ${PKG_RPM_HOST_VERSION:=4.16.0};
-: ${PKG_RPM_HOST_URL:=http://ftp.rpm.org/releases/rpm-${PKG_RPM_HOST_VERSION%.*}.x/rpm-${PKG_RPM_HOST_VERSION}.tar.bz2};
-: ${PKG_RPM_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include -I${PREFIX}/include/dbus-1.0 -I${PREFIX}/lib/dbus-1.0/include"};
-: ${PKG_RPM_HOST_CONFIGURE_ARGS_EXTRA:="--enable-bdb=no --enable-ndb --with-crypto=openssl --with-vendor=midipix --without-lua --disable-libelf"};
-: ${PKG_RPM_HOST_INSTALL_FILES_V2:="
- +%[_files]/lib/rpm/elfdeps=lib/rpm/elfdeps
- m0755=lib/rpm/elfdeps
- -=var/%<*>"};
-: ${PKG_RPM_HOST_LDFLAGS_CONFIGURE:="-L${PREFIX}/lib"};
-: ${PKG_RPM_HOST_FORCE_AUTORECONF:=1};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/030.host_toolchain.group b/groups/030.host_toolchain.group
deleted file mode 100644
index 59ccae72..00000000
--- a/groups/030.host_toolchain.group
+++ /dev/null
@@ -1,147 +0,0 @@
-#
-# Build group host_toolchain
-#
-HOST_TOOLCHAIN_BUILD_TYPE="host";
-HOST_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --prefix= --target=${DEFAULT_TARGET}";
-HOST_TOOLCHAIN_GROUP_DEPENDS="host_deps host_deps_rpm host_tools";
-HOST_TOOLCHAIN_MAKEFLAGS_INSTALL_EXTRA="prefix= PREFIX=";
-HOST_TOOLCHAIN_PACKAGES="
-binutils_host binutils_host_mingw32 gcc_full_host gcc_libstdcpp_v3_host
-gcc_runtime_host gcc_stage1_cross_mingw32 gcc_stage1_host gmp_host
-ldso_host mpc_host mpfr_host musl_full_host musl_no_complex_host nasm_host
-psxstub_host psxtypes_host";
-HOST_TOOLCHAIN_PKG_CONFIG="${PREFIX}/bin/pkgconf";
-HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}";
-: ${PKG_BINUTILS_HOST_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
-: ${PKG_BINUTILS_HOST_VERSION:=2.24.51};
-: ${PKG_BINUTILS_HOST_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_VERSION}.tar.bz2};
-: ${PKG_BINUTILS_HOST_AUTOCONF_CONFIG_GUESS:="keep"};
-: ${PKG_BINUTILS_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include -g2 -O0"};
-: ${PKG_BINUTILS_HOST_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --prefix=${PREFIX} --target=${DEFAULT_TARGET} --with-sysroot=${PREFIX_CROSS}"};
-: ${PKG_BINUTILS_HOST_INSTALL_FILES_V2:="
- @%[_target]-windmc=bin/windmc
- @%[_target]-windres=bin/windres"};
-: ${PKG_BINUTILS_HOST_LDFLAGS_CONFIGURE:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"};
-: ${PKG_BINUTILS_HOST_LIBTOOL:=slibtool-static};
-: ${PKG_BINUTILS_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= prefix="};
-: ${PKG_BINUTILS_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_HOST_VERSION}.midipix.patch"};
-: ${PKG_BINUTILS_HOST_PREFIX:=${PREFIX}};
-: ${PKG_BINUTILS_HOST_VARS_FILE:="vars/binutils.vars"};
-: ${PKG_BINUTILS_HOST_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
-: ${PKG_BINUTILS_HOST_MINGW32_VERSION:=2.24.51};
-: ${PKG_BINUTILS_HOST_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_MINGW32_VERSION}.tar.bz2};
-: ${PKG_BINUTILS_HOST_MINGW32_AUTOCONF_CONFIG_GUESS:="keep"};
-: ${PKG_BINUTILS_HOST_MINGW32_CONFIGURE_ARGS:="--disable-nls --disable-werror --enable-deterministic-archives --prefix=${PREFIX} --target=x86_64-w64-mingw32 --with-sysroot=${PREFIX_MINGW32}"};
-: ${PKG_BINUTILS_HOST_MINGW32_LIBTOOL:=slibtool-static};
-: ${PKG_BINUTILS_HOST_MINGW32_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_BINUTILS_HOST_MINGW32_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_HOST_MINGW32_VERSION}.midipix.patch"};
-: ${PKG_BINUTILS_HOST_MINGW32_PREFIX:=${PREFIX}};
-: ${PKG_BINUTILS_HOST_MINGW32_TARGET:="x86_64-w64-mingw32"};
-: ${PKG_BINUTILS_HOST_MINGW32_VARS_FILE:="vars/binutils.vars"};
-: ${PKG_GCC_FULL_HOST_DEPENDS:="gcc_stage1_host gcc_libstdcpp_v3_host ldso_host musl_full_host"};
-: ${PKG_GCC_FULL_HOST_VERSION:=4.6.4};
-: ${PKG_GCC_FULL_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
-: ${PKG_GCC_FULL_HOST_BUILD_DIR:="cbb-gcc-4.6.4-cross-x86_64-nt64-midipix"};
-: ${PKG_GCC_FULL_HOST_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_FULL_HOST_NO_CLEAN_BASE_DIR:=1};
-: ${PKG_GCC_FULL_HOST_PREFIX:=${PREFIX}};
-: ${PKG_GCC_FULL_HOST_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_DEPENDS:="gcc_runtime_host gcc_stage1_host ldso_host musl_full_host"};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_VERSION:=4.6.4};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_NO_CLEAN_BASE_DIR:=1};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_PREFIX:=${PREFIX}};
-: ${PKG_GCC_LIBSTDCPP_V3_HOST_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GCC_RUNTIME_HOST_DEPENDS:="gcc_stage1_host musl_no_complex_host psxstub_host"};
-: ${PKG_GCC_RUNTIME_HOST_VERSION:=4.6.4};
-: ${PKG_GCC_RUNTIME_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
-: ${PKG_GCC_RUNTIME_HOST_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_RUNTIME_HOST_NO_CLEAN_BASE_DIR:=1};
-: ${PKG_GCC_RUNTIME_HOST_PREFIX:=${PREFIX}};
-: ${PKG_GCC_RUNTIME_HOST_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_DEPENDS:="binutils_host_mingw32 gmp_host mpc_host mpfr_host"};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_VERSION:=4.6.4};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-x86_64-w64-mingw32};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_CONFIGURE_ARGS:="--disable-nls --prefix=${PREFIX} --target=x86_64-w64-mingw32"};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_PREFIX:=${PREFIX}};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_TARGET:="x86_64-w64-mingw32"};
-: ${PKG_GCC_STAGE1_CROSS_MINGW32_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GCC_STAGE1_HOST_DEPENDS:="binutils_host gmp_host mpc_host mpfr_host"};
-: ${PKG_GCC_STAGE1_HOST_VERSION:=4.6.4};
-: ${PKG_GCC_STAGE1_HOST_BASE_DIR:=${BUILD_WORKDIR}/gcc-host-${DEFAULT_TARGET}};
-: ${PKG_GCC_STAGE1_HOST_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_GCC_STAGE1_HOST_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_STAGE1_HOST_LDFLAGS_CONFIGURE:="-Wl,-rpath,${PREFIX}/lib"};
-: ${PKG_GCC_STAGE1_HOST_PREFIX:=${PREFIX}};
-: ${PKG_GCC_STAGE1_HOST_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GMP_HOST_SHA256SUM:=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2};
-: ${PKG_GMP_HOST_VERSION:=6.1.2};
-: ${PKG_GMP_HOST_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_HOST_VERSION}.tar.bz2};
-: ${PKG_GMP_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix="};
-: ${PKG_GMP_HOST_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gmp/gmp-${PKG_GMP_HOST_VERSION}.midipix.patch"};
-: ${PKG_GMP_HOST_PREFIX:=${PREFIX}};
-: ${PKG_LDSO_HOST_DEPENDS:="gcc_stage1_host musl_full_host psxtypes_host"};
-: ${PKG_LDSO_HOST_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
-: ${PKG_LDSO_HOST_BUILD_TYPE:=cross};
-: ${PKG_LDSO_HOST_CFLAGS_CONFIGURE_EXTRA:="-O0 -DPE_LDSO -I${PREFIX_CROSS}/include"};
-: ${PKG_LDSO_HOST_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET} --disable-shared"};
-: ${PKG_LDSO_HOST_INSTALL_FILES_V2:="@../%[_target]/lib/libldso.a=%[_prefix]/lib/libldso.a"};
-: ${PKG_LDSO_HOST_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a};
-: ${PKG_LDSO_HOST_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a};
-: ${PKG_MPC_HOST_DEPENDS:="gmp_host mpfr_host"};
-: ${PKG_MPC_HOST_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff};
-: ${PKG_MPC_HOST_VERSION:=1.0.1};
-: ${PKG_MPC_HOST_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_HOST_VERSION}.tar.gz};
-: ${PKG_MPC_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX} --with-mpfr=${PREFIX}"};
-: ${PKG_MPC_HOST_PREFIX:=${PREFIX}};
-: ${PKG_MPFR_HOST_DEPENDS:="gmp_host"};
-: ${PKG_MPFR_HOST_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b};
-: ${PKG_MPFR_HOST_VERSION:=3.1.2};
-: ${PKG_MPFR_HOST_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_HOST_VERSION}.tar.bz2};
-: ${PKG_MPFR_HOST_CONFIGURE_ARGS:="--disable-assembly --disable-nls --prefix= --with-gmp=${PREFIX}"};
-: ${PKG_MPFR_HOST_PREFIX:=${PREFIX}};
-: ${PKG_MUSL_FULL_HOST_DEPENDS:="gcc_stage1_host gcc_runtime_host"};
-: ${PKG_MUSL_FULL_HOST_SHA256SUM:=68af6e18539f646f9c41a3a2bb25be4a5cfa5a8f65f0bb647fd2bbfdf877e84b};
-: ${PKG_MUSL_FULL_HOST_VERSION:=1.2.1};
-: ${PKG_MUSL_FULL_HOST_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_FULL_HOST_VERSION}.tar.gz"}
-: ${PKG_MUSL_FULL_HOST_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
-: ${PKG_MUSL_FULL_HOST_BASE_DIR:=${BUILD_WORKDIR}/musl_full-host-${DEFAULT_TARGET}};
-: ${PKG_MUSL_FULL_HOST_BUILD_DIR:=build/musl};
-: ${PKG_MUSL_FULL_HOST_BUILD_TYPE:=cross};
-: ${PKG_MUSL_FULL_HOST_CONFIGURE:=build/mmglue/configure};
-: ${PKG_MUSL_FULL_HOST_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_FULL_HOST_VERSION} --prefix= --target=${DEFAULT_TARGET} --sysroot=${PREFIX_CROSS}"};
-: ${PKG_MUSL_FULL_HOST_SUBDIR:=musl-${PKG_MUSL_FULL_HOST_VERSION}};
-: ${PKG_MUSL_FULL_HOST_VARS_FILE:="vars/musl.vars"};
-: ${PKG_MUSL_NO_COMPLEX_HOST_DEPENDS:="gcc_stage1_host"};
-: ${PKG_MUSL_NO_COMPLEX_HOST_SHA256SUM:=8a0feb41cef26c97dde382c014e68b9bb335c094bbc1356f6edaaf6b79bd14aa};
-: ${PKG_MUSL_NO_COMPLEX_HOST_VERSION:=1.1.23};
-: ${PKG_MUSL_NO_COMPLEX_HOST_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION}.tar.gz"}
-: ${PKG_MUSL_NO_COMPLEX_HOST_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
-: ${PKG_MUSL_NO_COMPLEX_HOST_BASE_DIR:=${BUILD_WORKDIR}/musl_no_complex-host-${DEFAULT_TARGET}};
-: ${PKG_MUSL_NO_COMPLEX_HOST_BUILD_DIR:=build/musl};
-: ${PKG_MUSL_NO_COMPLEX_HOST_BUILD_TYPE:=cross};
-: ${PKG_MUSL_NO_COMPLEX_HOST_CONFIGURE:=build/mmglue/configure};
-: ${PKG_MUSL_NO_COMPLEX_HOST_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION} --no-complex --prefix= --target=${DEFAULT_TARGET} --sysroot=${PREFIX_CROSS}"};
-: ${PKG_MUSL_NO_COMPLEX_HOST_SUBDIR:=musl-${PKG_MUSL_NO_COMPLEX_HOST_VERSION}};
-: ${PKG_MUSL_NO_COMPLEX_HOST_VARS_FILE:="vars/musl.vars"};
-: ${PKG_NASM_HOST_SHA256SUM:=e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5};
-: ${PKG_NASM_HOST_VERSION:=2.14.02};
-: ${PKG_NASM_HOST_URL:=http://www.nasm.us/pub/nasm/releasebuilds/${PKG_NASM_HOST_VERSION}/nasm-${PKG_NASM_HOST_VERSION}.tar.xz};
-: ${PKG_NASM_HOST_CFLAGS_CONFIGURE_EXTRA:=-DCOFF_MIDIPIX};
-: ${PKG_NASM_HOST_INSTALL_FILES_V2:="!bin/%<*>=bin/%[_target]-%[FNAME]"};
-: ${PKG_NASM_HOST_PREFIX:=${PREFIX}};
-: ${PKG_PSXSTUB_HOST_DEPENDS:="gcc_stage1_host"};
-: ${PKG_PSXSTUB_HOST_URLS_GIT:="psxstub=${DEFAULT_GITROOT}/psxstub"};
-: ${PKG_PSXSTUB_HOST_BUILD_STEPS_DISABLE:=build};
-: ${PKG_PSXSTUB_HOST_ENV_VARS_EXTRA:=TARGET=${DEFAULT_TARGET}};
-: ${PKG_PSXSTUB_HOST_IN_TREE:=1};
-: ${PKG_PSXTYPES_HOST_DEPENDS:="gcc_stage1_host"};
-: ${PKG_PSXTYPES_HOST_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes};
-: ${PKG_PSXTYPES_HOST_BUILD_STEPS_DISABLE:=build};
-: ${PKG_PSXTYPES_HOST_CONFIGURE_ARGS:="--disable-nls --prefix="};
-: ${PKG_PSXTYPES_HOST_IN_TREE:=1};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/100.native_tools.group b/groups/100.native_tools.group
deleted file mode 100644
index e74b110f..00000000
--- a/groups/100.native_tools.group
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Build group native_tools
-#
-NATIVE_TOOLS_CONFIGURE_ARGS="--disable-nls --host=${DEFAULT_TARGET} --program-prefix= --prefix=/ --target=${DEFAULT_TARGET}";
-NATIVE_TOOLS_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools";
-NATIVE_TOOLS_MAKEFLAGS_INSTALL="PREFIX= prefix=";
-NATIVE_TOOLS_PACKAGES="
-mdso perk pkgconf slibtool tpax";
-NATIVE_TOOLS_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
-NATIVE_TOOLS_PREFIX="${PREFIX_NATIVE}";
-: ${PKG_MDSO_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"};
-: ${PKG_MDSO_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_MDSO_INSTALL_FILES_V2:="
- @mdso=bin/${DEFAULT_TARGET}-mdso
- /=${DEFAULT_TARGET}/bin
- @../../bin/mdso=${DEFAULT_TARGET}/bin/mdso"};
-: ${PKG_PERK_DEPENDS:="mdso"};
-: ${PKG_PERK_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"};
-: ${PKG_PERK_CFLAGS_CONFIGURE:="-I${PREFIX_NATIVE}/include"};
-: ${PKG_PERK_CONFIGURE_ARGS:="--prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_PERK_INSTALL_FILES_V2:="@perk=bin/${DEFAULT_TARGET}-perk"};
-: ${PKG_PKGCONF_SHA256SUM:=ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf};
-: ${PKG_PKGCONF_VERSION:=1.9.0};
-: ${PKG_PKGCONF_URL:=https://distfiles.dereferenced.org/pkgconf/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.xz};
-: ${PKG_PKGCONF_CONFIGURE_ARGS:="--prefix= --host=${DEFAULT_TARGET} --with-sysroot=${PREFIX_NATIVE}"};
-: ${PKG_PKGCONF_INSTALL_FILES_V2:="
- @pkgconf=bin/pkg-config
- /=lib/pkgconfig"};
-: ${PKG_SLIBTOOL_URLS_GIT:="slibtool=https://git.midipix.org/slibtool"};
-: ${PKG_SLIBTOOL_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_TPAX_URLS_GIT:="tpax=https://git.midipix.org/tpax@main"};
-: ${PKG_TPAX_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/110.native_toolchain.group b/groups/110.native_toolchain.group
deleted file mode 100644
index 9fcbe96d..00000000
--- a/groups/110.native_toolchain.group
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Build group native_toolchain
-#
-NATIVE_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --host=${DEFAULT_TARGET} --program-prefix= --prefix=/ --target=${DEFAULT_TARGET}";
-NATIVE_TOOLCHAIN_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools native_tools";
-NATIVE_TOOLCHAIN_PACKAGES="
-binutils binutils_mingw32 gcc_full gcc_stage1_native_mingw32 gmp mpc mpfr musl_full ";
-NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}";
-: ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
-: ${PKG_BINUTILS_VERSION:=2.24.51};
-: ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2};
-: ${PKG_BINUTILS_AUTOCONF_CONFIG_GUESS:="keep"};
-: ${PKG_BINUTILS_CONFIGURE_ARGS_EXTRA:="--enable-deterministic-archives --with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/"};
-: ${PKG_BINUTILS_CFLAGS_CONFIGURE:="-isystem ${PREFIX_NATIVE}/include -Wno-error=cpp"};
-: ${PKG_BINUTILS_LDFLAGS_CONFIGURE:="-L${PREFIX_NATIVE}/lib"};
-: ${PKG_BINUTILS_INSTALL_FILES_V2:="
- +%[_builddir]/bfd/bfd.h=include/%[FNAME]
- +%[_builddir]/bfd/.libs/libbfd.a=lib/%[FNAME]
- +%[_subdir]/include/ansidecl.h=include/%[FNAME]
- +%[_subdir]/include/symcat.h=include/%[FNAME]"};
-: ${PKG_BINUTILS_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_VERSION}.midipix.patch"};
-: ${PKG_BINUTILS_LIBTOOL:=slibtool-static};
-: ${PKG_BINUTILS_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa};
-: ${PKG_BINUTILS_MINGW32_VERSION:=2.24.51};
-: ${PKG_BINUTILS_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_MINGW32_VERSION}.tar.bz2};
-: ${PKG_BINUTILS_MINGW32_AUTOCONF_CONFIG_GUESS:="keep"};
-: ${PKG_BINUTILS_MINGW32_CONFIGURE_ARGS:="--disable-nls --enable-deterministic-archives --host=${DEFAULT_TARGET} --prefix=/ --target=x86_64-w64-mingw32 --with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/"};
-: ${PKG_BINUTILS_MINGW32_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/binutils/binutils-${PKG_BINUTILS_MINGW32_VERSION}.midipix.patch"};
-: ${PKG_BINUTILS_MINGW32_PREFIX:="${PREFIX_NATIVE}"};
-: ${PKG_BINUTILS_MINGW32_LIBTOOL:=slibtool-static};
-: ${PKG_BINUTILS_MINGW32_VARS_FILE:="vars/binutils.vars"};
-: ${PKG_GCC_FULL_DEPENDS:="binutils gmp mpc mpfr musl_full"};
-: ${PKG_GCC_FULL_VERSION:=4.6.4};
-: ${PKG_GCC_FULL_BASE_DIR:=${BUILD_WORKDIR}/gcc-native-${DEFAULT_TARGET}};
-: ${PKG_GCC_FULL_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_GCC_FULL_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_FULL_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_DEPENDS:="binutils_mingw32 gmp mpc mpfr"};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_VERSION:=4.6.4};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_BASE_DIR:=${BUILD_WORKDIR}/gcc-native-x86_64-w64-mingw32};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_CFLAGS_CONFIGURE:="-I${PREFIX}/include"};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix=/ --target=x86_64-w64-mingw32"};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_GITROOT:=${DEFAULT_GITROOT}};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_PREFIX:="${PREFIX_NATIVE}"};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_TARGET:=x86_64-w64-mingw32};
-: ${PKG_GCC_STAGE1_NATIVE_MINGW32_VARS_FILE:="vars/gcc.vars"};
-: ${PKG_GMP_SHA256SUM:=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2};
-: ${PKG_GMP_VERSION:=6.1.2};
-: ${PKG_GMP_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_VERSION}.tar.bz2};
-: ${PKG_GMP_CONFIGURE_ARGS_EXTRA:=--disable-assembly};
-: ${PKG_GMP_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gmp/gmp-${PKG_GMP_VERSION}.midipix.patch"};
-: ${PKG_MPC_DEPENDS:="gmp mpfr"};
-: ${PKG_MPC_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff};
-: ${PKG_MPC_VERSION:=1.0.1};
-: ${PKG_MPC_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_VERSION}.tar.gz};
-: ${PKG_MPC_CONFIGURE_ARGS_EXTRA:="--disable-assembly --with-gmp=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE}"};
-: ${PKG_MPFR_DEPENDS:="gmp"};
-: ${PKG_MPFR_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b};
-: ${PKG_MPFR_VERSION:=3.1.2};
-: ${PKG_MPFR_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_VERSION}.tar.bz2};
-: ${PKG_MPFR_CONFIGURE_ARGS_EXTRA:="--disable-assembly --with-gmp=${PREFIX_NATIVE}"};
-: ${PKG_MUSL_FULL_DEPENDS:="binutils"};
-: ${PKG_MUSL_FULL_SHA256SUM:=68af6e18539f646f9c41a3a2bb25be4a5cfa5a8f65f0bb647fd2bbfdf877e84b};
-: ${PKG_MUSL_FULL_VERSION:=1.2.1};
-: ${PKG_MUSL_FULL_URL:="http://www.musl-libc.org/releases/musl-${PKG_MUSL_FULL_VERSION}.tar.gz"}
-: ${PKG_MUSL_FULL_URLS_GIT:="mmglue=${DEFAULT_GITROOT}/mmglue@main"};
-: ${PKG_MUSL_FULL_BASE_DIR:=${BUILD_WORKDIR}/musl_full-native-${DEFAULT_TARGET}};
-: ${PKG_MUSL_FULL_BUILD_DIR:=build/musl};
-: ${PKG_MUSL_FULL_CONFIGURE:=build/mmglue/configure};
-: ${PKG_MUSL_FULL_CONFIGURE_ARGS:="--source-dir=../../musl-${PKG_MUSL_FULL_VERSION} --prefix= --target=${DEFAULT_TARGET} --sysroot=${PREFIX_CROSS}"};
-: ${PKG_MUSL_FULL_SUBDIR:=musl-${PKG_MUSL_FULL_VERSION}};
-: ${PKG_MUSL_FULL_VARS_FILE:="vars/musl.vars"};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/120.native_runtime.group b/groups/120.native_runtime.group
deleted file mode 100644
index 2fe70f2a..00000000
--- a/groups/120.native_runtime.group
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# Build group native_runtime
-#
-NATIVE_RUNTIME_BUILD_TYPE="native";
-NATIVE_RUNTIME_CFLAGS_CONFIGURE="${DEFAULT_CFLAGS_RUNTIME}";
-NATIVE_RUNTIME_CXXFLAGS_CONFIGURE="${DEFAULT_CXXFLAGS_RUNTIME}";
-NATIVE_RUNTIME_CONFIGURE_ARGS="--prefix= --strict --host=${DEFAULT_TARGET}";
-NATIVE_RUNTIME_ENV_VARS_EXTRA="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib";
-NATIVE_RUNTIME_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools native_toolchain native_tools";
-NATIVE_RUNTIME_PACKAGES="
-dalist ldso ntapi ntcon ntctty ntux pemagine psxscl psxscl_strace psxtypes ptycon toksvc sltdl u16ports";
-NATIVE_RUNTIME_PREFIX="${PREFIX_NATIVE}";
-: ${PKG_DALIST_DEPENDS:="ldso psxtypes"};
-: ${PKG_DALIST_URLS_GIT:=dalist=${DEFAULT_GITROOT}/dalist};
-: ${PKG_DALIST_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_LDSO_DEPENDS:="psxtypes"};
-: ${PKG_LDSO_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
-: ${PKG_LDSO_CFLAGS_CONFIGURE_EXTRA:="-O0 -DPE_LDSO"};
-: ${PKG_LDSO_CONFIGURE_ARGS_EXTRA:=--disable-shared};
-: ${PKG_LDSO_INSTALL_FILES_V2:="
- /=${DEFAULT_TARGET}/lib
- @../../lib/libldso.a=${DEFAULT_TARGET}/lib/libldso.a"};
-: ${PKG_LDSO_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a};
-: ${PKG_LDSO_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a};
-: ${PKG_NTAPI_DEPENDS:="dalist ldso pemagine psxtypes"};
-: ${PKG_NTAPI_URLS_GIT:=ntapi=${DEFAULT_GITROOT}/ntapi};
-: ${PKG_NTAPI_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_NTCON_DEPENDS:="ldso pemagine"};
-: ${PKG_NTCON_URLS_GIT:=ntcon=${DEFAULT_GITROOT}/ntcon};
-: ${PKG_NTCON_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_NTCTTY_DEPENDS:="dalist ldso ntapi pemagine"};
-: ${PKG_NTCTTY_URLS_GIT:=ntctty=${DEFAULT_GITROOT_HEAD}/ntctty};
-: ${PKG_NTCTTY_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_NTCTTY_MIRRORS_GIT:="skip"};
-: ${PKG_NTUX_DEPENDS:="dalist ldso ntapi pemagine psxscl"};
-: ${PKG_NTUX_URLS_GIT:=ntux=${DEFAULT_GITROOT}/ntux};
-: ${PKG_NTUX_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_NTUX_HOST_INSTALL_FILES_V2:="+ntux/bin/ntux=bin/%[FNAME]"};
-: ${PKG_PEMAGINE_DEPENDS:="ldso psxtypes"};
-: ${PKG_PEMAGINE_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine};
-: ${PKG_PEMAGINE_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_PEMAGINE_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_PSXSCL_DEPENDS:="dalist ldso ntapi pemagine psxtypes"};
-: ${PKG_PSXSCL_URLS_GIT:=psxscl=${DEFAULT_GITROOT_HEAD}/psxscl};
-: ${PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_PSXSCL_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_PSXSCL_MIRRORS_GIT:="skip"};
-: ${PKG_PSXSCL_STRACE_DEPENDS:="dalist ldso ntapi pemagine psxtypes"};
-: ${PKG_PSXSCL_STRACE_URLS_GIT:=psxscl=${DEFAULT_GITROOT_HEAD}/psxscl};
-: ${PKG_PSXSCL_STRACE_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_PSXSCL_STRACE_CFLAGS_CONFIGURE_EXTRA:="-DPSX_EXTENDED_STRACE -O0"};
-: ${PKG_PSXSCL_STRACE_INSTALL_FILES_V2:="
- /=lib/debug
- +../obj/lib/libpsxscl.so=lib/debug/%[FNAME]"};
-: ${PKG_PSXSCL_STRACE_MIRRORS_GIT:="skip"};
-: ${PKG_PSXTYPES_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes};
-: ${PKG_PSXTYPES_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
-: ${PKG_PSXTYPES_IN_TREE:=1};
-: ${PKG_PTYCON_DEPENDS:="dalist ldso ntapi ntcon psxscl"};
-: ${PKG_PTYCON_URLS_GIT:=ptycon=${DEFAULT_GITROOT}/ptycon};
-: ${PKG_PTYCON_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_PTYCON_INSTALL_TARGET_EXTRA:="install-app install-lib"};
-: ${PKG_TOKSVC_DEPENDS:="dalist ldso ntapi ntcon psxscl"};
-: ${PKG_TOKSVC_URLS_GIT:=toksvc=${DEFAULT_GITROOT}/toksvc};
-: ${PKG_TOKSVC_CFLAGS_CONFIGURE_EXTRA:=-O0};
-: ${PKG_SLTDL_DEPENDS:="ldso"};
-: ${PKG_SLTDL_URLS_GIT:=sltdl=${DEFAULT_GITROOT}/sltdl};
-: ${PKG_SLTDL_CONFIGURE_ARGS_EXTRA:=--as-ltdl-drop-in-replacement};
-: ${PKG_SLTDL_INSTALL_TARGET_EXTRA:=install-lib};
-: ${PKG_U16PORTS_DEPENDS:="ldso"};
-: ${PKG_U16PORTS_URLS_GIT:=u16ports=${DEFAULT_GITROOT}/u16ports};
-: ${PKG_U16PORTS_CFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -Wno-missing-field-initializers"};
-: ${PKG_U16PORTS_INSTALL_TARGET_EXTRA:=install-lib};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/211.native_packages_cmdline.group b/groups/211.native_packages_cmdline.group
deleted file mode 100644
index 4bf43da7..00000000
--- a/groups/211.native_packages_cmdline.group
+++ /dev/null
@@ -1,294 +0,0 @@
-#
-# Build group native_packages (cmdline)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-bas bash bc busybox cabextract calcurse clipboard_utils coreutils cpio dash datamash dos2unix ed exif figlet
-findutils gawk grep html_xml_utils jush lzop mc mksh moe moon_buggy mpg123 mp3splt nano ninvaders
-openbsd_baseutils profanity pixz pv rc sash sbase screen sed sharutils sloccount tar tcsh
-the_silver_searcher toilet tree terminally_tetris ubase which zsh")";
-: ${PKG_BAS_DEPENDS:="ncurses"};
-: ${PKG_BAS_SHA256SUM:=ec45efa90aaa7f15647fe7898fa0789ba26dc8e10b7ecf8e049b1310f626b884};
-: ${PKG_BAS_VERSION:=2.6};
-: ${PKG_BAS_URL:=www.moria.de/~michael/bas/bas-${PKG_BAS_VERSION}.tar.gz};
-: ${PKG_BAS_IN_TREE:=1};
-: ${PKG_BAS_FORCE_AUTORECONF:=1};
-: ${PKG_BASH_DEPENDS:="ncurses"};
-: ${PKG_BASH_SHA256SUM:=5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558};
-: ${PKG_BASH_VERSION:=5.1.16};
-: ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz};
-: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"};
-: ${PKG_BASH_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_BC_SHA256SUM:=62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a};
-: ${PKG_BC_VERSION:=1.07.1};
-: ${PKG_BC_URL:=https://ftp.gnu.org/gnu/bc/bc-${PKG_BC_VERSION}.tar.gz};
-: ${PKG_BUSYBOX_DEPENDS:="libarchive"};
-: ${PKG_BUSYBOX_SHA256SUM:=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694};
-: ${PKG_BUSYBOX_VERSION:=1.35.0};
-: ${PKG_BUSYBOX_URL:=https://busybox.net/downloads/busybox-${PKG_BUSYBOX_VERSION}.tar.bz2};
-: ${PKG_BUSYBOX_DESTDIR:=destdir/busybox};
-: ${PKG_BUSYBOX_IN_TREE=1};
-: ${PKG_BUSYBOX_INSTALL_FILES_V2:="
- :%[_builddir]/_install/bin/%<*>=bin/%[FNAME]"};
-: ${PKG_BUSYBOX_PREFIX:=${PREFIX_NATIVE}/busybox};
-: ${PKG_BUSYBOX_ENV_VARS_EXTRA:="LDFLAGS=--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_CABEXTRACT_DEPENDS:="libmspack"};
-: ${PKG_CABEXTRACT_SHA256SUM:=afc253673c8ef316b4d5c29cc4aa8445844bee14afffbe092ee9469405851ca7};
-: ${PKG_CABEXTRACT_VERSION:=1.9.1};
-: ${PKG_CABEXTRACT_URL:=https://www.cabextract.org.uk/cabextract-${PKG_CABEXTRACT_VERSION}.tar.gz};
-: ${PKG_CABEXTRACT_CONFIGURE_ARGS_EXTRA:=--with-external-libmspack};
-: ${PKG_CALCURSE_DEPENDS:="ncursesw"};
-: ${PKG_CALCURSE_SHA256SUM:=48a736666cc4b6b53012d73b3aa70152c18b41e6c7b4807fab0f168d645ae32c};
-: ${PKG_CALCURSE_VERSION:=4.8.0};
-: ${PKG_CALCURSE_URL:=https://www.calcurse.org/files/calcurse-${PKG_CALCURSE_VERSION}.tar.gz};
-: ${PKG_CALCURSE_CONFIGURE_ARGS_EXTRA:="--without-asciidoc"};
-: ${PKG_CALCURSE_ENV_VARS_EXTRA:="LIBS=-ltinfow"};
-: ${PKG_CLIPBOARD_UTILS_DEPENDS:="w32lib"};
-: ${PKG_CLIPBOARD_UTILS_URLS_GIT:=clipboard-utils=https://github.com/redfoxymoon/clipboard-utils.git@master};
-: ${PKG_CLIPBOARD_UTILS_BUILD_DIR:=clipboard-utils};
-: ${PKG_CLIPBOARD_UTILS_CFLAGS_BUILD_EXTRA:="-g2 -O0"};
-: ${PKG_CLIPBOARD_UTILS_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
-: ${PKG_COREUTILS_DEPENDS:="libiconv"};
-: ${PKG_COREUTILS_SHA256SUM:=61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423};
-: ${PKG_COREUTILS_VERSION:=9.1};
-: ${PKG_COREUTILS_URL:=https://ftp.gnu.org/gnu/coreutils/coreutils-${PKG_COREUTILS_VERSION}.tar.xz};
-: ${PKG_COREUTILS_CONFIGURE_ARGS_EXTRA:="--enable-no-install-program=kill"}
-: ${PKG_CPIO_SHA256SUM:=eab5bdc5ae1df285c59f2a4f140a98fc33678a0bf61bdba67d9436ae26b46f6d};
-: ${PKG_CPIO_VERSION:=2.13};
-: ${PKG_CPIO_URL:=https://ftp.gnu.org/gnu/cpio/cpio-${PKG_CPIO_VERSION}.tar.bz2};
-: ${PKG_DASH_SHA256SUM:=267d5e14f182a3b446ddccd62ffdeb2878403342db9ff82a112556b374d20ff5};
-: ${PKG_DASH_VERSION:=0.5.11.5};
-: ${PKG_DASH_URL:=https://git.kernel.org/pub/scm/utils/dash/dash.git/snapshot/dash-${PKG_DASH_VERSION}.tar.gz};
-: ${PKG_DASH_CONFIGURE_ARGS_EXTRA:="--disable-glob --enable-fnmatch"};
-: ${PKG_DASH_INSTALL_FILES_V2:="@dash=bin/sh"};
-: ${PKG_DATAMASH_SHA256SUM:=7ad97e8c7ef616dd03aa5bd67ae24c488272db3e7d1f5774161c18b75f29f6fd};
-: ${PKG_DATAMASH_VERSION:=1.8};
-: ${PKG_DATAMASH_URL:=https://ftp.gnu.org/gnu/datamash/datamash-${PKG_DATAMASH_VERSION}.tar.gz};
-: ${PKG_DOS2UNIX_SHA256SUM:=b68db41956daf933828423aa30510e00c12d29ef5916e715e8d4e694fe66ca72};
-: ${PKG_DOS2UNIX_VERSION:=7.4.3};
-: ${PKG_DOS2UNIX_URL:=http://waterlan.home.xs4all.nl/dos2unix/dos2unix-${PKG_DOS2UNIX_VERSION}.tar.gz};
-: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_DOS2UNIX_IN_TREE:=1};
-: ${PKG_DOS2UNIX_INSTALL_FILES_V2:="
- +../dos2unix-${PKG_DOS2UNIX_VERSION}/dos2unix=bin/%[FNAME]
- +../dos2unix-${PKG_DOS2UNIX_VERSION}/unix2dos=bin/%[FNAME]
- @dos2unix=bin/mac2unix
- @unix2dos=bin/unix2mac"};
-: ${PKG_ED_SHA256SUM:=aca8efad9800c587724a20b97aa8fc47e6b5a47df81606feaba831b074462b4f};
-: ${PKG_ED_VERSION:=1.18};
-: ${PKG_ED_URL:=https://ftp.gnu.org/gnu/ed/ed-${PKG_ED_VERSION}.tar.lz};
-: ${PKG_ED_CONFIGURE_ARGS:="--prefix= CC=${DEFAULT_TARGET}-gcc"};
-: ${PKG_EXIF_DEPENDS:="libexif popt"};
-: ${PKG_EXIF_SHA256SUM:=0fe268736e0ca0538d4af941022761a438854a64c8024a4175e57bf0418117b9};
-: ${PKG_EXIF_VERSION:=0.6.22};
-: ${PKG_EXIF_URL:=https://github.com/libexif/exif/releases/download/exif-0_6_22-release/exif-${PKG_EXIF_VERSION}.tar.xz};
-: ${PKG_FIGLET_SHA256SUM:=bf88c40fd0f077dab2712f54f8d39ac952e4e9f2e1882f1195be9e5e4257417d};
-: ${PKG_FIGLET_VERSION:=2.2.5};
-: ${PKG_FIGLET_URL:=ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-${PKG_FIGLET_VERSION}.tar.gz};
-: ${PKG_FIGLET_IN_TREE:=1};
-: ${PKG_FIGLET_MAKEFLAGS_BUILD:=CC=${DEFAULT_TARGET}-gcc LD=${DEFAULT_TARGET}-gcc};
-: ${PKG_FINDUTILS_SHA256SUM:=a2bfb8c09d436770edc59f50fa483e785b161a3b7b9d547573cb08065fd462fe};
-: ${PKG_FINDUTILS_VERSION:=4.9.0};
-: ${PKG_FINDUTILS_URL:=https://ftp.gnu.org/gnu/findutils/findutils-${PKG_FINDUTILS_VERSION}.tar.xz};
-: ${PKG_GAWK_DEPENDS:="readline"};
-: ${PKG_GAWK_SHA256SUM:=d87629386e894bbea11a5e00515fc909dc9b7249529dad9e6a3a2c77085f7ea2};
-: ${PKG_GAWK_VERSION:=5.1.1};
-: ${PKG_GAWK_URL:=https://ftp.gnu.org/gnu/gawk/gawk-${PKG_GAWK_VERSION}.tar.xz};
-: ${PKG_GREP_DEPENDS:="pcre2"};
-: ${PKG_GREP_SHA256SUM:=498d7cc1b4fb081904d87343febb73475cf771e424fb7e6141aff66013abc382};
-: ${PKG_GREP_VERSION:=3.8};
-: ${PKG_GREP_URL:=https://ftp.gnu.org/gnu/grep/grep-${PKG_GREP_VERSION}.tar.xz};
-: ${PKG_GREP_CONFIGURE_ARGS_EXTRA:=--enable-perl-regexp};
-: ${PKG_HTML_XML_UTILS_DEPENDS:="curl libidn2 libiconv"};
-: ${PKG_HTML_XML_UTILS_SHA256SUM:=41bb9b14e1f4cd6102e3f8dfb79e7146a24c09693869873165c421769a57d137};
-: ${PKG_HTML_XML_UTILS_VERSION:=8.4};
-: ${PKG_HTML_XML_UTILS_URL:=https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-${PKG_HTML_XML_UTILS_VERSION}.tar.gz};
-: ${PKG_JUSH_DEPENDS:="libeditline"};
-: ${PKG_JUSH_URLS_GIT:="jush-master=https://github.com/troglobit/jush.git@master"};
-: ${PKG_JUSH_SUBDIR:="jush-master"};
-: ${PKG_LZOP_DEPENDS:="lzo"};
-: ${PKG_LZOP_SHA256SUM:=7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41};
-: ${PKG_LZOP_VERSION:=1.04};
-: ${PKG_LZOP_URL:=https://www.lzop.org/download/lzop-${PKG_LZOP_VERSION}.tar.gz};
-: ${PKG_MC_DEPENDS:="glib libX11 ncursesw"};
-: ${PKG_MC_SHA256SUM:=31be59225ffa9920816e9a8b3be0ab225a16d19e4faf46890f25bdffa02a4ff4};
-: ${PKG_MC_VERSION:=4.8.27};
-: ${PKG_MC_URL:=http://ftp.midnight-commander.org/mc-${PKG_MC_VERSION}.tar.xz};
-: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-DNCURSES_INTERNALS -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"};
-: ${PKG_MC_CONFIG_CACHE_EXTRA:="ac_list_mounted_fs=found"};
-: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"};
-: ${PKG_MC_LDFLAGS_BUILD_EXTRA:=-ltinfow};
-: ${PKG_MKSH_SHA256SUM:=8bce3837c386684aa7780f085f1a4dbd5e3e26fb5c528ee0d41ae29af7f39013};
-: ${PKG_MKSH_VERSION:=R54};
-: ${PKG_MKSH_URL:="https://sources.voidlinux.org/mksh-${PKG_MKSH_VERSION}/mksh-${PKG_MKSH_VERSION}.tgz http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz"};
-: ${PKG_MKSH_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_MKSH_ENV_VARS_EXTRA:="CC=${DEFAULT_TARGET}-gcc"};
-: ${PKG_MKSH_INSTALL_FILES_V2:="
- +../mksh/mksh=bin/%[FNAME]
- /=share/doc/mksh/examples
- +../mksh/dot.mkshrc=share/doc/mksh/examples/%[FNAME]
- +../mksh/mksh.1=share/man/man1/%[FNAME]"};
-: ${PKG_MKSH_IN_TREE:=1};
-: ${PKG_MKSH_SUBDIR:=mksh};
-: ${PKG_MOE_DEPENDS:="ncurses ncursesw"};
-: ${PKG_MOE_SHA256SUM:=8a885f2be426f8e04ad39c96012bd860954085a23744f2451663168826d7a1e8};
-: ${PKG_MOE_VERSION:=1.12};
-: ${PKG_MOE_URL:=https://ftp.gnu.org/gnu/moe/moe-${PKG_MOE_VERSION}.tar.lz};
-: ${PKG_MOE_CONFIGURE_ARGS:="--prefix= CXX=${DEFAULT_TARGET}-g++"};
-: ${PKG_MOE_ENV_VARS_EXTRA:="CXXFLAGS=${DEFAULT_CXXFLAGS}"};
-: ${PKG_MOON_BUGGY_DEPENDS:="ncurses"};
-: ${PKG_MOON_BUGGY_SHA256SUM:=352dc16ccae4c66f1e87ab071e6a4ebeb94ff4e4f744ce1b12a769d02fe5d23f};
-: ${PKG_MOON_BUGGY_VERSION:=1.0.51};
-: ${PKG_MOON_BUGGY_URL:=https://m.seehuhn.de/programs/moon-buggy-${PKG_MOON_BUGGY_VERSION}.tar.gz};
-: ${PKG_MOON_BUGGY_CONFIGURE_ARGS_EXTRA:="--sharedstatedir=/etc"};
-: ${PKG_MOON_BUGGY_IN_TREE:=1};
-: ${PKG_MOON_BUGGY_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
-: ${PKG_MPG123_DEPENDS:="w32api w32lib"};
-: ${PKG_MPG123_SHA256SUM:=963885d8cc77262f28b77187c7d189e32195e64244de2530b798ddf32183e847};
-: ${PKG_MPG123_VERSION:=1.29.3};
-: ${PKG_MPG123_URL:=https://mpg123.de/download/mpg123-${PKG_MPG123_VERSION}.tar.bz2};
-: ${PKG_MPG123_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_UTF16_DEFAULT"};
-: ${PKG_MPG123_CONFIGURE_ARGS_EXTRA:="--enable-modules --with-cpu=x86-64 --with-audio=win32"};
-: ${PKG_MPG123_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32"};
-: ${PKG_MP3SPLT_DEPENDS:="libmp3splt"};
-: ${PKG_MP3SPLT_SHA256SUM:=3ec32b10ddd8bb11af987b8cd1c76382c48d265d0ffda53041d9aceb1f103baa};
-: ${PKG_MP3SPLT_VERSION:=2.6.2};
-: ${PKG_MP3SPLT_URL:=https://ftp.fau.de/macports/distfiles/mp3splt/mp3splt-${PKG_MP3SPLT_VERSION}.tar.gz};
-: ${PKG_MP3SPLT_CONFIGURE_ARGS_EXTRA:="--enable-oggsplt_symlink --enable-flacsplt_symlink"};
-: ${PKG_NANO_DEPENDS:="file libz ncursesw"};
-: ${PKG_NANO_SHA256SUM:=85ebd9b4dba49839821d529bea16ac1acae0c9b9db2157531e40c9dffeb1b656};
-: ${PKG_NANO_VERSION:=6.4};
-: ${PKG_NANO_URL:=https://www.nano-editor.org/dist/v${PKG_NANO_VERSION%.[0-9]}/nano-${PKG_NANO_VERSION}.tar.gz};
-: ${PKG_NANO_CFLAGS_CONFIGURE_EXTRA:="-std=gnu99"};
-: ${PKG_NANO_MAKEFLAGS_BUILD:="LIBS=-Wl,-lz,-lmagic,-lncursesw,-ltinfow"};
-: ${PKG_NINVADERS_DEPENDS:="ncurses"};
-: ${PKG_NINVADERS_SHA256SUM:=bfbc5c378704d9cf5e7fed288dac88859149bee5ed0850175759d310b61fd30b};
-: ${PKG_NINVADERS_VERSION:=0.1.1};
-: ${PKG_NINVADERS_URL:=http://http.debian.net/debian/pool/main/n/ninvaders/ninvaders_${PKG_NINVADERS_VERSION}.orig.tar.gz};
-: ${PKG_NINVADERS_BUILD_DIR:=ninvaders-${PKG_NINVADERS_VERSION}};
-: ${PKG_NINVADERS_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_NINVADERS_CFLAGS_BUILD_EXTRA:="-g3 -O0 -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_NINVADERS_INSTALL_FILES_V2:="+../ninvaders-${PKG_NINVADERS_VERSION}/nInvaders=bin/%[FNAME]"};
-: ${PKG_NINVADERS_IN_TREE:=1};
-: ${PKG_NINVADERS_MAKEFLAGS_BUILD:="LIBS=-Wl,-L${PREFIX_NATIVE}/lib,-lncurses,-ltinfo"};
-: ${PKG_NINVADERS_SUBDIR:=ninvaders-${PKG_NINVADERS_VERSION}};
-: ${PKG_OPENBSD_BASEUTILS_DEPENDS:="musl_compat"};
-: ${PKG_OPENBSD_BASEUTILS_URLS_GIT:="baseutils=https://github.com/ibara/baseutils.git@master"};
-: ${PKG_OPENBSD_BASEUTILS_BUILD_DIR:=baseutils};
-: ${PKG_OPENBSD_BASEUTILS_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_OPENBSD_BASEUTILS_CFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
-: ${PKG_OPENBSD_BASEUTILS_INSTALL_FILES_V2:="
- +../baseutils/pax/pax=bin/%[FNAME]
- +../baseutils/pax/%<*.1>=share/man/man1/%[FNAME]"};
-: ${PKG_OPENBSD_BASEUTILS_MAKE_SUBDIRS:="libopenbsd pax"};
-: ${PKG_PROFANITY_DEPENDS:="libffi libstrophe libgcrypt libz glib gpgme ncursesw curl readline sqlite3"};
-: ${PKG_PROFANITY_SHA256SUM:=23f7b2e5c6cf85913b9e7a228802bca9ecb1d1cf3bf8f8f285e9676176a24902};
-: ${PKG_PROFANITY_VERSION:=0.9.5};
-: ${PKG_PROFANITY_URL:=https://profanity-im.github.io/profanity-${PKG_PROFANITY_VERSION}.tar.gz};
-: ${PKG_PROFANITY_CONFIGURE_ARGS_EXTRA:="--disable-python-plugins --disable-icons-and-clipboard --disable-notifications --disable-pgp"};
-: ${PKG_PIXZ_DEPENDS:="libarchive xz"};
-: ${PKG_PIXZ_SHA256SUM:=e5e32c6eb0bf112b98e74a5da8fb63b9f2cae71800f599d97ce540e150c8ddc5};
-: ${PKG_PIXZ_VERSION:=1.0.7};
-: ${PKG_PIXZ_URL:=https://github.com/vasi/pixz/releases/download/v${PKG_PIXZ_VERSION}/pixz-${PKG_PIXZ_VERSION}.tar.xz};
-: ${PKG_PIXZ_CONFIG_CACHE_EXTRA:="ac_cv_file_src_pixz_1=yes"};
-: ${PKG_PIXZ_INSTALL_FILES_V2:="+../pixz-${PKG_PIXZ_VERSION}/src/pixz.1=share/man/man1/%[FNAME]"};
-: ${PKG_PV_SHA256SUM:=e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603};
-: ${PKG_PV_VERSION:=1.6.20};
-: ${PKG_PV_URL:=http://www.ivarch.com/programs/sources/pv-${PKG_PV_VERSION}.tar.bz2};
-: ${PKG_PV_DEBUG_CONFIGURE_ARGS_EXTRA:=--enable-debugging};
-: ${PKG_PV_MAKEFLAGS_BUILD:="LD=${DEFAULT_TARGET}-ld"};
-: ${PKG_RC_DEPENDS:="ncurses readline"};
-: ${PKG_RC_SHA256SUM:=5ed26334dd0c1a616248b15ad7c90ca678ae3066fa02c5ddd0e6936f9af9bfd8};
-: ${PKG_RC_VERSION:=1.7.4};
-: ${PKG_RC_URL:=https://mirror.midipix.org/rc/rc-${PKG_RC_VERSION}.tar.gz};
-: ${PKG_RC_CONFIG_CACHE_EXTRA:="
-ac_cv_func_setpgrp_void=yes
-rc_cv_sys_dev_fd=yes
-rc_cv_sysv_sigcld=no"};
-: ${PKG_RC_CONFIGURE_ARGS_EXTRA:=--with-edit=readline};
-: ${PKG_RC_IN_TREE=1};
-: ${PKG_SASH_DEPENDS:="libz"};
-: ${PKG_SASH_SHA256SUM:=13c4f9a911526949096bf543c21a41149e6b037061193b15ba6b707eea7b6579};
-: ${PKG_SASH_VERSION:=3.8};
-: ${PKG_SASH_URL:=http://members.tip.net.au/%7Edbell/programs/sash-${PKG_SASH_VERSION}.tar.gz};
-: ${PKG_SASH_BUILD_DIR:=sash-${PKG_SASH_VERSION}};
-: ${PKG_SASH_CFLAGS_BUILD_EXTRA:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE} -DHAVE_GZIP=1 -DHAVE_LINUX_ATTR=0 -DHAVE_LINUX_CHROOT=0 -DHAVE_LINUX_LOSETUP=0 -DHAVE_LINUX_PIVOT=0"};
-: ${PKG_SASH_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib"};
-: ${PKG_SBASE_URLS_GIT:="sbase=http://git.suckless.org/sbase@master"};
-: ${PKG_SBASE_DESTDIR:=destdir/suckless};
-: ${PKG_SBASE_CFLAGS_BUILD_EXTRA:="-std=c99 --include=sys/sysmacros.h"};
-: ${PKG_SBASE_IN_TREE:=1};
-: ${PKG_SBASE_MAKE_INSTALL_VNAME:=PREFIX};
-: ${PKG_SBASE_PREFIX:=${PREFIX_NATIVE}/suckless};
-: ${PKG_SCREEN_DEPENDS:="ncursesw"};
-: ${PKG_SCREEN_SHA256SUM:=f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4};
-: ${PKG_SCREEN_VERSION:=4.9.0};
-: ${PKG_SCREEN_URL:=https://ftp.gnu.org/gnu/screen/screen-${PKG_SCREEN_VERSION}.tar.gz};
-: ${PKG_SCREEN_CONFIGURE_ARGS_EXTRA:="--disable-pam"};
-: ${PKG_SCREEN_IN_TREE:=1};
-: ${PKG_SCREEN_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_SED_SHA256SUM:=f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633};
-: ${PKG_SED_VERSION:=4.8};
-: ${PKG_SED_URL:=https://ftp.gnu.org/gnu/sed/sed-${PKG_SED_VERSION}.tar.xz};
-: ${PKG_SHARUTILS_SHA256SUM:=2b05cff7de5d7b646dc1669bc36c35fdac02ac6ae4b6c19cb3340d87ec553a9a};
-: ${PKG_SHARUTILS_VERSION:=4.15.2};
-: ${PKG_SHARUTILS_URL:=https://ftp.gnu.org/gnu/sharutils/sharutils-${PKG_SHARUTILS_VERSION}.tar.xz};
-: ${PKG_SHARUTILS_CONFIG_CACHE_EXTRA:="
-libopts_cv_test_dev_zero=yes
-libopts_cv_run_realpath=yes
-libopts_cv_run_strftime=yes
-libopts_cv_run_fopen_binary=yes"};
-: ${PKG_SLOCCOUNT_SHA256SUM:=fa7fa2bbf2f627dd2d0fdb958bd8ec4527231254c120a8b4322405d8a4e3d12b};
-: ${PKG_SLOCCOUNT_VERSION:=2.26};
-: ${PKG_SLOCCOUNT_URL:=https://www.dwheeler.com/sloccount/sloccount-${PKG_SLOCCOUNT_VERSION}.tar.gz};
-: ${PKG_SLOCCOUNT_IN_TREE:=1};
-: ${PKG_SLOCCOUNT_MAKEFLAGS_INSTALL_EXTRA:="PREFIX=${PREFIX_NATIVE}"};
-: ${PKG_TAR_DEPENDS:="libiconv"};
-: ${PKG_TAR_SHA256SUM:=66a8344b1dc83a411d311bd1547e0176e56cc311f28ee94a30f84dafb3d9067e};
-: ${PKG_TAR_VERSION:=1.33};
-: ${PKG_TAR_URL:=https://ftp.gnu.org/gnu/tar/tar-${PKG_TAR_VERSION}.tar.xz};
-: ${PKG_TCSH_DEPENDS:="ncurses"};
-: ${PKG_TCSH_SHA256SUM:=5659a1b973b1f947e36238cb17a00210ac4cff3b496f8f851acd77172ab91d7e};
-: ${PKG_TCSH_VERSION:=6.24.01};
-: ${PKG_TCSH_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz};
-: ${PKG_THE_SILVER_SEARCHER_DEPENDS:="libz pcre xz"};
-: ${PKG_THE_SILVER_SEARCHER_SHA256SUM:=d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170};
-: ${PKG_THE_SILVER_SEARCHER_VERSION:=2.2.0};
-: ${PKG_THE_SILVER_SEARCHER_URL:=https://geoff.greer.fm/ag/releases/the_silver_searcher-${PKG_THE_SILVER_SEARCHER_VERSION}.tar.gz};
-: ${PKG_TOILET_DEPENDS:="libcaca"};
-: ${PKG_TOILET_URLS_GIT:=toilet=https://github.com/cacalabs/toilet@master};
-: ${PKG_TOILET_ENV_VARS_EXTRA:="CACA_CFLAGS=-I${PREFIX_NATIVE}/include:CACA_LIBS=-L${PREFIX_NATIVE} -lcaca"};
-: ${PKG_TREE_SHA256SUM:=b0ea92197849579a3f09a50dbefc3d4708caf555d304a830e16e20b73b4ffa74};
-: ${PKG_TREE_VERSION:=2.0.4};
-: ${PKG_TREE_URL:=http://mama.indstate.edu/users/ice/tree/src/tree-${PKG_TREE_VERSION}.tgz};
-: ${PKG_TREE_CFLAGS_BUILD:="${NATIVE_PACKAGES_CFLAGS_CONFIGURE}"};
-: ${PKG_TREE_CFLAGS_BUILD_EXTRA:="-std=c99"};
-: ${PKG_TREE_IN_TREE:=1};
-: ${PKG_TERMINALLY_TETRIS_DEPENDS:="ncurses"};
-: ${PKG_TERMINALLY_TETRIS_URLS_GIT:=terminally_tetris=https://github.com/thecardkid/terminally-tetris.git@master};
-: ${PKG_TERMINALLY_TETRIS_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_TERMINALLY_TETRIS_CFLAGS_BUILD_EXTRA:="-std=gnu99 -g3 -O0 -I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_TERMINALLY_TETRIS_INSTALL_FILES_V2:="
- ../terminally_tetris/build/ttetris=bin/%[FNAME]
- ../terminally_tetris/man/ttetris.1=share/man/man1/%[FNAME]"};
-: ${PKG_TERMINALLY_TETRIS_IN_TREE:=1};
-: ${PKG_TERMINALLY_TETRIS_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib -lncurses -Wl,--as-needed -ltinfo -Wl,--no-as-needed"};
-: ${PKG_TERMINALLY_TETRIS_MAKEFLAGS_BUILD_EXTRA:=C=${DEFAULT_TARGET}-gcc};
-: ${PKG_UBASE_URLS_GIT:="ubase=http://git.suckless.org/ubase@master"};
-: ${PKG_UBASE_DESTDIR:=destdir/suckless};
-: ${PKG_UBASE_CFLAGS_BUILD_EXTRA:="-std=c99 --include=sys/sysmacros.h"};
-: ${PKG_UBASE_IN_TREE:=1};
-: ${PKG_UBASE_MAKE_INSTALL_VNAME:=PREFIX};
-: ${PKG_UBASE_PREFIX:=${PREFIX_NATIVE}/suckless};
-: ${PKG_WHICH_SHA256SUM:=f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad};
-: ${PKG_WHICH_VERSION:=2.21};
-: ${PKG_WHICH_URL:=https://ftp.gnu.org/gnu/which/which-${PKG_WHICH_VERSION}.tar.gz};
-: ${PKG_ZSH_DEPENDS:="ncurses ncursesw"};
-: ${PKG_ZSH_SHA256SUM:=9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5};
-: ${PKG_ZSH_VERSION:=5.9};
-: ${PKG_ZSH_URL:=https://www.zsh.org/pub/zsh-${PKG_ZSH_VERSION}.tar.xz};
-: ${PKG_ZSH_CONFIG_CACHE_EXTRA:="zsh_cv_sys_elf=no"};
-: ${PKG_ZSH_CONFIGURE_ARGS_EXTRA:="--enable-libc-musl --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --enable-etcdir=/etc/zsh --enable-multibyte --enable-function-subdirs --enable-zsh-secure-free --with-tcsetpgrp"};
-: ${PKG_ZSH_IN_TREE:=1};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/221.native_packages_dev.group b/groups/221.native_packages_dev.group
deleted file mode 100644
index b7c51c59..00000000
--- a/groups/221.native_packages_dev.group
+++ /dev/null
@@ -1,173 +0,0 @@
-#
-# Build group native_packages (dev)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-bison chicken cparser cssc diffutils flex gdb gengetopt gnucobol indent lua lunix m4 make mandoc nasm
-patch patchutils perl posix_cc python2 python3 ruby sbsigntools tk")";
-: ${PKG_BISON_DEPENDS:="readline libiconv"};
-: ${PKG_BISON_SHA256SUM:=9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2};
-: ${PKG_BISON_VERSION:=3.8.2};
-: ${PKG_BISON_URL:=https://ftp.gnu.org/gnu/bison/bison-${PKG_BISON_VERSION}.tar.xz};
-: ${PKG_BISON_CONFIG_CACHE_EXTRA:="
-ac_cv_path_M4=/bin/m4
-ac_cv_prog_gnu_m4_gnu=yes"};
-: ${PKG_CHICKEN_SHA256SUM:=c3ad99d8f9e17ed810912ef981ac3b0c2e2f46fb0ecc033b5c3b6dca1bdb0d76};
-: ${PKG_CHICKEN_VERSION:=5.3.0};
-: ${PKG_CHICKEN_URL:=https://code.call-cc.org/releases/${PKG_CHICKEN_VERSION}/chicken-${PKG_CHICKEN_VERSION}.tar.gz};
-: ${PKG_CHICKEN_IN_TREE:=1};
-: ${PKG_CHICKEN_MAKEFLAGS_BUILD:="PLATFORM=midipix ARCH=${ARCH} PREFIX=${PREFIX_NATIVE} TARGET_PREFIX=${PREFIX_NATIVE} C_COMPILER=${DEFAULT_TARGET}-gcc HOSTSYSTEM=${DEFAULT_TARGET}"};
-: ${PKG_CHICKEN_DEBUG_MAKEFLAGS_BUILD_EXTRA:=DEBUGBUILD=1};
-: ${PKG_CHICKEN_RELEASE_MAKEFLAGS_BUILD_EXTRA:=DEBUGBUILD=0};
-: ${PKG_CHICKEN_MAKEFLAGS_INSTALL:="PLATFORM=midipix ARCH=${ARCH} PREFIX=${PREFIX_NATIVE} C_COMPILER=${DEFAULT_TARGET}-gcc HOSTSYSTEM=${DEFAULT_TARGET} CROSS_CHICKEN=1"};
-: ${PKG_CHICKEN_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= TARGET_PREFIX="};
-: ${PKG_CHICKEN_MAKE_INSTALL_VNAME:=DESTDIR};
-: ${PKG_CPARSER_DEPENDS:="libfirm"};
-: ${PKG_CPARSER_URLS_GIT:="cparser=http://pp.info.uni-karlsruhe.de/git/cparser.git@master bcparser=${DEFAULT_GITROOT}/compilers/bcparser@main"};
-: ${PKG_CPARSER_BASE_DIR:=${BUILD_WORKDIR}/cparser+libfirm-native-${DEFAULT_TARGET}};
-: ${PKG_CPARSER_BUILD_DIR:=build/cparser};
-: ${PKG_CPARSER_CONFIGURE:=bcparser/configure};
-: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../cparser --prefix="};
-: ${PKG_CPARSER_NO_CLEAN_BASE_DIR:=1};
-: ${PKG_CSSC_SHA256SUM:=d1bed0c80246ee4cd49d0aa45307c075d0876fe531057bb1c8b28f5330d651ef};
-: ${PKG_CSSC_VERSION:=1.4.1};
-: ${PKG_CSSC_URL:=https://ftp.gnu.org/gnu/cssc/CSSC-${PKG_CSSC_VERSION}.tar.gz};
-: ${PKG_CSSC_CONFIGURE_ARGS_EXTRA:="--enable-binary"};
-: ${PKG_CSSC_CXXFLAGS_CONFIGURE_EXTRA:="-std=gnu++0x"};
-: ${PKG_DIFFUTILS_DEPENDS:="libiconv"};
-: ${PKG_DIFFUTILS_SHA256SUM:=a6bdd7d1b31266d11c4f4de6c1b748d4607ab0231af5188fc2533d0ae2438fec};
-: ${PKG_DIFFUTILS_VERSION:=3.8};
-: ${PKG_DIFFUTILS_URL:=https://ftp.gnu.org/gnu/diffutils/diffutils-${PKG_DIFFUTILS_VERSION}.tar.xz};
-: ${PKG_FLEX_SHA256SUM:=e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995};
-: ${PKG_FLEX_VERSION:=2.6.4};
-: ${PKG_FLEX_URL:=https://github.com/westes/flex/releases/download/v${PKG_FLEX_VERSION}/flex-${PKG_FLEX_VERSION}.tar.gz};
-: ${PKG_FLEX_CFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
-: ${PKG_FLEX_CONFIGURE_ARGS_EXTRA:=--disable-libfl};
-: ${PKG_GDB_DEPENDS:="ncurses python2"};
-: ${PKG_GDB_SHA256SUM:=149abac4add030a5713f15964bd7465bef7a23712bcc91377ca40949f33e93fb};
-: ${PKG_GDB_VERSION:=7.12};
-: ${PKG_GDB_URL:=ftp://sourceware.org/pub/gdb/releases/gdb-${PKG_GDB_VERSION}.tar.gz};
-: ${PKG_GDB_CFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 -L${PREFIX_NATIVE}/lib"};
-: ${PKG_GDB_CONFIGURE_ARGS_EXTRA:="--with-system-libiberty --with-system-readline --with-system-zlib --with-python=${PWD}/files/python2_host/bin/python2.7-config"};
-: ${PKG_GDB_CXXFLAGS_CONFIGURE_EXTRA:="--sysroot=${PREFIX_NATIVE} -g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 -L${PREFIX_NATIVE}/lib"};
-: ${PKG_GDB_ENV_VARS_EXTRA:="CFLAGS_FOR_TARGET=-g3 -O0 --include=stdc-predef.h -I${PREFIX_NATIVE}/include/python2.7 --sysroot=${PREFIX_NATIVE}:LDFLAGS_FOR_TARGET=--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_GDB_INSTALL_FILES_V2:="../obj/gdb/.libs/gdb=bin/gdb"};
-: ${PKG_GDB_LIBTOOL:=rdlibtool};
-: ${PKG_GDB_MAKEFLAGS_BUILD_EXTRA:="SYSROOT_FLAGS=--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_GDB_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/gdb/gdb-${PKG_GDB_VERSION}.midipix.patch"};
-: ${PKG_GDB_VARS_FILES:="vars/gdb.vars"};
-: ${PKG_GENGETOPT_SHA256SUM:=b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac};
-: ${PKG_GENGETOPT_VERSION:=2.23};
-: ${PKG_GENGETOPT_URL:=https://ftp.gnu.org/gnu/gengetopt/gengetopt-${PKG_GENGETOPT_VERSION}.tar.xz};
-: ${PKG_GNUCOBOL_DEPENDS:="ncursesw"}
-: ${PKG_GNUCOBOL_SHA256SUM:=597005d71fd7d65b90cbe42bbfecd5a9ec0445388639404662e70d53ddf22574};
-: ${PKG_GNUCOBOL_VERSION:=3.1.2};
-: ${PKG_GNUCOBOL_URL:=https://ftp.gnu.org/gnu/gnucobol/gnucobol-${PKG_GNUCOBOL_VERSION}.tar.xz};
-: ${PKG_GNUCOBOL_CONFIGURE_ARGS_EXTRA:="--without-db --without-json --with-math=gmp"};
-: ${PKG_GNUCOBOL_LDFLAGS_CONFIGURE_EXTRA:="-ltinfow"};
-: ${PKG_LUA_DEPENDS:="readline"};
-: ${PKG_LUA_SHA256SUM:=164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61};
-: ${PKG_LUA_VERSION:=5.4.4};
-: ${PKG_LUA_URL:=https://www.lua.org/ftp/lua-${PKG_LUA_VERSION}.tar.gz};
-: ${PKG_LUA_CFLAGS_BUILD:="${DEFAULT_CFLAGS:+${DEFAULT_CFLAGS} }--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_LUA_CFLAGS_BUILD_EXTRA:="-DLUA_COMPAT_5_3 -DLUA_USE_LINUX -DLUA_USE_READLINE"};
-: ${PKG_LUA_LDFLAGS_BUILD_EXTRA:="--sysroot=${PREFIX_NATIVE} -lreadline"};
-: ${PKG_LUA_IN_TREE:=1};
-: ${PKG_LUA_INSTALL_FILES_V2:="
- +%[_files]/lua.pc=lib/pkgconfig/lua.pc
- m0644=lib/pkgconfig/lua.pc"};
-: ${PKG_INDENT_SHA256SUM:=b745a5dfc68f86a483d7f96dc1cda7aafd1e78ecba3c7d8ad304709e91e1defb};
-: ${PKG_INDENT_VERSION:=2.2.12};
-: ${PKG_INDENT_URL:=https://ftp.gnu.org/gnu/indent/indent-${PKG_INDENT_VERSION}.tar.xz};
-: ${PKG_INDENT_CONFIGURE_ARGS_EXTRA:="--without-included-gettext --without-texinfo"};
-: ${PKG_INDENT_CFLAGS_CONFIGURE_EXTRA:="-Wno-error -DHAVE_LOCALE_H"};
-: ${PKG_LUNIX_DEPENDS:="lua"};
-: ${PKG_LUNIX_URLS_GIT:=lunix=https://github.com/Redfoxmoon3/lunix.git@master};
-: ${PKG_LUNIX_IN_TREE:=1};
-: ${PKG_LUNIX_MAKEFLAGS_BUILD:="all5.3 libdir=${PREFIX_NATIVE}/lib"};
-: ${PKG_LUNIX_MAKEFLAGS_INSTALL_EXTRA:="libdir=lib"};
-: ${PKG_LUNIX_DISABLED:=1};
-: ${PKG_M4_SHA256SUM:=63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96};
-: ${PKG_M4_VERSION:=1.4.19};
-: ${PKG_M4_URL:=https://ftp.gnu.org/gnu/m4/m4-${PKG_M4_VERSION}.tar.xz};
-: ${PKG_MAKE_SHA256SUM:=e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7};
-: ${PKG_MAKE_VERSION:=4.2.1};
-: ${PKG_MAKE_URL:=https://ftp.gnu.org/gnu/make/make-${PKG_MAKE_VERSION}.tar.gz};
-: ${PKG_MAKE_CONFIG_CACHE_EXTRA:="
-ac_cv_func_gettimeofday=yes
-make_cv_synchronous_posix_spawn=yes"};
-: ${PKG_MANDOC_DEPENDS:="libz musl_fts"};
-: ${PKG_MANDOC_SHA256SUM:=8219b42cb56fc07b2aa660574e6211ac38eefdbf21f41b698d3348793ba5d8f7};
-: ${PKG_MANDOC_VERSION:=1.14.5};
-: ${PKG_MANDOC_URL:=https://mandoc.bsd.lv/snapshots/mandoc-${PKG_MANDOC_VERSION}.tar.gz};
-: ${PKG_MANDOC_MAKEFLAGS_BUILD_EXTRA:="CC=${DEFAULT_TARGET}-gcc:CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=-L${PREFIX_NATIVE}/lib:LDADD=-Wl,-lz,-lfts:HAVE_REALLOCARRAY=0"};
-: ${PKG_MANDOC_CFLAGS_BUILD_EXTRA:="-g3 -O0"};
-: ${PKG_MANDOC_IN_TREE:=1};
-: ${PKG_NASM_SHA256SUM:=e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5};
-: ${PKG_NASM_VERSION:=2.14.02};
-: ${PKG_NASM_URL:=http://www.nasm.us/pub/nasm/releasebuilds/${PKG_NASM_VERSION}/nasm-${PKG_NASM_VERSION}.tar.xz};
-: ${PKG_NASM_CFLAGS_CONFIGURE_EXTRA:=-DCOFF_MIDIPIX};
-: ${PKG_PATCH_SHA256SUM:=ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd};
-: ${PKG_PATCH_VERSION:=2.7.6};
-: ${PKG_PATCH_URL:=https://ftp.gnu.org/gnu/patch/patch-${PKG_PATCH_VERSION}.tar.xz};
-: ${PKG_PATCHUTILS_SHA256SUM:=8875b0965fe33de62b890f6cd793be7fafe41a4e552edbf641f1fed5ebbf45ed};
-: ${PKG_PATCHUTILS_VERSION:=0.4.2};
-: ${PKG_PATCHUTILS_URL:=http://cyberelk.net/tim/data/patchutils/stable/patchutils-${PKG_PATCHUTILS_VERSION}.tar.xz};
-: ${PKG_PERL_SHA256SUM:=2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27};
-: ${PKG_PERL_VERSION:=5.22.1};
-: ${PKG_PERL_URL:=http://www.cpan.org/src/5.0/perl-${PKG_PERL_VERSION}.tar.gz};
-: ${PKG_PERL_URLS_GIT:="perl-cross=https://github.com/lalbornoz/perl-cross@master"};
-: ${PKG_PERL_BASE_DIR:=${BUILD_WORKDIR}/perl-native-${DEFAULT_TARGET}};
-: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include --sysroot=${PREFIX_NATIVE} --target=${DEFAULT_TARGET}"};
-: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${DEFAULT_TARGET}"};
-: ${PKG_PERL_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_PERL_SUBDIR:=perl-${PKG_PERL_VERSION}};
-: ${PKG_POSIX_CC_DEPENDS:="musl_compat"};
-: ${PKG_POSIX_CC_SHA256SUM:=bd90442d98714f874b6e7e62fa8376ddca282c2174dc582917ecab773f96c095};
-: ${PKG_POSIX_CC_VERSION:=1.4};
-: ${PKG_POSIX_CC_URL:=https://mirror.midipix.org/posix_cc/posix_cc-${PKG_POSIX_CC_VERSION}.tar.bz2};
-: ${PKG_PYTHON2_DEPENDS:="bzip2 curl expat gdbm libffi libressl libz ncursesw readline sqlite3"};
-: ${PKG_PYTHON2_SHA256SUM:=b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43};
-: ${PKG_PYTHON2_VERSION:=2.7.18};
-: ${PKG_PYTHON2_URL:="https://www.python.org/ftp/python/${PKG_PYTHON2_VERSION}/Python-${PKG_PYTHON2_VERSION}.tar.xz"};
-: ${PKG_PYTHON2_URLS_GIT:="build/sbpython2=${DEFAULT_GITROOT}/python/sbpython2@main"};
-: ${PKG_PYTHON2_BASE_DIR:=${BUILD_WORKDIR}/python2-native-${DEFAULT_TARGET}};
-: ${PKG_PYTHON2_BUILD_DIR:=build/python2};
-: ${PKG_PYTHON2_CONFIGURE:=build/sbpython2/configure};
-: ${PKG_PYTHON2_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON2_VERSION} --sysroot=${PREFIX_NATIVE} --prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_PYTHON2_CONFIGURE_TYPE:="sofort"};
-: ${PKG_PYTHON2_SOFORT_NATIVE_CFLAGS_EXTRA:="-std=c99 -D_XOPEN_SOURCE=700"};
-: ${PKG_PYTHON2_SUBDIR:=Python-${PKG_PYTHON2_VERSION}};
-: ${PKG_PYTHON3_DEPENDS:="bzip2 curl expat gdbm libffi libressl libz ncursesw readline sqlite3 util_linux xz"};
-: ${PKG_PYTHON3_SHA256SUM:=f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b};
-: ${PKG_PYTHON3_VERSION:=3.7.10};
-: ${PKG_PYTHON3_URL:="https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tar.xz"};
-: ${PKG_PYTHON3_URLS_GIT:="build/sbpython3=${DEFAULT_GITROOT}/python/sbpython3@main"};
-: ${PKG_PYTHON3_BASE_DIR:=${BUILD_WORKDIR}/python3-native-${DEFAULT_TARGET}};
-: ${PKG_PYTHON3_BUILD_DIR:=build/python3};
-: ${PKG_PYTHON3_CONFIGURE:=build/sbpython3/configure};
-: ${PKG_PYTHON3_CONFIGURE_ARGS:="--source-dir=../../Python-${PKG_PYTHON3_VERSION} --sysroot=${PREFIX_NATIVE} --prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_PYTHON3_CONFIGURE_TYPE:="sofort"};
-: ${PKG_PYTHON3_SOFORT_NATIVE_CFLAGS_EXTRA:="-std=c99 -D_XOPEN_SOURCE=700"};
-: ${PKG_PYTHON3_INSTALL_FILES_V2:="@python3=bin/python"};
-: ${PKG_PYTHON3_SUBDIR:=Python-${PKG_PYTHON3_VERSION}};
-: ${PKG_RUBY_SHA256SUM:=ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507};
-: ${PKG_RUBY_VERSION:=2.3.0};
-: ${PKG_RUBY_URL:=https://cache.ruby-lang.org/pub/ruby/${PKG_RUBY_VERSION%.*}/ruby-${PKG_RUBY_VERSION}.tar.gz};
-: ${PKG_RUBY_CONFIGURE_ARGS_EXTRA:="--disable-install-rdoc --with-baseruby=${PREFIX}/bin/ruby --with-out-ext=fiddle,openssl"};
-: ${PKG_RUBY_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_RUBY_MAKEFLAGS_VERBOSITY:="none"};
-: ${PKG_SBSIGNTOOLS_DEPENDS:="libressl"};
-: ${PKG_SBSIGNTOOLS_URLS_GIT:=sbsigntools-master=https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git@master};
-: ${PKG_SBSIGNTOOLS_SUBDIR:=sbsigntools-master};
-: ${PKG_SBSIGNTOOLS_IN_TREE:=1};
-: ${PKG_TK_DEPENDS:="libX11 tcl"};
-: ${PKG_TK_SHA256SUM:=131e4bae43a15dff0324c0479358bb42cfd7b8de0e1ca8d93c9207643c7144dd};
-: ${PKG_TK_VERSION:=8.7a1};
-: ${PKG_TK_URL:=http://kuiper.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/tcl8_7/tk${PKG_TK_VERSION}-src.tar.gz};
-: ${PKG_TK_CONFIGURE:="tk${PKG_TK_VERSION}/unix/configure"};
-: ${PKG_TK_CONFIGURE_ARGS_EXTRA:="tcl_cv_strtod_buggy=no --with-tcl=${PREFIX_NATIVE}/lib"};
-: ${PKG_TK_PATCHES_EXTRA:="${PWD}/patches/tk-8.7a1.local.patch"};
-: ${PKG_TK_SUBDIR:=tk${PKG_TK_VERSION}};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/231.native_packages_etc.group b/groups/231.native_packages_etc.group
deleted file mode 100644
index 030f43c3..00000000
--- a/groups/231.native_packages_etc.group
+++ /dev/null
@@ -1,556 +0,0 @@
-#
-# Build group native_packages (etc)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-alsa_lib apr apr_util bdwgc bmake bochs bzip2 cherokee clzip cmake cron dante dbus
-dosbox doomgeneric emacs enscript expat ffmpeg file gdbm geoip gettext_tiny ghostpdl
-giflib gnuchess graphicsmagick gzip hastyhex hexcurse hexer htop icoutils imagemagick infounzip infozip
-john lbreakout2 lcms2 less libmetalink lolcode ltris minizip mintty mlogin musl_compat musl_fts ncdu
-ncurses ncursestw ncursesw npth openjazz openjpeg p7zip pcre pcre2 php popt potrace procps_ng qemu
-qpdf qrencode rpm rw sdlquake shared_mime_info slang sqlite3 tcl tdnf texinfo
-tiff tmux tzdb utf8proc util_linux vim vorbis_tools w32api w32lib xorriso xpdf xz yabasic
-zstd")";
-: ${PKG_ALSA_LIB_SHA256SUM:=3cdc3a93a6427a26d8efab4ada2152e64dd89140d981f6ffa003e85be707aedf};
-: ${PKG_ALSA_LIB_VERSION:=1.1.8};
-: ${PKG_ALSA_LIB_URL:=ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PKG_ALSA_LIB_VERSION}.tar.bz2};
-: ${PKG_ALSA_LIB_CFLAGS_BUILD_EXTRA:="-D__u8=uint8_t"};
-: ${PKG_ALSA_LIB_CONFIGURE_ARGS_EXTRA:="--disable-python --with-versioned=no"};
-: ${PKG_APR_SHA256SUM:=a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105};
-: ${PKG_APR_VERSION:=1.6.5};
-: ${PKG_APR_URL:=http://ftp.fau.de/apache/apr/apr-${PKG_APR_VERSION}.tar.bz2};
-: ${PKG_APR_CONFIGURE_ARGS_EXTRA:="--with-devrandom=/dev/urandom"};
-: ${PKG_APR_LIBTOOL:=rdlibtool};
-: ${PKG_APR_NO_CLEAN:=1};
-: ${PKG_APR_UTIL_DEPENDS:="apr expat libressl sqlite3"};
-: ${PKG_APR_UTIL_SHA256SUM:=d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b};
-: ${PKG_APR_UTIL_VERSION:=1.6.1};
-: ${PKG_APR_UTIL_URL:=https://archive.apache.org/dist/apr/apr-util-${PKG_APR_UTIL_VERSION}.tar.bz2};
-: ${PKG_APR_UTIL_ENV_VARS_EXTRA:="LDADD_dbd_sqlite3=-lsqlite3 -lapr-1 -L.libs -laprutil-1:LDADD_crypto_openssl=-lcrypto -lssl -lapr-1 -L.libs -laprutil-1"};
-: ${PKG_APR_UTIL_CONFIGURE_ARGS_EXTRA:="--with-crypto --with-apr=${BUILD_WORKDIR}/apr-native-${DEFAULT_TARGET}/obj"};
-: ${PKG_APR_UTIL_INSTALL_FILES_V2:="+bin/apu-1-config=%[_prefix_host]/bin/%[_target]-%[FNAME]"};
-: ${PKG_APR_UTIL_MAKEFLAGS_BUILD:="-j1"};
-: ${PKG_BDWGC_DEPENDS:="libatomic_ops"};
-: ${PKG_BDWGC_URLS_GIT:="bdwgc=https://github.com/ivmai/bdwgc@master"};
-: ${PKG_BDWGC_CONFIGURE_ARGS_EXTRA:="--enable-threads=posix --enable-parallel-mark --enable-handle-fork"};
-: ${PKG_BMAKE_URLS_GIT:="bmake=https://github.com/arichardson/bmake@master"};
-: ${PKG_BMAKE_CONFIGURE_ARGS="-C --host=${DEFAULT_TARGET} --prefix=/usr --target=${DEFAULT_TARGET}"};
-: ${PKG_BMAKE_ENV_VARS_EXTRA:="BMAKE=${PREFIX}/bin/bmake"};
-: ${PKG_BMAKE_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_BOCHS_DEPENDS:="curl ncurses sdl1"};
-: ${PKG_BOCHS_SHA256SUM:=63897b41fbbbdfb1c492d3c4dee1edb4224282a07bbdf442a4a68c19bcc18862};
-: ${PKG_BOCHS_VERSION:=2.6.11};
-: ${PKG_BOCHS_URL:=https://fossies.org/linux/misc/bochs-${PKG_BOCHS_VERSION}.tar.gz};
-: ${PKG_BOCHS_CONFIGURE_ARGS_EXTRA:="--disable-docbook --without-x11 --without-wx --without-sdl2 --with-term --with-sdl --enable-idle-hack"};
-: ${PKG_BOCHS_CXXFLAGS_CONFIGURE_EXTRA:="-D_LARGEFILE64_SOURCE -I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_BOCHS_INSTALL_FILES_V2:="
- +../obj/.libs/bochs=bin/%[FNAME]
- +../obj/.libs/bximage=bin/%[FNAME]"};
-: ${PKG_BOCHS_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib"};
-: ${PKG_BOCHS_MAKEFLAGS_BUILD:="LIBS=-Wl,-ltinfo"};
-: ${PKG_BZIP2_SHA256SUM:=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269};
-: ${PKG_BZIP2_VERSION:=1.0.8};
-: ${PKG_BZIP2_URL:=https://sourceware.org/pub/bzip2/bzip2-${PKG_BZIP2_VERSION}.tar.gz};
-: ${PKG_BZIP2_INSTALL_FILES_V2:="
- @bzdiff=bin/bzcmp
- @bzgrep=bin/bzegrep
- @bzgrep=bin/bzfgrep
- @bzmore=bin/bzless
- +../bzip2-${PKG_BZIP2_VERSION}/libbz2.so.1=lib/%[FNAME]
- +../bzip2-${PKG_BZIP2_VERSION}/libbz2.so.1.0.8=lib/%[FNAME]"};
-: ${PKG_BZIP2_IN_TREE:=1};
-: ${PKG_BZIP2_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so};
-: ${PKG_BZIP2_MAKE_INSTALL_VNAME:=PREFIX};
-: ${PKG_CHEROKEE_DEPENDS:="libz"};
-: ${PKG_CHEROKEE_URLS_GIT:=cherokee=https://github.com/cherokee/webserver.git@master};
-: ${PKG_CHEROKEE_CONFIGURE_ARGS_EXTRA:="--with-python=${PREFIX}/bin/python2 --without-epoll --without-php"};
-: ${PKG_CHEROKEE_IN_TREE:=1};
-: ${PKG_CLZIP_SHA256SUM:=7ac9fbf5036bf50fb0b6a20e84d2293cb0d24d4044eaf33cbe9760bb9e7fea7a};
-: ${PKG_CLZIP_VERSION:=1.13};
-: ${PKG_CLZIP_URL:=https://download.savannah.gnu.org/releases/lzip/clzip/clzip-${PKG_CLZIP_VERSION}.tar.gz};
-: ${PKG_CLZIP_CONFIGURE_ARGS:="CC=${DEFAULT_TARGET}-gcc --prefix="};
-: ${PKG_CLZIP_INSTALL_FILES_V2:="@clzip=bin/lzip"};
-: ${PKG_CLZIP_IN_TREE:=1};
-: ${PKG_CMAKE_DEPENDS:="curl libarchive libuv libz ncurses"};
-: ${PKG_CMAKE_SHA256SUM:=dc1246c4e6d168ea4d6e042cfba577c1acd65feea27e56f5ff37df920c30cae0};
-: ${PKG_CMAKE_VERSION:=3.7.2};
-: ${PKG_CMAKE_URL:=https://cmake.org/files/v${PKG_CMAKE_VERSION%.*}/cmake-${PKG_CMAKE_VERSION}.tar.gz};
-: ${PKG_CMAKE_CFLAGS_CONFIGURE_EXTRA:="-g0 -O2"};
-: ${PKG_CMAKE_CMAKE_ARGS_EXTRA:="
- -DBZIP2_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.a
- -DCMAKE_USE_SYSTEM_BZIP2=ON
- -DCMAKE_USE_SYSTEM_CURL=ON
- -DCMAKE_USE_SYSTEM_EXPAT=OFF
- -DCMAKE_USE_SYSTEM_LIBARCHIVE=ON
- -DCMAKE_USE_SYSTEM_LIBUV=ON
- -DCMAKE_USE_SYSTEM_ZLIB=ON
- -DCURL_INCLUDE_DIR=${PREFIX_NATIVE}/include/curl
- -DCURL_LIBRARY=${PREFIX_NATIVE}/lib/libcurl.lib.a
- -DCURSES_NCURSES_LIBRARY=${PREFIX_NATIVE}/lib/libncurses.lib.a
- -DKWSYS_LFS_WORKS=YES
- -DLibArchive_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLibArchive_LIBRARY=${PREFIX_NATIVE}/lib/libarchive.lib.a
- -DLIBLZMA_HAS_AUTO_DECODER=YES
- -DLIBLZMA_HAS_EASY_ENCODER=YES
- -DLIBLZMA_HAS_LZMA_PRESET=YES
- -DLIBLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLIBLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
- -DLibUV_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLibUV_LIBRARY=${PREFIX_NATIVE}/lib/libuv.1.0.0.lib.a
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
-: ${PKG_CMAKE_CONFIGURE_TYPE:="cmake"};
-: ${PKG_CRON_URLS_GIT:="pkg-cron=https://github.com/lalbornoz/pkg-cron@master"};
-: ${PKG_CRON_ENV_VARS_EXTRA:="CC=${DEFAULT_TARGET}-gcc:CFLAGS=${NATIVE_PACKAGES_CFLAGS_CONFIGURE} -D__GNU__"};
-: ${PKG_CRON_IN_TREE:=1};
-: ${PKG_DANTE_DEPENDS:="libtirpc"};
-: ${PKG_DANTE_SHA256SUM:=4c97cff23e5c9b00ca1ec8a95ab22972813921d7fbf60fc453e3e06382fc38a7};
-: ${PKG_DANTE_VERSION:=1.4.2};
-: ${PKG_DANTE_URL:=http://www.inet.no/dante/files/dante-${PKG_DANTE_VERSION}.tar.gz};
-: ${PKG_DANTE_CONFIGURE_ARGS_EXTRA:="ac_cv_func_sched_setscheduler=no --without-libwrap LIBS=-ltirpc"};
-: ${PKG_DANTE_IN_TREE:=1};
-: ${PKG_DBUS_DEPENDS:="expat"};
-: ${PKG_DBUS_VERSION:=1.11.20};
-: ${PKG_DBUS_URL:=https://dbus.freedesktop.org/releases/dbus/dbus-${PKG_DBUS_VERSION}.tar.gz};
-: ${PKG_DBUS_SHA256SUM:=7fd9d0536f7ec2f2afc94b84d5b5487f88c464e8d47c661d8e0b54aa83974bfa};
-: ${PKG_DBUS_CONFIGURE_ARGS_EXTRA:="--disable-tests --with-x=no"};
-: ${PKG_DOSBOX_DEPENDS:="sdl1"};
-: ${PKG_DOSBOX_SHA256SUM:=c0d13dd7ed2ed363b68de615475781e891cd582e8162b5c3669137502222260a};
-: ${PKG_DOSBOX_VERSION:=0.74-3};
-: ${PKG_DOSBOX_URL:=https://fossies.org/linux/privat/dosbox-${PKG_DOSBOX_VERSION}.tar.gz};
-: ${PKG_DOSBOX_CONFIGURE_ARGS_EXTRA:="--disable-opengl --disable-alsa-midi --with-sdl-prefix=${PREFIX_NATIVE}"};
-: ${PKG_DOSBOX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
-: ${PKG_DOOMGENERIC_DEPENDS:="w32api w32lib"};
-: ${PKG_DOOMGENERIC_URLS_GIT:=doomgeneric=https://github.com/Redfoxymoon/doomgeneric.git@midipix};
-: ${PKG_DOOMGENERIC_BUILD_DIR:=doomgeneric/doomgeneric};
-: ${PKG_DOOMGENERIC_MAKEFLAGS_BUILD_EXTRA:=-f Makefile.midipix};
-: ${PKG_DOOMGENERIC_CFLAGS_BUILD_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports"};
-: ${PKG_DOOMGENERIC_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
-: ${PKG_DOOMGENERIC_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_DOOMGENERIC_INSTALL_FILES_V2:="+../doomgeneric/doomgeneric/doomgeneric=bin/%[FNAME]"};
-: ${PKG_EMACS_DEPENDS:="freetype gnutls libjpeg_turbo libz ncurses"};
-: ${PKG_EMACS_SHA256SUM:=1cf4fc240cd77c25309d15e18593789c8dbfba5c2b44d8f77c886542300fd32c};
-: ${PKG_EMACS_VERSION:=26.1};
-: ${PKG_EMACS_URL:=http://www.gutscheinrausch.de/mirror/gnu/emacs/emacs-${PKG_EMACS_VERSION}.tar.xz};
-: ${PKG_EMACS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -O1 -g2"};
-: ${PKG_EMACS_CONFIGURE_ARGS_EXTRA:="--with-modules --with-sound=no --with-x-toolkit=no --without-dbus --without-x --without-mailutils --without-pop"};
-: ${PKG_EMACS_ENV_VARS_EXTRA:="BUILDCC=gcc"};
-: ${PKG_ENSCRIPT_SHA256SUM:=6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb};
-: ${PKG_ENSCRIPT_VERSION:=1.6.6};
-: ${PKG_ENSCRIPT_URL:=https://ftp.gnu.org/gnu/enscript/enscript-${PKG_ENSCRIPT_VERSION}.tar.gz};
-: ${PKG_EXPAT_SHA256SUM:=6e8c0728fe5c7cd3f93a6acce43046c5e4736c7b4b68e032e9350daa0efc0354};
-: ${PKG_EXPAT_VERSION:=2.4.9};
-: ${PKG_EXPAT_URL:=http://download.openpkg.org/components/cache/expat/expat-${PKG_EXPAT_VERSION}.tar.xz};
-: ${PKG_EXPAT_CONFIGURE_ARGS_EXTRA:="--with-getrandom --with-sys-getrandom --without-docbook"};
-: ${PKG_FFMPEG_DEPENDS:="lame libass libshine libssh libtheora libxml2 gnutls"};
-: ${PKG_FFMPEG_SHA256SUM:=95bf3ff8c496511e71e958fb249e663c8c9c3de583c5bebc0f5a9745abbc0435};
-: ${PKG_FFMPEG_VERSION:=5.1.1};
-: ${PKG_FFMPEG_URL:=https://ffmpeg.org/releases/ffmpeg-${PKG_FFMPEG_VERSION}.tar.xz};
-: ${PKG_FFMPEG_CONFIGURE_ARGS:="--cc=${DEFAULT_TARGET}-gcc --cxx=${DEFAULT_TARGET}-g++ --disable-stripping --enable-cross-compile --enable-libass --enable-libshine --enable-libtheora --enable-libvorbis --enable-libxml2 --enable-gpl --enable-version3 --enable-gnutls --enable-libmp3lame --enable-libssh --pkg-config=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config --prefix=/ --target-os=midipix --x86asmexe=${DEFAULT_TARGET}-nasm"};
-: ${PKG_FFMPEG_CFLAGS_BUILD_EXTRA:="-I${PREFIX_NATIVE}/include/SDL2 -I${PREFIX_NATIVE}/include/libxml2 -std=gnu99"};
-: ${PKG_FILE_SHA256SUM:=8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991};
-: ${PKG_FILE_VERSION:=5.43};
-: ${PKG_FILE_URL:=http://ftp.astron.com/pub/file/file-${PKG_FILE_VERSION}.tar.gz};
-: ${PKG_GDBM_DEPENDS:="ncurses"};
-: ${PKG_GDBM_SHA256SUM:=74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd};
-: ${PKG_GDBM_VERSION:=1.23};
-: ${PKG_GDBM_URL:=https://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_VERSION}.tar.gz};
-: ${PKG_GDBM_CONFIGURE_ARGS_EXTRA:=--enable-libgdbm-compat};
-: ${PKG_GEOIP_SHA256SUM:=0daf0dbe35249f0affb5e10010e0b6b8104d19e156ab8e3b2318df8165463f21};
-: ${PKG_GEOIP_VERSION:=1.7.0};
-: ${PKG_GEOIP_URL:=https://midipix.org/mirror/geoip/geoip-api-c-${PKG_GEOIP_VERSION}.tar.gz};
-: ${PKG_GETTEXT_TINY_SHA256SUM:=29cc165e27e83d2bb3760118c2368eadab550830d962d758e51bd36eb860f383};
-: ${PKG_GETTEXT_TINY_VERSION:=0.3.2};
-: ${PKG_GETTEXT_TINY_URL:=https://toolchains.bootlin.com/downloads/releases/sources/gettext-tiny-${PKG_GETTEXT_TINY_VERSION}/gettext-tiny-${PKG_GETTEXT_TINY_VERSION}.tar.gz};
-: ${PKG_GETTEXT_TINY_BUILD_DIR:=gettext-tiny-${PKG_GETTEXT_TINY_VERSION}};
-: ${PKG_GETTEXT_TINY_CFLAGS_BUILD_EXTRA:="-DLIBICONV_PLUG"};
-: ${PKG_GHOSTPDL_DEPENDS:="libpng tiff fontconfig libz libXt libX11 freetype expat openjpeg"};
-: ${PKG_GHOSTPDL_SHA256SUM:=9059bf9c0685e88206d34b702f5a15f148451959f73ab2d01d44a5b12088a762};
-: ${PKG_GHOSTPDL_VERSION:=9.52};
-: ${PKG_GHOSTPDL_URL:=https://mirror.midipix.org/ghostpdl/ghostpdl-${PKG_GHOSTPDL_VERSION}.tar.xz};
-: ${PKG_GHOSTPDL_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_GHOSTPDL_CONFIGURE_ARGS_EXTRA:="--with-system-libtiff --with-memory-alignment=8 --without-x"};
-: ${PKG_GHOSTPDL_ENV_VARS_EXTRA:="CCAUX=cc:CFLAGSAUX=${DEFAULT_CFLAGS} -L${PREFIX}/lib:LDFLAGSAUX=-L${PREFIX}/lib:SHARE_ZLIB=-lz"}
-: ${PKG_GHOSTPDL_MAKEFLAGS_BUILD_EXTRA:="TARGET_ARCH_FILE=${BUILD_WORKDIR}/ghostpdl-native-${DEFAULT_TARGET}/ghostpdl-${PKG_GHOSTPDL_VERSION}/arch/${DEFAULT_TARGET}.h"}
-: ${PKG_GIFLIB_SHA256SUM:=31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd};
-: ${PKG_GIFLIB_VERSION:=5.2.1};
-: ${PKG_GIFLIB_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/giflib/giflib-${PKG_GIFLIB_VERSION}.tar.gz};
-: ${PKG_GIFLIB_BUILD_DIR:=giflib-${PKG_GIFLIB_VERSION}};
-: ${PKG_GNUCHESS_DEPENS:="ncurses"};
-: ${PKG_GNUCHESS_SHA256SUM:=ddfcc20bdd756900a9ab6c42c7daf90a2893bf7f19ce347420ce36baebc41890};
-: ${PKG_GNUCHESS_VERSION:=6.2.9};
-: ${PKG_GNUCHESS_URL:=https://ftp.gnu.org/gnu/chess/gnuchess-${PKG_GNUCHESS_VERSION}.tar.gz};
-: ${PKG_GRAPHICSMAGICK_DEPENDS:="libz libpng freetype lcms2 libxml2 tiff libjpeg_turbo bzip2 zstd"};
-: ${PKG_GRAPHICSMAGICK_SHA256SUM:=188a8d6108fea87a0208723e8d206ec1d4d7299022be8ce5d0a9720509250250};
-: ${PKG_GRAPHICSMAGICK_VERSION:=1.3.35};
-: ${PKG_GRAPHICSMAGICK_URL:=ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/${PKG_GRAPHICSMAGICK_VERSION%.*}/GraphicsMagick-${PKG_GRAPHICSMAGICK_VERSION}.tar.xz};
-: ${PKG_GRAPHICSMAGICK_CONFIGURE_ARGS_EXTRA:="--enable-shared --with-modules --without-x"};
-: ${PKG_GRAPHICSMAGICK_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_GRAPHICSMAGICK_LIBTOOL=rdlibtool};
-: ${PKG_GZIP_SHA256SUM:=ce5e03e519f637e1f814011ace35c4f87b33c0bbabeec35baf5fbd3479e91956};
-: ${PKG_GZIP_VERSION:=1.12};
-: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.xz};
-: ${PKG_HASTYHEX_URLS_GIT:="hastyhex=https://github.com/skeeto/hastyhex.git@master"};
-: ${PKG_HASTYHEX_IN_TREE:=1};
-: ${PKG_HASTYHEX_CFLAGS_BUILD_EXTRA:="-g3 -O0 -ansi -pedantic -funroll-loops"};
-: ${PKG_HASTYHEX_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_HASTYHEX_INSTALL_FILES_V2:="+../hastyhex/hastyhex=bin/%[FNAME]"};
-: ${PKG_HEXCURSE_DEPENDS:="ncurses"};
-: ${PKG_HEXCURSE_URLS_GIT:="hexcurse=https://github.com/LonnyGomes/hexcurse@master"};
-: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncurses};
-: ${PKG_HEXCURSE_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
-: ${PKG_HEXER_DEPENDS:="ncurses"};
-: ${PKG_HEXER_SHA256SUM:=e6b84ace5283825943f88ce7ec4ae836ec15ba41978b3a858d6d478cfe09ff94};
-: ${PKG_HEXER_VERSION:=1.0.6};
-: ${PKG_HEXER_URL:=https://devel.ringlet.net/files/editors/hexer/hexer-${PKG_HEXER_VERSION}.tar.xz};
-: ${PKG_HEXER_CFLAGS_BUILD_EXTRA:="-isystem${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_HEXER_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib"};
-: ${PKG_HEXER_ENV_VARS_EXTRA:="CC_FOR_BUILD=gcc"};
-: ${PKG_HEXER_IN_TREE:=1};
-: ${PKG_HTOP_DEPENDS:="ncursesw"};
-: ${PKG_HTOP_SHA256SUM:=d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57};
-: ${PKG_HTOP_VERSION:=2.2.0};
-: ${PKG_HTOP_URL:=https://src.fedoraproject.org/lookaside/extras/htop/htop-2.2.0.tar.gz/sha512/ec1335bf0e3e0387e5e50acbc508d0effad19c4bc1ac312419dc97b82901f4819600d6f87a91668f39d429536d17304d4b14634426a06bec2ecd09df24adc62e/htop-${PKG_HTOP_VERSION}.tar.gz};
-: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:="--enable-proc --enable-unicode --verbose"};
-: ${PKG_HTOP_CFLAGS_CONFIGURE_EXTRA:="--include=sys/sysmacros.h"};
-: ${PKG_HTOP_CONFIG_CACHE_EXTRA:="
-ac_cv_lib_ncursesw_addnwstr=yes
-ac_cv_lib_ncursesw6_addnwstr=yes"};
-: ${PKG_HTOP_ENV_VARS_EXTRA:="HTOP_NCURSES_CONFIG_SCRIPT=${PREFIX_NATIVE}/bin/ncurses-config:HTOP_NCURSES6_CONFIG_SCRIPT=${PREFIX_NATIVE}/bin/ncurses6-config:HTOP_NCURSESW_CONFIG_SCRIPT=${PREFIX_NATIVE}/bin/ncursesw-config:HTOP_NCURSESW6_CONFIG_SCRIPT=${PREFIX_NATIVE}/bin/ncursesw6-config"}
-: ${PKG_ICOUTILS_DEPENDS:="libpng"};
-: ${PKG_ICOUTILS_SHA256SUM:=17abe02d043a253b68b47e3af69c9fc755b895db68fdc8811786125df564c6e0};
-: ${PKG_ICOUTILS_VERSION:=0.32.3};
-: ${PKG_ICOUTILS_URL:=http://savannah.nongnu.org/download/icoutils/icoutils-${PKG_ICOUTILS_VERSION}.tar.bz2};
-: ${PKG_ICOUTILS_CONFIG_CACHE_EXTRA:="
-am_cv_func_working_getline=yes
-gl_cv_func_getopt_gnu=yes"};
-: ${PKG_IMAGEMAGICK_DEPENDS:="curl bzip2 libz xz zstd"};
-: ${PKG_IMAGEMAGICK_SHA256SUM:=67859f9cba97f2c06b5e416898216e49216be00c7cba3dd89896e49331aef96d};
-: ${PKG_IMAGEMAGICK_VERSION:=7.0.9-12};
-: ${PKG_IMAGEMAGICK_URL:=https://imagemagick.org/download/releases/ImageMagick-${PKG_IMAGEMAGICK_VERSION}.tar.xz};
-: ${PKG_IMAGEMAGICK_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
-: ${PKG_IMAGEMAGICK_CONFIGURE_ARGS_EXTRA:="--enable-shared=yes --with-modules=yes --without-x --without-pango"};
-: ${PKG_IMAGEMAGICK_DISABLED:=1};
-: ${PKG_INFOUNZIP_URLS_GIT:=infounzip=https://github.com/Redfoxmoon3/infounzip.git@master};
-: ${PKG_INFOUNZIP_IN_TREE:=1};
-: ${PKG_INFOUNZIP_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_INFOZIP_URLS_GIT:=infozip=https://github.com/Redfoxmoon3/infozip.git@master};
-: ${PKG_INFOZIP_IN_TREE:=1};
-: ${PKG_INFOZIP_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266};
-: ${PKG_JOHN_VERSION:=1.8.0};
-: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz};
-: ${PKG_JOHN_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_JOHN_DISABLED_NT32:=1};
-: ${PKG_JOHN_IN_TREE:=1};
-: ${PKG_JOHN_INSTALL_FILES_V2:="
- /=share/john
- +../john-${PKG_JOHN_VERSION}/run/john=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/mailer=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/makechr=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/relbench=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/unafs=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/unique=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/unshadow=bin/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/ascii.chr=share/john/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/digits.chr=share/john/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/john.conf=share/john/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/lm_ascii.chr=share/john/%[FNAME]
- +../john-${PKG_JOHN_VERSION}/run/password.lst=share/john/%[FNAME]"};
-: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA:="-C src midipix-x86-64"};
-: ${PKG_LBREAKOUT2_DEPENDS:="sdl1 libz libpng"};
-: ${PKG_LBREAKOUT2_SHA256SUM:=9104d6175553da3442dc6a5fc407a669e2f5aff3eedc5d30409eb003b7a78d6f};
-: ${PKG_LBREAKOUT2_VERSION:=2.6.5};
-: ${PKG_LBREAKOUT2_URL:=http://sources.buildroot.net/lbreakout2/lbreakout2-${PKG_LBREAKOUT2_VERSION}.tar.gz};
-: ${PKG_LBREAKOUT2_CONFIGURE_ARGS_EXTRA:=--with-sdl-prefix=${PREFIX_NATIVE}};
-: ${PKG_LBREAKOUT2_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib/w32lib};
-: ${PKG_LBREAKOUT2_ENV_VARS_EXTRA:="SDL_CONFIG=${PREFIX_NATIVE}/bin/sdl-config --prefix=${PREFIX_NATIVE}"};
-: ${PKG_LBREAKOUT2_IN_TREE:=1};
-: ${PKG_LCMS2_DEPENDS:="libz libjpeg_turbo tiff"};
-: ${PKG_LCMS2_SHA256SUM:=d473e796e7b27c5af01bd6d1552d42b45b43457e7182ce9903f38bb748203b88};
-: ${PKG_LCMS2_VERSION:=2.13.1};
-: ${PKG_LCMS2_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/lcms2/lcms2-${PKG_LCMS2_VERSION}.tar.gz};
-: ${PKG_LESS_DEPENDS:="ncurses ncursesw"};
-: ${PKG_LESS_SHA256SUM:=a69abe2e0a126777e021d3b73aa3222e1b261f10e64624d41ec079685a6ac209};
-: ${PKG_LESS_VERSION:=608};
-: ${PKG_LESS_URL:=http://www.greenwoodsoftware.com/less/less-${PKG_LESS_VERSION}.tar.gz};
-: ${PKG_LIBMETALINK_DEPENDS:="expat"};
-: ${PKG_LIBMETALINK_SHA256SUM:=0753ae1152d970dc3bf327d0ce5cfefeca2f1ab13294b115e64811163a68fd4f};
-: ${PKG_LIBMETALINK_VERSION:=0.1.3};
-: ${PKG_LIBMETALINK_URL:=https://launchpad.net/libmetalink/trunk/libmetalink-${PKG_LIBMETALINK_VERSION}/+download/libmetalink-${PKG_LIBMETALINK_VERSION}.tar.bz2};
-: ${PKG_LOLCODE_URLS_GIT:="lci=https://github.com/justinmeza/lci.git@master"};
-: ${PKG_LOLCODE_BUILD_DIR:=lci};
-: ${PKG_LTRIS_DEPENDS:="sdl1"};
-: ${PKG_LTRIS_SHA256SUM:=0ec4ad053e066a296529e923c2f626fa0a19c094c5ae03e44359f9c9e50955a8};
-: ${PKG_LTRIS_VERSION:=1.2.3};
-: ${PKG_LTRIS_URL:=https://sources.voidlinux-ppc.org/ltris-${PKG_LTRIS_VERSION}/ltris-${PKG_LTRIS_VERSION}.tar.gz};
-: ${PKG_LTRIS_CONFIGURE_ARGS_EXTRA:="--with-sdl-prefix=${PREFIX_NATIVE} SDL_LIBS=-L${PREFIX_NATIVE}/lib SDL_CFLAGS=-I${PREFIX_NATIVE}/include"};
-: ${PKG_LTRIS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/SDL -std=gnu99"};
-: ${PKG_LTRIS_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib -L${PREFIX_NATIVE}/lib/w32lib"};
-: ${PKG_LTRIS_ENV_VARS_EXTRA:="LIBS=-lSDL"};
-: ${PKG_LTRIS_IN_TREE:=1};
-: ${PKG_MINIZIP_DEPENDS:="bzip2 libressl libz xz"};
-: ${PKG_MINIZIP_SHA256SUM:=f4c8e7afdd45a093f69d7d338652996766d5473e63ad97a2c5cf89c0787773a0};
-: ${PKG_MINIZIP_VERSION:=2.10.4};
-: ${PKG_MINIZIP_URL:=https://github.com/nmoinvaz/minizip/archive/${PKG_MINIZIP_VERSION}.tar.gz};
-: ${PKG_MINIZIP_CMAKE_ARGS_EXTRA:="
- -DBUILD_SHARED_LIBS=ON
- -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
- -DPKG_CONFIG_EXECUTABLE=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config
- -DMZ_BUILD_TEST=ON
- -DMZ_LIBBSD=OFF
- -DMZ_LZMA=ON
- -DMZ_OPENSSL=ON
- -DMZ_ZSTD=OFF
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libz.lib.a"};
-: ${PKG_MINIZIP_SUBDIR:=minizip-ng-${PKG_MINIZIP_VERSION}};
-: ${PKG_MINTTY_DEPENDS:="w32api w32lib"};
-: ${PKG_MINTTY_URLS_GIT:="mintty=https://github.com/midipix-ports/mintty.git@midipix bmintty=https://github.com/midipix-ports/bmintty.git@main"};
-: ${PKG_MINTTY_CONFIGURE:=bmintty/configure};
-: ${PKG_MINTTY_CONFIGURE_ARGS:="--debug --strict --target=${DEFAULT_TARGET} --source-dir=../mintty --prefix="};
-: ${PKG_MINTTY_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib/w32lib};
-: ${PKG_MLOGIN_URLS_GIT:="mlogin=https://dev.midipix.org/env/mlogin.git@main"};
-: ${PKG_MLOGIN_BUILD_DIR:=mlogin};
-: ${PKG_MLOGIN_FORCE_AUTORECONF:=1};
-: ${PKG_MUSL_COMPAT_URLS_GIT:=musl_compat=https://dev.midipix.org/compat/musl-compat.git@main};
-: ${PKG_MUSL_COMPAT_BUILD_DIR:=musl_compat};
-: ${PKG_MUSL_COMPAT_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_MUSL_FTS_SHA256SUM:=32dfe02768f1d3d91ab04df4fbdb7922cd34cd529ce7081a78c3ca8b8652d1ee};
-: ${PKG_MUSL_FTS_VERSION:=1.2.7};
-: ${PKG_MUSL_FTS_URL:=https://midipix.org/mirror/musl-fts/musl-fts-${PKG_MUSL_FTS_VERSION}.tar.xz};
-: ${PKG_NCDU_DEPENDS:="ncursesw"};
-: ${PKG_NCDU_SHA256SUM:=2b915752a183fae014b5e5b1f0a135b4b408de7488c716e325217c2513980fd4};
-: ${PKG_NCDU_VERSION:=1.16};
-: ${PKG_NCDU_URL:=https://dev.yorhel.nl/download/ncdu-${PKG_NCDU_VERSION}.tar.gz};
-: ${PKG_NCURSES_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSES_VERSION:=6.3};
-: ${PKG_NCURSES_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_VERSION}.tar.gz};
-: ${PKG_NCURSES_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
-: ${PKG_NCURSES_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET} --with-curses"};
-: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --without-pthread"};
-: ${PKG_NCURSES_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_NCURSESTW_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSESTW_VERSION:=6.3};
-: ${PKG_NCURSESTW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_VERSION}.tar.gz};
-: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --without-manpages --without-progs --with-shared --with-termlib --without-ada --without-tests --disable-widec --with-pthread"};
-: ${PKG_NCURSESW_SHA256SUM:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059};
-: ${PKG_NCURSESW_VERSION:=6.3};
-: ${PKG_NCURSESW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_VERSION}.tar.gz};
-: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-manpages --with-progs --with-shared --with-termlib --without-ada --without-tests --enable-widec --without-pthread"};
-: ${PKG_NCURSESW_INSTALL_FILES_V2:="@ncursesw/ncurses.h=include/ncurses.h"};
-: ${PKG_NPTH_SHA256SUM:=1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1};
-: ${PKG_NPTH_VERSION:=1.6};
-: ${PKG_NPTH_URL:=https://www.gnupg.org/ftp/gcrypt/npth/npth-${PKG_NPTH_VERSION}.tar.bz2};
-: ${PKG_OPENJAZZ_DEPENDS:="sdl1"};
-: ${PKG_OPENJAZZ_URLS_GIT:=openjazz=https://github.com/AlisterT/openjazz.git@master};
-: ${PKG_OPENJAZZ_CONFIG_CACHE_EXTRA:="ac_cv_prog_POD2MAN="};
-: ${PKG_OPENJAZZ_FORCE_AUTORECONF:=1};
-: ${PKG_OPENJPEG_DEPENDS:="lcms2 libpng libz tiff"};
-: ${PKG_OPENJPEG_SHA256SUM:=0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a};
-: ${PKG_OPENJPEG_VERSION:=2.5.0};
-: ${PKG_OPENJPEG_URL:=https://github.com/uclouvain/openjpeg/archive/v${PKG_OPENJPEG_VERSION}.tar.gz};
-: ${PKG_OPENJPEG_CMAKE_ARGS_EXTRA:="
- -DLCMS2_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLCMS2_LIBRARY=${PREFIX_NATIVE}/lib/liblcms2.lib.a
- -DPNG_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libpng.lib.a
- -DPNG_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libpng.lib.a
- -DPNG_PNG_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DTIFF_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DTIFF_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libtiff.lib.a
- -DTIFF_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libtiff.lib.a
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY_DEBUG=${PREFIX_NATIVE}/lib/libz.a
- -DZLIB_LIBRARY_RELEASE=${PREFIX_NATIVE}/lib/libz.a"};
-: ${PKG_OPENJPEG_SUBDIR:=openjpeg-${PKG_OPENJPEG_VERSION}};
-: ${PKG_P7ZIP_URLS_GIT:="p7zip-midipix.git=https://github.com/lalbornoz/p7zip-midipix.git@master"};
-: ${PKG_P7ZIP_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_P7ZIP_IN_TREE:=1};
-: ${PKG_P7ZIP_INSTALL_FILES_V2:="+../p7zip-midipix.git/bin/7za=bin/%[FNAME]"};
-: ${PKG_PCRE_DEPENDS:="bzip2 libz"};
-: ${PKG_PCRE_SHA256SUM:=4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e3218bffb8};
-: ${PKG_PCRE_VERSION:=8.45};
-: ${PKG_PCRE_URL:=https://ftp.pcre.org/pub/pcre/pcre-${PKG_PCRE_VERSION}.tar.bz2};
-: ${PKG_PCRE2_DEPENDS:="bzip2 libz"};
-: ${PKG_PCRE2_SHA256SUM:=14e4b83c4783933dc17e964318e6324f7cae1bc75d8f3c79bc6969f00c159d68};
-: ${PKG_PCRE2_VERSION:=10.40};
-: ${PKG_PCRE2_URL:=https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PKG_PCRE2_VERSION}/pcre2-${PKG_PCRE2_VERSION}.tar.bz2};
-: ${PKG_PCRE2_CONFIGURE_ARGS_EXTRA:="--enable-pcre2grep-libz --enable-pcre2grep-libbz2 --enable-pcre2-16 --enable-pcre2-32 --enable-jit"};
-: ${PKG_PHP_DEPENDS:="bzip2 curl libz libzip libxml2 libxslt sqlite3 pcre2 readline libressl onig libiconv"};
-: ${PKG_PHP_SHA256SUM:=53477e73e6254dc942b68913a58d815ffdbf6946baf61a1f8ef854de524c27bf};
-: ${PKG_PHP_VERSION:=8.1.9};
-: ${PKG_PHP_URL:=https://www.php.net/distributions/php-${PKG_PHP_VERSION}.tar.xz};
-: ${PKG_PHP_CONFIG_CACHE_EXTRA:="
-ac_cv_c_bigendian_php=no
-ac_cv_write_stdout=yes
-have_shm_mmap_posix=yes"};
-: ${PKG_PHP_CONFIGURE_ARGS_EXTRA:="--with-layout=GNU --with-external-pcre --with-gmp --disable-gd --disable-phar --enable-pdo=static --enable-dom=static --enable-embed=shared --enable-all=shared --without-enchant --without-imap --disable-intl --without-ldap --without-oci8 --without-adabas --disable-pcntl --without-pdo-dblib --without-pdo-firebird --without-pdo-mysql --without-pdo-oci --without-pdo-odbc --without-pdo-pgsql --without-pdo-sqlite --without-pgsql --without-pspell --without-libedit --without-sapdb --without-snmp --without-sodium --without-password-argon2 --without-tidy --without-ffi --without-mysqli --without-unixODBC --without-dbmaker --without-solid --with-pdo-odbc=no --without-ibm-db2 --without-empress --without-empress-bcs --without-iodbc --without-esoob --without-custom-odbc --without-pear --with-bz2=${PREFIX_NATIVE} --disable-opcache-jit --disable-dl-test"};
-: ${PKG_PHP_ENV_VARS_EXTRA:="HOST_CC=gcc:READLINE_DIR=${PREFIX_NATIVE}/include/readline"};
-: ${PKG_PHP_LIBTOOL:=rdlibtool};
-: ${PKG_PHP_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_PHP_MAKEFLAGS_INSTALL_EXTRA:="prefix=${PREFIX_NATIVE}"};
-: ${PKG_POPT_SHA256SUM:=5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1};
-: ${PKG_POPT_VERSION:=1.18};
-: ${PKG_POPT_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/popt/popt-${PKG_POPT_VERSION}.tar.gz};
-: ${PKG_POTRACE_DEPENDS:="libz"};
-: ${PKG_POTRACE_SHA256SUM:=be8248a17dedd6ccbaab2fcc45835bb0502d062e40fbded3bc56028ce5eb7acc};
-: ${PKG_POTRACE_VERSION:=1.16};
-: ${PKG_POTRACE_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/potrace/potrace-${PKG_POTRACE_VERSION}.tar.gz};
-: ${PKG_PROCPS_NG_DEPENDS:="ncurses ncursesw"};
-: ${PKG_PROCPS_NG_SHA256SUM:=4518b3e7aafd34ec07d0063d250fd474999b20b200218c3ae56f5d2113f141b4};
-: ${PKG_PROCPS_NG_VERSION:=3.3.17};
-: ${PKG_PROCPS_NG_URL:=http://mirror.internode.on.net/pub/slackware/slackware64/source/a/procps-ng/procps-ng-${PKG_PROCPS_NG_VERSION}.tar.xz};
-: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw};
-: ${PKG_PROCPS_NG_SUBDIR:=procps-${PKG_PROCPS_NG_VERSION}};
-: ${PKG_PROCPS_NG_IN_TREE:=1};
-: ${PKG_PROCPS_NG_MAKEFLAGS_BUILD:="LIBS=-Wl,-lncurses,-ltinfo"};
-: ${PKG_PROCPS_NG_FNAME:=procps_ng-${PKG_PROCPS_NG_VERSION}.tar.xz};
-: ${PKG_PROCPS_NG_SUBDIR:=procps-ng-${PKG_PROCPS_NG_VERSION}};
-: ${PKG_QEMU_DEPENDS:="curl glib libX11 pixman w32api w32lib"};
-: ${PKG_QEMU_SHA256SUM:=6a0508df079a0a33c2487ca936a56c12122f105b8a96a44374704bef6c69abfc};
-: ${PKG_QEMU_VERSION:=3.1.0};
-: ${PKG_QEMU_URL:=https://download.qemu.org/qemu-${PKG_QEMU_VERSION}.tar.xz};
-: ${PKG_QEMU_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports"};
-: ${PKG_QEMU_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --cc=${DEFAULT_TARGET}-gcc --disable-strip --disable-sdl"};
-: ${PKG_QPDF_DEPENDS:="libz pcre"};
-: ${PKG_QPDF_SHA256SUM:=a9fdc7e94d38fcd3831f37b6e0fe36492bf79aa6d54f8f66062cf7f9c4155233};
-: ${PKG_QPDF_VERSION:=6.0.0};
-: ${PKG_QPDF_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/qpdf/qpdf-${PKG_QPDF_VERSION}.tar.gz};
-: ${PKG_QPDF_CONFIGURE_ARGS_EXTRA:=--with-random=/dev/urandom};
-: ${PKG_QPDF_IN_TREE:=1};
-: ${PKG_QRENCODE_DEPENDS:="libpng"};
-: ${PKG_QRENCODE_SHA256SUM:=da448ed4f52aba6bcb0cd48cac0dd51b8692bccc4cd127431402fca6f8171e8e};
-: ${PKG_QRENCODE_VERSION:=4.1.1};
-: ${PKG_QRENCODE_URL:=https://fukuchi.org/works/qrencode/qrencode-${PKG_QRENCODE_VERSION}.tar.gz};
-: ${PKG_QRENCODE_CONFIGURE_ARGS_EXTRA:=--disable-sdltest};
-: ${PKG_RPM_DEPENDS:="curl file libarchive libgcrypt libz lua popt xz zstd"};
-: ${PKG_RPM_SHA256SUM:=2e0d220b24749b17810ed181ac1ed005a56bbb6bc8ac429c21f314068dc65e6a};
-: ${PKG_RPM_VERSION:=4.17.0};
-: ${PKG_RPM_URL:=http://ftp.rpm.org/releases/rpm-${PKG_RPM_VERSION%.*}.x/rpm-${PKG_RPM_VERSION}.tar.bz2};
-: ${PKG_RPM_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix=/usr --target=${DEFAULT_TARGET} --disable-inhibit-plugin --enable-ndb --with-vendor=midipix --disable-openmp"};
-: ${PKG_RPM_ENV_VARS_EXTRA:="LIBGCRYPT_LIBS=-lgcrypt:LUA_LIBS=-llua:SQLITE_LIBS=-lsqlite3:LUA_CFLAGS=-I${PREFIX_NATIVE}/include/lua5.4"};
-: ${PKG_RW_SHA256SUM:=50009730e36991dfe579716f91f4f616f5ba05ffb7bf69c03d41bf305ed93b6d};
-: ${PKG_RW_VERSION:=1.0};
-: ${PKG_RW_URL:=https://sortix.org/rw/release/rw-portable-${PKG_RW_VERSION}.tar.gz}
-: ${PKG_RW_BUILD_DIR:=rw-portable-${PKG_RW_VERSION}};
-: ${PKG_SDLQUAKE_DEPENDS:="sdl1"};
-: ${PKG_SDLQUAKE_SHA256SUM:=097882b4613c87303dd068c41c95e77675da790cab63c7b440e70643d1741035};
-: ${PKG_SDLQUAKE_VERSION:=1.0.9};
-: ${PKG_SDLQUAKE_URL:=http://www.libsdl.org/projects/quake/src/sdlquake-${PKG_SDLQUAKE_VERSION}.tar.gz};
-: ${PKG_SDLQUAKE_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --target=${DEFAULT_TARGET} --with-sdl-prefix=${PREFIX_NATIVE}"};
-: ${PKG_SHARED_MIME_INFO_DEPENDS:="glib libxml2"};
-: ${PKG_SHARED_MIME_INFO_SHA256SUM:=2af55ef1a0319805b74ab40d331a3962c905477d76c086f49e34dc96363589e9};
-: ${PKG_SHARED_MIME_INFO_VERSION:=1.8};
-: ${PKG_SHARED_MIME_INFO_URL:=http://freedesktop.org/~hadess/shared-mime-info-${PKG_SHARED_MIME_INFO_VERSION}.tar.xz};
-: ${PKG_SHARED_MIME_INFO_CONFIGURE_ARGS_EXTRA:=--disable-update-mimedb};
-: ${PKG_SHARED_MIME_INFO_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_SLANG_DEPENDS:="libpng ncursesw"};
-: ${PKG_SLANG_SHA256SUM:=f9145054ae131973c61208ea82486d5dd10e3c5cdad23b7c4a0617743c8f5a18};
-: ${PKG_SLANG_VERSION:=2.3.3};
-: ${PKG_SLANG_URL:=https://www.jedsoft.org/releases/slang/slang-${PKG_SLANG_VERSION}.tar.bz2};
-: ${PKG_SLANG_IN_TREE:=1};
-: ${PKG_SLANG_MAKEFLAGS_BUILD_EXTRA:=-j1};
-: ${PKG_SQLITE3_DEPENDS:="ncurses readline"};
-: ${PKG_SQLITE3_SHA256SUM:=4089a8d9b467537b3f246f217b84cd76e00b1d1a971fe5aca1e30e230e46b2d8};
-: ${PKG_SQLITE3_VERSION:=3370200};
-: ${PKG_SQLITE3_URL:=https://sqlite.org/2022/sqlite-autoconf-${PKG_SQLITE3_VERSION}.tar.gz};
-: ${PKG_SQLITE3_CONFIGURE_ARGS_EXTRA:=--disable-static-shell};
-: ${PKG_TCL_SHA256SUM:=2bbd4e0bbdebeaf5dc6cc823d0805afb45c764292f6667d9ce2b9fcf5399e0dc};
-: ${PKG_TCL_VERSION:=8.7a1};
-: ${PKG_TCL_URL:=http://kuiper.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/tcl8_7/tcl${PKG_TCL_VERSION}-src.tar.gz};
-: ${PKG_TCL_CONFIG_CACHE_EXTRA:="
-tcl_cv_strtod_buggy=false
-tcl_cv_strtod_unbroken=true"};
-: ${PKG_TCL_SUBDIR:=tcl${PKG_TCL_VERSION}/unix};
-: ${PKG_TDNF_DEPENDS:="libmetalink libressl curl gpgme libsolv"};
-: ${PKG_TDNF_SHA256SUM:=1ca20b176939f32c212f8dec7bfacd99995f1cb16c7f176b90394378ea854b0b};
-: ${PKG_TDNF_VERSION:=2.1.1};
-: ${PKG_TDNF_URL:=https://github.com/vmware/tdnf/archive/v${PKG_TDNF_VERSION}/tdnf-${PKG_TDNF_VERSION}.tar.gz};
-: ${PKG_TDNF_CMAKE_ARGS_EXTRA:="-DOPENSSL_LIBRARY=${PREFIX_NATIVE}/lib/libcrypto.so"};
-: ${PKG_TDNF_IN_TREE:=1};
-: ${PKG_TDNF_SUBDIR:=tdnf-${PKG_TDNF_VERSION}};
-: ${PKG_TEXINFO_SHA256SUM:=988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa};
-: ${PKG_TEXINFO_VERSION:=6.7};
-: ${PKG_TEXINFO_URL:=https://ftp.gnu.org/gnu/texinfo/texinfo-${PKG_TEXINFO_VERSION}.tar.xz};
-: ${PKG_TIFF_SHA256SUM:=917223b37538959aca3b790d2d73aa6e626b688e02dcda272aec24c2f498abed};
-: ${PKG_TIFF_VERSION:=4.4.0};
-: ${PKG_TIFF_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/tiff/tiff-${PKG_TIFF_VERSION}.tar.gz};
-: ${PKG_TIFF_CONFIGURE_ARGS_EXTRA:=--disable-cxx};
-: ${PKG_TMUX_DEPENDS:="libevent ncurses"};
-: ${PKG_TMUX_SHA256SUM:=55313e132f0f42de7e020bf6323a1939ee02ab79c48634aa07475db41573852b};
-: ${PKG_TMUX_VERSION:=2.3};
-: ${PKG_TMUX_URL:=https://github.com/tmux/tmux/releases/download/${PKG_TMUX_VERSION}/tmux-${PKG_TMUX_VERSION}.tar.gz};
-: ${PKG_TMUX_CONFIGURE_ARGS_EXTRA:=--enable-utf8proc};
-: ${PKG_TZDB_SHA256SUM:=46123b769c55190138cf64e80db605b86f710dc6ca2a15df431966e7fd6e8490};
-: ${PKG_TZDB_VERSION:=2022a};
-: ${PKG_TZDB_URL:=https://data.iana.org/time-zones/releases/tzdb-${PKG_TZDB_VERSION}.tar.lz};
-: ${PKG_TZDB_BUILD_DIR:="tzdb-${PKG_TZDB_VERSION}"};
-: ${PKG_TZDB_MAKEFLAGS_INSTALL_EXTRA:="ZIC=${PREFIX}/sbin/zic"};
-: ${PKG_UTF8PROC_URLS_GIT:="utf8proc=https://github.com/JuliaStrings/utf8proc@master"};
-: ${PKG_UTIL_LINUX_DEPENDS:="ncursesw"};
-: ${PKG_UTIL_LINUX_SHA256SUM:=6a0764c1aae7fb607ef8a6dd2c0f6c47d5e5fd27aa08820abaad9ec14e28e9d9};
-: ${PKG_UTIL_LINUX_VERSION:=2.37.2};
-: ${PKG_UTIL_LINUX_URL:=https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${PKG_UTIL_LINUX_VERSION%.*}/util-linux-${PKG_UTIL_LINUX_VERSION}.tar.xz};
-: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-lslogins --disable-wall --disable-write --disable-nologin --disable-sulogin --disable-hwclock --disable-schedutils --enable-more};
-: ${PKG_UTIL_LINUX_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
-: ${PKG_UTIL_LINUX_CONFIG_CACHE_EXTRA:="
-ac_cv_func_timer_create=no
-ac_cv_lib_rt_timer_create=no
-ac_cv_search_timer_create=no
-ac_cv_prog_NCURSESW6_CONFIG=%PREFIX%/bin/ncursesw6-config"};
-: ${PKG_VIM_DEPENDS:="ncursesw"};
-: ${PKG_VIM_SHA256SUM:=cbcf24ded38b7b49734911ed7a1b9d7fed75682d1c14068814117855411f7abb};
-: ${PKG_VIM_VERSION:=9.0.0234};
-: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz};
-: ${PKG_VIM_CONFIGURE_ARGS_EXTRA:="--enable-gui=no --with-tlib=tinfow --without-x --disable-canberra --disable-libsodium --disable-motif-check --disable-sysmouse --disable-gpm"};
-: ${PKG_VIM_IN_TREE:=1};
-: ${PKG_VIM_INSTALL_FILES_V2:="@vim=bin/vi"};
-: ${PKG_VIM_MAKEFLAGS_INSTALL_EXTRA:=STRIP=/bin/true};
-: ${PKG_VIM_SUBDIR:=vim-${PKG_VIM_VERSION}};
-: ${PKG_VIM_CONFIG_CACHE_EXTRA:="
-vim_cv_tgetent=zero
-vim_cv_toupper_broken=no
-vim_cv_terminfo=yes
-vim_cv_getcwd_broken=no
-vim_cv_stat_ignores_slash=yes
-vim_cv_memmove_handles_overlap=yes
-vim_cv_timer_create=yes"};
-: ${PKG_VORBIS_TOOLS_DEPENDS:="curl libflac libogg libvorbis"};
-: ${PKG_VORBIS_TOOLS_SHA256SUM:=db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0};
-: ${PKG_VORBIS_TOOLS_VERSION:=1.4.2};
-: ${PKG_VORBIS_TOOLS_URL:=https://ftp.osuosl.org/pub/xiph/releases/vorbis/vorbis-tools-${PKG_VORBIS_TOOLS_VERSION}.tar.gz};
-: ${PKG_VORBIS_TOOLS_CONFIGURE_ARGS_EXTRA:="--disable-ogg123 --without-speex --without-kate"};
-: ${PKG_W32API_URLS_GIT:="w32api=https://github.com/midipix-ports/w32api.ports@main"};
-: ${PKG_W32API_IN_TREE:=1};
-: ${PKG_W32API_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
-: ${PKG_W32LIB_URLS_GIT:="w32lib=https://git.midipix.org/w32lib"};
-: ${PKG_W32LIB_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_XORRISO_SHA256SUM:=3b69f5c93ae7c40c5bbe4a847fa3963f5efc9c565551622f77121c5792fc17e7};
-: ${PKG_XORRISO_VERSION:=1.5.2};
-: ${PKG_XORRISO_URL:=https://www.gnu.org/software/xorriso/xorriso-${PKG_XORRISO_VERSION}.tar.gz};
-: ${PKG_XORRISO_IN_TREE:=1};
-: ${PKG_XPDF_DEPENDS:="fontconfig libz"};
-: ${PKG_XPDF_SHA256SUM:=0fe4274374c330feaadcebb7bd7700cb91203e153b26aa95952f02bf130be846};
-: ${PKG_XPDF_VERSION:=4.03};
-: ${PKG_XPDF_URL:=https://dl.xpdfreader.com/xpdf-${PKG_XPDF_VERSION}.tar.gz};
-: ${PKG_XPDF_CMAKE_ARGS_EXTRA:="
- -DFREETYPE_LIBRARY=${PREFIX_NATIVE}/lib/libfreetype.lib.a
- -DFREETYPE_INCLUDE_DIR_ft2build=${PREFIX_NATIVE}/include/ft2build
- -DFONTCONFIG_LIBRARY=${PREFIX_NATIVE}/lib/libfontconfig.lib.a"};
-: ${PKG_XZ_SHA256SUM:=e076ba3439cb7cfc45b908c869f51a8c89f3c9ee9ee982fde28849c015e723a7};
-: ${PKG_XZ_VERSION:=5.2.6};
-: ${PKG_XZ_URL:=https://fossies.org/linux/misc/xz-${PKG_XZ_VERSION}.tar.xz};
-: ${PKG_YABASIC_SHA256SUM:=24eaca1a520817ec266d132d89b4a657d5adf3e6bad54f13b103991afdca6d40};
-: ${PKG_YABASIC_VERSION:=2.83.0};
-: ${PKG_YABASIC_URL:=http://www.yabasic.de/download/yabasic-${PKG_YABASIC_VERSION}.tar.gz};
-: ${PKG_YABASIC_CONFIG_CACHE_EXTRA:="ac_cv_func_strtod=yes"};
-: ${PKG_YABASIC_DISABLED:=1};
-: ${PKG_ZSTD_SHA256SUM:=92e41b6e8dd26bbd46248e8aa1d86f1551bc221a796277ae9362954f26d605a9};
-: ${PKG_ZSTD_VERSION:=1.3.4};
-: ${PKG_ZSTD_URL:=https://github.com/facebook/zstd/archive/v${PKG_ZSTD_VERSION}.tar.gz};
-: ${PKG_ZSTD_CFLAGS_BUILD_EXTRA:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_ZSTD_IN_TREE:=1};
-: ${PKG_ZSTD_SUBDIR:=zstd-${PKG_ZSTD_VERSION}};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/241.native_packages_inet.group b/groups/241.native_packages_inet.group
deleted file mode 100644
index 862fbe0b..00000000
--- a/groups/241.native_packages_inet.group
+++ /dev/null
@@ -1,270 +0,0 @@
-#
-# Build group native_packages (inet)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-apk_tools aria2 bind ca_certificates curl dropbear elinks fetchmail git gnupg gpgme
-gnutls httpd icecast inetutils irssi isync ldns lighttpd links lynx mailutils
-microsocks mutt nginx ngircd nullmailer openlitespeed opensmtpd openssh
-proxytunnel rsync socat thttpd w3m weechat wget wget2 whois")";
-: ${PKG_APK_TOOLS_DEPENDS:="libfetch libressl libz"};
-: ${PKG_APK_TOOLS_SHA256SUM:=def2b2c23cd12fd2a9c19be49653b0d1bf9d81a26dac5a0ee79a1351d674f93b};
-: ${PKG_APK_TOOLS_VERSION:=2.6.8};
-: ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2};
-: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${DEFAULT_TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}:OPENSSL_LIBS=-L${PREFIX_NATIVE}/lib -lssl -lcrypto:ZLIB_LIBS=-L${PREFIX_NATIVE}/lib -lz};
-: ${PKG_APK_TOOLS_IN_TREE:=1};
-: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:="PREFIX=${PREFIX_NATIVE} MANDIR=/share/man DOCDIR=/share/doc/apk"};
-: ${PKG_APK_TOOLS_DISABLED:=1};
-: ${PKG_ARIA2_SHA256SUM:=546e9194a9135d665fce572cb93c88f30fb5601d113bfa19951107ced682dc50};
-: ${PKG_ARIA2_VERSION:=1.32.0};
-: ${PKG_ARIA2_URL:=https://github.com/aria2/aria2/releases/download/release-${PKG_ARIA2_VERSION}/aria2-${PKG_ARIA2_VERSION}.tar.xz};
-: ${PKG_ARIA2_DISABLED:=1};
-: ${PKG_BIND_DEPENDS:="curl libressl libz"};
-: ${PKG_BIND_SHA256SUM:=6c044e9ea81add9dbbd2f5dfc224964cc6b6e364e43a8d6d8b574d9282651802};
-: ${PKG_BIND_VERSION:=9.13.2};
-: ${PKG_BIND_URL:=https://ftp.isc.org/isc/bind/${PKG_BIND_VERSION}/bind-${PKG_BIND_VERSION}.tar.gz};
-: ${PKG_BIND_CONFIGURE_ARGS_EXTRA:="--with-libtool --disable-backtrace --with-eddsa=no --with-ecdsa=yes --with-gssapi=no --with-libxml2=no --with-libjson=no --with-openssl=${PREFIX_NATIVE} --without-lmdb BUILD_CC=gcc"};
-: ${PKG_BIND_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_CA_CERTIFICATES_DEPENDS:="libressl"};
-: ${PKG_CA_CERTIFICATES_URLS_GIT:="cacerts=https://dev.midipix.org/distro/cacerts.git@main"};
-: ${PKG_CA_CERTIFICATES_IN_TREE:=1};
-: ${PKG_CA_CERTIFICATES_CFLAGS_BUILD_EXTRA:=-I${PREFIX_NATIVE}/include};
-: ${PKG_CA_CERTIFICATES_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib};
-: ${PKG_CA_CERTIFICATES_ENV_VARS_EXTRA:="HOST_CC=gcc"};
-: ${PKG_CA_CERTIFICATES_VARS_FILE:="vars/ca_certificates.vars"};
-: ${PKG_CURL_DEPENDS:="gnutls"};
-: ${PKG_CURL_SHA256SUM:=2cb9c2356e7263a1272fd1435ef7cdebf2cd21400ec287b068396deb705c22c4};
-: ${PKG_CURL_VERSION:=7.83.1};
-: ${PKG_CURL_URL:=https://curl.haxx.se/download/curl-${PKG_CURL_VERSION}.tar.xz};
-: ${PKG_CURL_CONFIGURE_ARGS_EXTRA:="--disable-symbol-hiding --enable-shared --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-ca-path=/etc/ssl/certs --with-gnutls --without-ssl --disable-socketpair"};
-: ${PKG_DROPBEAR_DEPENDS:="libz"};
-: ${PKG_DROPBEAR_SHA256SUM:=48235d10b37775dbda59341ac0c4b239b82ad6318c31568b985730c788aac53b};
-: ${PKG_DROPBEAR_VERSION:=2020.81};
-: ${PKG_DROPBEAR_URL:=http://repository.timesys.com/buildsources/d/dropbear/dropbear-${PKG_DROPBEAR_VERSION}/dropbear-${PKG_DROPBEAR_VERSION}.tar.bz2};
-: ${PKG_DROPBEAR_CONFIGURE_ARGS_EXTRA:=--disable-loginfunc};
-: ${PKG_ELINKS_DEPENDS:="gnutls libgcrypt libevent expat xz bzip2 ncurses zstd libz"};
-: ${PKG_ELINKS_SHA256SUM:=bf2e9d752921f2d83a7dcac1062c37ae6c8d7c4057d8537abe1c42fbac946fb3};
-: ${PKG_ELINKS_VERSION:=0.15.0};
-: ${PKG_ELINKS_URL:=https://github.com/rkd77/elinks/releases/download/v${PKG_ELINKS_VERSION}/elinks-${PKG_ELINKS_VERSION}.tar.xz};
-: ${PKG_ELINKS_CONFIGURE_ARGS_EXTRA:="--enable-fastmem --enable-88-colors --enable-256-colors --enable-true-color --enable-leds --enable-gemini --enable-gopher --enable-html-highlight --enable-fsp --with-terminfo --with-libevent --with-lzma --with-gnutls --without-spidermonkey --without-x"};
-: ${PKG_ELINKS_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_FETCHMAIL_DEPENDS:="libressl"};
-: ${PKG_FETCHMAIL_SHA256SUM:=c7500bed3b0bb85722f7cf2d980e74a879ac57b13cfd225d278179d671c0f5e8};
-: ${PKG_FETCHMAIL_VERSION:=6.4.0.beta4};
-: ${PKG_FETCHMAIL_URL:=http://krusty.dt.e-technik.tu-dortmund.de/~ma/fetchmail/fetchmail-${PKG_FETCHMAIL_VERSION}.tar.xz};
-: ${PKG_FETCHMAIL_CONFIGURE_ARGS_EXTRA:="--with-kerberos5=no --with-kerberos=no --with-ssl=${PREFIX_NATIVE}"};
-: ${PKG_GIT_DEPENDS:="curl libz"};
-: ${PKG_GIT_SHA256SUM:=6f2287bbde2d215394966732836f3aba62b029161e8eaadaf236578d92c06fe9};
-: ${PKG_GIT_VERSION:=2.35.2};
-: ${PKG_GIT_URL:=https://github.com/git/git/archive/v${PKG_GIT_VERSION}.tar.gz};
-: ${PKG_GIT_CFLAGS_BUILD_EXTRA:="-std=gnu99"};
-: ${PKG_GIT_CONFIG_CACHE_EXTRA:="
-ac_cv_fread_reads_directories=1
-ac_cv_snprintf_returns_bogus=0"};
-: ${PKG_GIT_CONFIG_CACHE_LOCAL:="ac_cv_iconv_omits_bom=false"};
-: ${PKG_GIT_IN_TREE:=1};
-: ${PKG_GIT_MAKEFLAGS_BUILD:="CFLAGS=-std=gnu99 CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config CURLDIR=${PREFIX_NATIVE} HAVE_DEV_TTY=yes NO_GETTEXT=yes NO_REGEX=yes NO_PERL=yes NO_PYTHON=yes NO_TCLTK=yes"};
-: ${PKG_GIT_MAKEFLAGS_INSTALL:="CFLAGS=-std=gnu99 CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config CURLDIR=${PREFIX_NATIVE} HAVE_DEV_TTY=yes NO_GETTEXT=yes NO_REGEX=yes NO_PERL=yes NO_PYTHON=yes NO_TCLTK=yes"};
-: ${PKG_GIT_SUBDIR:=git-${PKG_GIT_VERSION}};
-: ${PKG_GNUPG_DEPENDS:="libassuan libgcrypt libgpg_error libksba npth sqlite3"};
-: ${PKG_GNUPG_SHA256SUM:=ee163a5fb9ec99ffc1b18e65faef8d086800c5713d15a672ab57d3799da83669};
-: ${PKG_GNUPG_VERSION:=2.3.7};
-: ${PKG_GNUPG_URL:=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${PKG_GNUPG_VERSION}.tar.bz2};
-: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"};
-: ${PKG_GPGME_DEPENDS:="libassuan libgpg_error"};
-: ${PKG_GPGME_SHA256SUM:=361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e};
-: ${PKG_GPGME_VERSION:=1.18.0};
-: ${PKG_GPGME_URL:=https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-${PKG_GPGME_VERSION}.tar.bz2};
-: ${PKG_GPGME_CONFIGURE_ARGS_EXTRA:="--disable-g13-test --disable-gpgconf-test --disable-gpgsm-test --disable-gpg-test --with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --enable-languages=cl"};
-: ${PKG_GPGME_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
-: ${PKG_GNUTLS_DEPENDS:="libunistring libtasn1 nettle"};
-: ${PKG_GNUTLS_SHA256SUM:=77065719a345bfb18faa250134be4c53bef70c1bd61f6c0c23ceb8b44f0262ff};
-: ${PKG_GNUTLS_VERSION:=3.7.6};
-: ${PKG_GNUTLS_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v${PKG_GNUTLS_VERSION%.*}/gnutls-${PKG_GNUTLS_VERSION}.tar.xz};
-: ${PKG_GNUTLS_CONFIG_CACHE_EXTRA:="
-gl_cv_func_working_getdelim=yes
-gl_cv_ld_output_def=no"};
-: ${PKG_GNUTLS_CONFIGURE_ARGS_EXTRA:="PYTHON=python3 --disable-static --disable-ssl3-support --disable-ssl2-support --disable-cxx --enable-local-libopts --without-p11-kit --disable-hardware-acceleration --enable-guile=no --with-default-trust-store-dir=/etc/ssl/certs --without-zstd"};
-: ${PKG_GNUTLS_LIBTOOL:=rdlibtool};
-: ${PKG_HTTPD_SHA256SUM:=0127f7dc497e9983e9c51474bed75e45607f2f870a7675a86dc90af6d572f5c9};
-: ${PKG_HTTPD_VERSION:=2.4.52};
-: ${PKG_HTTPD_URL:=https://archive.apache.org/dist/httpd/httpd-${PKG_HTTPD_VERSION}.tar.bz2};
-: ${PKG_HTTPD_CONFIG_CACHE_EXTRA:="ap_cv_void_ptr_lt_long=no"};
-: ${PKG_HTTPD_CONFIGURE_ARGS_EXTRA:="--with-apr=${PREFIX_NATIVE}/bin/${DEFAULT_TARGET}-apr-1-config --with-apr-util=${PREFIX_NATIVE}/bin/apu-1-config --with-z=${PREFIX_NATIVE} --with-ssl=${PREFIX_NATIVE} --with-pcre=${PREFIX}/bin/pcre-config --enable-mods-static=all --disable-ext-filter --disable-lua --sysconfdir=/etc/apache2 --localstatedir=/var/lib/apache2 --datadir=/srv/www"};
-: ${PKG_HTTPD_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4"};
-: ${PKG_HTTPD_DISABLED:=1};
-: ${PKG_ICECAST_DEPENDS:="curl expat libvorbis libxml2 libxslt wolfssl"};
-: ${PKG_ICECAST_SHA256SUM:=49b5979f9f614140b6a38046154203ee28218d8fc549888596a683ad604e4d44};
-: ${PKG_ICECAST_VERSION:=2.4.4};
-: ${PKG_ICECAST_URL:=http://downloads.xiph.org/releases/icecast/icecast-${PKG_ICECAST_VERSION}.tar.gz};
-: ${PKG_ICECAST_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/libxml2"};
-: ${PKG_ICECAST_LDFLAGS_CONFIGURE_EXTRA:="-lwolfssl"};
-: ${PKG_ICECAST_CONFIGURE_ARGS_EXTRA:="--with-curl=${PREFIX_NATIVE} --with-ogg=${PREFIX_NATIVE} --with-theora=${PREFIX_NATIVE} --with-vorbis=${PREFIX_NATIVE} --with-xslt-config=${PREFIX}/bin/xslt-config --without-speex"};
-: ${PKG_INETUTILS_DEPENDS:="ncurses"};
-: ${PKG_INETUTILS_SHA256SUM:=0b01bb08e29623c4e3b940f233c961451d9af8c5066301add76a52a95d51772c};
-: ${PKG_INETUTILS_VERSION:=2.3};
-: ${PKG_INETUTILS_URL:=https://ftp.gnu.org/gnu/inetutils/inetutils-${PKG_INETUTILS_VERSION}.tar.xz};
-: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --enable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-syslogd --enable-talkd --enable-telnetd --disable-tftpd --disable-uucpd --disable-dnsdomainname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --enable-hostname --enable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute"};
-: ${PKG_IRSSI_DEPENDS:="glib libressl ncurses"};
-: ${PKG_IRSSI_SHA256SUM:=29cbb746d7e57591d8fcf799406fb28cb7c2d734bc4288cbb8b4c4e05cf99c25};
-: ${PKG_IRSSI_VERSION:=1.2.3};
-: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/${PKG_IRSSI_VERSION}/irssi-${PKG_IRSSI_VERSION}.tar.gz};
-: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}};
-: ${PKG_ISYNC_DEPENDS:="libressl"};
-: ${PKG_ISYNC_SHA256SUM:=7c3273894f22e98330a330051e9d942fd9ffbc02b91952c2f1896a5c37e700ff};
-: ${PKG_ISYNC_VERSION:=1.4.4};
-: ${PKG_ISYNC_URL:=https://sources.voidlinux.org/isync-${PKG_ISYNC_VERSION}/isync-${PKG_ISYNC_VERSION}.tar.gz};
-: ${PKG_ISYNC_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
-: ${PKG_LDNS_DEPENDS:="libressl"};
-: ${PKG_LDNS_SHA256SUM:=c19f5b1b4fb374cfe34f4845ea11b1e0551ddc67803bd6ddd5d2a20f0997a6cc};
-: ${PKG_LDNS_VERSION:=1.7.0};
-: ${PKG_LDNS_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/ldns/ldns-${PKG_LDNS_VERSION}.tar.gz};
-: ${PKG_LDNS_CONFIGURE_ARGS_EXTRA:="--with-ssl=${PREFIX_NATIVE} --disable-dane-ta-usage --with-drill --with-examples"};
-: ${PKG_LDNS_MAKEFLAGS_BUILD:="-j1"};
-: ${PKG_LIGHTTPD_DEPENDS:="bzip2 pcre libressl libsasl2 libz gnutls"};
-: ${PKG_LIGHTTPD_SHA256SUM:=7e04d767f51a8d824b32e2483ef2950982920d427d1272ef4667f49d6f89f358};
-: ${PKG_LIGHTTPD_VERSION:=1.4.67};
-: ${PKG_LIGHTTPD_URL:=https://download.lighttpd.net/lighttpd/releases-${PKG_LIGHTTPD_VERSION%.*}.x/lighttpd-${PKG_LIGHTTPD_VERSION}.tar.xz};
-: ${PKG_LIGHTTPD_CONFIGURE_ARGS_EXTRA:="--with-pcre2 --with-bzip2 --with-openssl --with-gnutls --with-libxml --with-sasl"};
-: ${PKG_LIGHTTPD_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4"};
-: ${PKG_LINKS_DEPENDS:="bzip2 libz libpng libX11 libressl tiff libjpeg_turbo xz zstd"};
-: ${PKG_LINKS_SHA256SUM:=d8ddcbfcede7cdde80abeb0a236358f57fa6beb2bcf92e109624e9b896f9ebb4};
-: ${PKG_LINKS_VERSION:=2.27};
-: ${PKG_LINKS_URL:=http://links.twibright.com/download/links-${PKG_LINKS_VERSION}.tar.bz2};
-: ${PKG_LINKS_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --disable-graphics --without-freetype"};
-: ${PKG_LYNX_DEPENDS:="gnutls ncursesw readline"};
-: ${PKG_LYNX_SHA256SUM:=6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7};
-: ${PKG_LYNX_VERSION:=2.8.8rel.2};
-: ${PKG_LYNX_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/lynx/lynx${PKG_LYNX_VERSION}.tar.bz2};
-: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw -DNCURSES_INTERNALS"};
-: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--with-gnutls};
-: ${PKG_LYNX_SUBDIR:=lynx2-8-8};
-: ${PKG_LYNX_DISABLED:=1};
-: ${PKG_MAILUTILS_DEPENDS:="gnutls ncurses libunistring"};
-: ${PKG_MAILUTILS_SHA256SUM:=b7d0c286c352fcc7da7978cfd617cc66736b21fa891aa4f88855f516354f2ddb};
-: ${PKG_MAILUTILS_VERSION:=3.15};
-: ${PKG_MAILUTILS_URL:=https://ftp.gnu.org/gnu/mailutils/mailutils-${PKG_MAILUTILS_VERSION}.tar.xz};
-: ${PKG_MAILUTILS_CONFIGURE_ARGS_EXTRA:="mu_cv_lib_gnutls=yes --disable-python --with-gnutls --without-fribidi"};
-: ${PKG_MAILUTILS_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib -lgnutls -lunistring"};
-: ${PKG_MAILUTILS_IN_TREE=1};
-: ${PKG_MICROSOCKS_URLS_GIT:=microsocks=https://github.com/rofl0r/microsocks.git@master};
-: ${PKG_MICROSOCKS_BUILD_DIR:=microsocks};
-: ${PKG_MUTT_DEPENDS:="gnutls libz ncursesw"};
-: ${PKG_MUTT_SHA256SUM:=eb13858f58bb369f477bf652d90e9b6aaddd0d610acbea3455049e5efad36df1};
-: ${PKG_MUTT_VERSION:=2.2.7};
-: ${PKG_MUTT_URL:=http://ftp.mutt.org/pub/mutt/mutt-${PKG_MUTT_VERSION}.tar.gz};
-: ${PKG_MUTT_CONFIG_CACHE_EXTRA:="
-mutt_cv_c99_snprintf=yes
-mutt_cv_c99_vsnprintf=yes
-mutt_cv_regex_broken=no"};
-: ${PKG_MUTT_CONFIGURE_ARGS_EXTRA:="--enable-imap --enable-pop --enable-smtp --enable-sidebar --with-curses --with-mailpath=/var/spool/mail --with-gnutls --disable-doc"};
-: ${PKG_NGINX_DEPENDS:="libz pcre"};
-: ${PKG_NGINX_SHA256SUM:=958876757782190a1653e14dc26dfc7ba263de310e04c113e11e97d1bef45a42};
-: ${PKG_NGINX_VERSION:=1.20.2};
-: ${PKG_NGINX_URL:=http://nginx.org/download/nginx-${PKG_NGINX_VERSION}.tar.gz};
-: ${PKG_NGINX_CFLAGS_BUILD_EXTRA:="-Wno-sign-compare"};
-: ${PKG_NGINX_CONFIGURE_ARGS:="--prefix="};
-: ${PKG_NGINX_ENV_VARS_EXTRA:=CC=${DEFAULT_TARGET}-gcc};
-: ${PKG_NGINX_IN_TREE:=1};
-: ${PKG_NGIRCD_DEPENDS:="gnutls"};
-: ${PKG_NGIRCD_SHA256SUM:=55c16fd26009f6fc6a007df4efac87a02e122f680612cda1ce26e17a18d86254};
-: ${PKG_NGIRCD_VERSION:=26.1};
-: ${PKG_NGIRCD_URL:=https://arthur.barton.de/pub/ngircd/ngircd-${PKG_NGIRCD_VERSION}.tar.xz};
-: ${PKG_NGIRCD_CONFIGURE_ARGS_EXTRA:="--with-gnutls"};
-: ${PKG_NULLMAILER_DEPENDS:="gnutls"};
-: ${PKG_NULLMAILER_SHA256SUM:=6d277f69f1999c86df0ca9a97a4f14f9bb431c50fd4e016918290b84ff679241}
-: ${PKG_NULLMAILER_VERSION:=2.2}
-: ${PKG_NULLMAILER_URL:=https://github.com/bruceg/nullmailer/archive/${PKG_NULLMAILER_VERSION}.tar.gz};
-: ${PKG_NULLMAILER_CONFIG_CACHE_EXTRA:="local_cv_flag_NAMEDPIPEBUG=no"};
-: ${PKG_NULLMAILER_CONFIGURE_ARGS_EXTRA:="--enable-tls"}
-: ${PKG_NULLMAILER_FORCE_AUTORECONF:=1};
-: ${PKG_NULLMAILER_IN_TREE:=1}
-: ${PKG_NULLMAILER_SUBDIR:=nullmailer-${PKG_NULLMAILER_VERSION}};
-: ${PKG_OPENLITESPEED_SHA256SUM:=11cea34ebb0d72e5c620c61dce9ee4982474311dc5f35e0737a6b6d760bcf577};
-: ${PKG_OPENLITESPEED_VERSION:=1.4.27};
-: ${PKG_OPENLITESPEED_URL:=http://open.litespeedtech.com/packages/openlitespeed-${PKG_OPENLITESPEED_VERSION}.tgz};
-: ${PKG_OPENLITESPEED_CONFIGURE_ARGS:="-C --host=${DEFAULT_TARGET} --prefix=/usr/lsws --target=${DEFAULT_TARGET} --with-expat=${PREFIX_NATIVE} --with-openssl=${PREFIX_NATIVE} --with-zlib=${PREFIX_NATIVE}" --enable-spdy=no};
-: ${PKG_OPENLITESPEED_CXXFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
-: ${PKG_OPENLITESPEED_DESTDIR:=destdir/lsws};
-: ${PKG_OPENLITESPEED_DISABLED:=1};
-: ${PKG_OPENLITESPEED_IN_TREE:=1};
-: ${PKG_OPENLITESPEED_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_OPENLITESPEED_PREFIX:=${PREFIX_NATIVE}/lsws};
-: ${PKG_OPENSMTPD_DEPENDS:="libevent libressl libz musl_fts"};
-: ${PKG_OPENSMTPD_SHA256SUM:=51bf05312fe56764748faab9e63170bfbb7c7d84a37c4117b62b2681eb3a4d17};
-: ${PKG_OPENSMTPD_VERSION:=6.8.0p2};
-: ${PKG_OPENSMTPD_URL:=https://www.opensmtpd.org/archives/opensmtpd-${PKG_OPENSMTPD_VERSION}.tar.gz}
-: ${PKG_OPENSMTPD_CONFIGURE_ARGS_EXTRA:="--with-maildir=/var/mail --with-libz=${PREFIX_NATIVE} --with-libevent=${PREFIX_NATIVE}"};
-: ${PKG_OPENSMTPD_IN_TREE:=1};
-: ${PKG_OPENSSH_DEPENDS:="libedit libressl libz"};
-: ${PKG_OPENSSH_SHA256SUM:=03974302161e9ecce32153cfa10012f1e65c8f3750f573a73ab1befd5972a28a};
-: ${PKG_OPENSSH_VERSION:=9.0p1};
-: ${PKG_OPENSSH_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PKG_OPENSSH_VERSION}.tar.gz};
-: ${PKG_OPENSSH_CFLAGS_CONFIGURE_EXTRA:="-DUSE_PIPES -DUSE_LIBEDIT"};
-: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA:="--with-libedit=${PREFIX_NATIVE} --without-shadow"};
-: ${PKG_OPENSSH_DEBUG_CONFIGURE_ARGS_EXTRA:=--disable-strip};
-: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys};
-: ${PKG_OPENSSH_MAKEFLAGS_INSTALL_EXTRA:=STRIP_OPT=};
-: ${PKG_OPENSSH_ENV_VARS_EXTRA:="LIBEDIT=-ledit -ltinfo"};
-: ${PKG_PROXYTUNNEL_DEPENDS:="libressl"};
-: ${PKG_PROXYTUNNEL_SHA256SUM:=6495430e9c60d3df53824a7a0f3bea9953a89d083a3718c72db04dc4d40755ac};
-: ${PKG_PROXYTUNNEL_VERSION:=1.10.20200507}
-: ${PKG_PROXYTUNNEL_URL:=https://github.com/proxytunnel/proxytunnel/archive/v${PKG_PROXYTUNNEL_VERSION}.tar.gz};
-: ${PKG_PROXYTUNNEL_SUBDIR:=proxytunnel-${PKG_PROXYTUNNEL_VERSION}};
-: ${PKG_PROXYTUNNEL_BUILD_DIR:=${PKG_PROXYTUNNEL_SUBDIR}};
-: ${PKG_PROXYTUNNEL_CFLAGS_BUILD_EXTRA:="-Wall -g3 -O0 --sysroot=${PREFIX_NATIVE}"};
-: ${PKG_PROXYTUNNEL_LDFLAGS_BUILD_EXTRA:="-L${PREFIX_NATIVE}/lib -lssl -lcrypto"};
-: ${PKG_RSYNC_DEPENDS:="libressl"};
-: ${PKG_RSYNC_SHA256SUM:=6f761838d08052b0b6579cf7f6737d93e47f01f4da04c5d24d3447b7f2a5fad1};
-: ${PKG_RSYNC_VERSION:=3.2.4};
-: ${PKG_RSYNC_URL:=https://download.samba.org/pub/rsync/src/rsync-${PKG_RSYNC_VERSION}.tar.gz};
-: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:="--with-included-zlib --disable-simd --disable-xxhash --disable-lz4 --disable-zstd"};
-: ${PKG_SOCAT_SHA256SUM:=d9ed2075abed7b3ec9730ed729b4c8e287c502181c806d4487020418a6e2fc36};
-: ${PKG_SOCAT_VERSION:=1.7.3.4};
-: ${PKG_SOCAT_URL:=http://www.dest-unreach.org/socat/download/socat-${PKG_SOCAT_VERSION}.tar.gz};
-: ${PKG_THTTPD_SHA256SUM:=99c09f47da326b1e7b5295c45549d2b65534dce27c44812cf7eef1441681a397};
-: ${PKG_THTTPD_VERSION:=2.29};
-: ${PKG_THTTPD_URL:=https://acme.com/software/thttpd/thttpd-${PKG_THTTPD_VERSION}.tar.gz};
-: ${PKG_THTTPD_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_THTTPD_IN_TREE:=1};
-: ${PKG_THTTPD_MAKEFLAGS_BUILD_EXTRA:=-j1};
-: ${PKG_THTTPD_MAKE_INSTALL_VNAME:=prefix};
-: ${PKG_W3M_DEPENDS:="bdwgc imlib2 libressl ncurses"};
-: ${PKG_W3M_SHA256SUM:=0467bb5429b75749205a3f57b9f5e8abba49929272aeab6fce94ff17953f0784};
-: ${PKG_W3M_VERSION:=0.5.3+git20190105};
-: ${PKG_W3M_URL:=https://github.com/tats/w3m/archive/v${PKG_W3M_VERSION}.tar.gz};
-: ${PKG_W3M_CONFIG_CACHE_EXTRA:="ac_cv_func_setpgrp_void=yes"};
-: ${PKG_W3M_CONFIGURE_ARGS_EXTRA:="--with-ssl --with-imagelib=imlib2 --with-termlib=ncurses --disable-w3mmailer"};
-: ${PKG_W3M_ENV_VARS_EXTRA:="LIBS=-ltinfo"};
-: ${PKG_W3M_IN_TREE:=1};
-: ${PKG_W3M_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_W3M_SUBDIR:=w3m-0.5.3-git20190105};
-: ${PKG_WEECHAT_DEPENDS:="curl gnutls libgcrypt libz ncursesw"};
-: ${PKG_WEECHAT_SHA256SUM:=f095f452aca0a92d86f46db74d712a890bca130fe1f20f7fad6e515b5c3be644};
-: ${PKG_WEECHAT_VERSION:=3.6};
-: ${PKG_WEECHAT_URL:=https://weechat.org/files/src/weechat-${PKG_WEECHAT_VERSION}.tar.gz};
-: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-guile --disable-javascript --disable-perl --disable-python --disable-ruby --disable-tcl"};
-: ${PKG_WEECHAT_ENV_VARS_EXTRA:="CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config:LIBGCRYPT_CONFIG=${PREFIX_NATIVE}/bin/libgcrypt-config:PKGCONFIG=${DEFAULT_TARGET}-pkg-config"};
-: ${PKG_WEECHAT_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/lua5.4 -I${PREFIX_NATIVE}/include/php -I${PREFIX_NATIVE}/include/php/main -I${PREFIX_NATIVE}/include/php/Zend -I${PREFIX_NATIVE}/include/php/TSRM"};
-: ${PKG_WEECHAT_LDFLAGS_CONFIGURE_EXTRA:="-Wl,--as-needed -ltinfow -Wl,--no-as-needed"};
-: ${PKG_WGET_DEPENDS:="gnutls gpgme libz libidn2 libpsl libiconv"};
-: ${PKG_WGET_SHA256SUM:=5726bb8bc5ca0f6dc7110f6416e4bb7019e2d2ff5bf93d1ca2ffcc6656f220e5};
-: ${PKG_WGET_VERSION:=1.21.3};
-: ${PKG_WGET_URL:=https://ftp.gnu.org/gnu/wget/wget-${PKG_WGET_VERSION}.tar.gz};
-: ${PKG_WGET_CONFIGURE_ARGS_EXTRA:="--with-ssl=gnutls --with-gpgme-prefix=${PREFIX_NATIVE}"};
-: ${PKG_WGET_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
-: ${PKG_WGET_PYTHON:=${PREFIX}/bin/python3};
-: ${PKG_WGET2_DEPENDS:="gnutls gpgme libz libidn2 libpsl bzip2 pcre2 xz zstd"};
-: ${PKG_WGET2_SHA256SUM:=4fe2fba0abb653ecc1cc180bea7f04212c17e8fe05c85aaac8baeac4cd241544};
-: ${PKG_WGET2_VERSION:=2.0.0};
-: ${PKG_WGET2_URL:=https://ftp.gnu.org/gnu/wget/wget2-${PKG_WGET2_VERSION}.tar.gz};
-: ${PKG_WHOIS_DEPENDS:="libidn2"};
-: ${PKG_WHOIS_SHA256SUM:=a96cf60722e5c3962f8abef36184a101011447d3fe5fa053ea97f593826568fb};
-: ${PKG_WHOIS_VERSION:=5.5.13};
-: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz};
-: ${PKG_WHOIS_IN_TREE:=1};
-: ${PKG_WHOIS_CFLAGS_BUILD:=${NATIVE_PACKAGES_CFLAGS_CONFIGURE}};
-: ${PKG_WHOIS_MAKE_INSTALL_VNAME:=BASEDIR};
-: ${PKG_WHOIS_SUBDIR:=whois-${PKG_WHOIS_VERSION}};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/251.native_packages_lib.group b/groups/251.native_packages_lib.group
deleted file mode 100644
index 90a9be12..00000000
--- a/groups/251.native_packages_lib.group
+++ /dev/null
@@ -1,448 +0,0 @@
-#
-# Build group native_packages (libs)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-aspell bearssl enchant fribidi glib hunspell ivykis jansson kvazaar lame libao libarchive libass libassuan libatomic_ops libdmtx libedit libeditline libelf libestr
-libevent libexif libfastjson libfetch libffi libfirm libflac libglob libgcrypt libgpg_error libiconv libidn2 libite
-libjpeg_turbo libksba libmad libmspack libmp3splt libogg libpcap libpipeline libpng libpsl
-readline libredwg libressl libsasl2 libshine libsndfile libsolv libssh
-libstrophe libtasn1 libtelnet libtheora libtirpc libudns libunistring
-libuv libvorbis libxml2 libxslt libz libzip lzo nettle onig sdl1 sdl1_net sdl1_mixer
-sdl1_image sdl1_ttf sdl2 sdl2_image sdl2_ttf sdl2_net wolfssl")";
-: ${PKG_ASPELL_SHA256SUM:=f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2};
-: ${PKG_ASPELL_VERSION:=0.60.8};
-: ${PKG_ASPELL_URL:=https://ftp.gnu.org/gnu/aspell/aspell-${PKG_ASPELL_VERSION}.tar.gz};
-: ${PKG_ASPELL_LDFLAGS_CONFIGURE_EXTRA:="-ltinfow"};
-: ${PKG_BEARSSL_SHA256SUM:=6705bba1714961b41a728dfc5debbe348d2966c117649392f8c8139efc83ff14};
-: ${PKG_BEARSSL_VERSION:=0.6};
-: ${PKG_BEARSSL_URL:=https://bearssl.org/bearssl-${PKG_BEARSSL_VERSION}.tar.gz};
-: ${PKG_BEARSSL_IN_TREE:=1};
-: ${PKG_BEARSSL_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"};
-: ${PKG_ENCHANT_DEPENDS:="glib hunspell aspell"};
-: ${PKG_ENCHANT_SHA256SUM:=3da12103f11cf49c3cf2fd2ce3017575c5321a489e5b9bfa81dd91ec413f3891};
-: ${PKG_ENCHANT_VERSION:=2.3.3};
-: ${PKG_ENCHANT_URL:=https://github.com/AbiWord/enchant/releases/download/v${PKG_ENCHANT_VERSION}/enchant-${PKG_ENCHANT_VERSION}.tar.gz};
-: ${PKG_ENCHANT_CXXFLAGS_CONFIGURE_EXTRA:="-std=c++0x"};
-: ${PKG_FRIBIDI_SHA256SUM:=0cd233f97fc8c67bb3ac27ce8440def5d3ffacf516765b91c2cc654498293495};
-: ${PKG_FRIBIDI_VERSION:=1.0.12};
-: ${PKG_FRIBIDI_URL:=https://github.com/fribidi/fribidi/releases/download/v${PKG_FRIBIDI_VERSION}/fribidi-${PKG_FRIBIDI_VERSION}.tar.xz};
-: ${PKG_GLIB_DEPENDS:="libffi libz pcre libiconv"};
-: ${PKG_GLIB_SHA256SUM:=d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789};
-: ${PKG_GLIB_VERSION:=2.56.2};
-: ${PKG_GLIB_URL:="https://download.gnome.org/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz https://ftp.pieskovisko.sk/slackware/slackware-current/source/l/glib2/glib-${PKG_GLIB_VERSION}.tar.xz"};
-: ${PKG_GLIB_CONFIGURE_ARGS_EXTRA:="--disable-dtrace --disable-libelf --disable-libmount --with-python=${PREFIX}/bin/python3 --with-libiconv=gnu"};
-: ${PKG_HUNSPELL_DEPENDS:="readline"};
-: ${PKG_HUNSPELL_SHA256SUM:=b2d9c5369c2cc7f321cb5983fda2dbf007dce3d9e17519746840a6f0c4bf7444};
-: ${PKG_HUNSPELL_VERSION:=1.7.1};
-: ${PKG_HUNSPELL_URL:=https://github.com/hunspell/hunspell/releases/download/v${PKG_HUNSPELL_VERSION}/hunspell-${PKG_HUNSPELL_VERSION}.tar.gz};
-: ${PKG_HUNSPELL_CONFIGURE_ARGS_EXTRA:="--with-ui --with-readline"};
-: ${PKG_IVYKIS_SHA256SUM:=6ef8ed255814e5068473356877da55d67493eeafd978884cdecc5a3e58067129};
-: ${PKG_IVYKIS_VERSION:=0.42.4};
-: ${PKG_IVYKIS_URL:=https://mirrors.dotsrc.org/debian/pool/main/i/ivykis/ivykis_${PKG_IVYKIS_VERSION}.orig.tar.gz};
-: ${PKG_IVYKIS_SUBDIR=ivykis-${PKG_IVYKIS_VERSION}};
-: ${PKG_JANSSON_SHA256SUM:=f4f377da17b10201a60c1108613e78ee15df6b12016b116b6de42209f47a474f};
-: ${PKG_JANSSON_VERSION:=2.13.1};
-: ${PKG_JANSSON_URL:=https://digip.org/jansson/releases/jansson-${PKG_JANSSON_VERSION}.tar.gz};
-: ${PKG_KVAZAAR_SHA256SUM:=a76998462924ab8409cf8de4947ba5a5023daa33207676e9c4eefc2bbd46c834};
-: ${PKG_KVAZAAR_VERSION:=2.1.0};
-: ${PKG_KVAZAAR_URL:=https://github.com/ultravideo/kvazaar/releases/download/v${PKG_KVAZAAR_VERSION}/kvazaar-${PKG_KVAZAAR_VERSION}.tar.xz};
-: ${PKG_KVAZAAR_CONFIGURE_ARGS_EXTRA:="--disable-asm"};
-: ${PKG_LAME_SHA256SUM:=ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e};
-: ${PKG_LAME_VERSION:=3.100};
-: ${PKG_LAME_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/lame/lame-${PKG_LAME_VERSION}.tar.gz};
-: ${PKG_LAME_CONFIGURE_ARGS_EXTRA:="--enable-nasm"};
-: ${PKG_LAME_LDFLAGS_CONFIGURE_EXTRA:="-Wl,--as-needed -ltinfo -Wl,--no-as-needed"};
-: ${PKG_LIBAO_DEPENDS:="w32api w32lib"};
-: ${PKG_LIBAO_SHA256SUM:=03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf};
-: ${PKG_LIBAO_VERSION:=1.2.0};
-: ${PKG_LIBAO_URL:=http://downloads.xiph.org/releases/ao/libao-${PKG_LIBAO_VERSION}.tar.gz};
-: ${PKG_LIBAO_CONFIGURE_ARGS_EXTRA:="--enable-wmm --disable-esd --without-x"};
-: ${PKG_LIBAO_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
-: ${PKG_LIBAO_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lwinmm"}
-: ${PKG_LIBARCHIVE_DEPENDS:="libxml2 xz libiconv bzip2"};
-: ${PKG_LIBARCHIVE_SHA256SUM:=5a411aceb978f43e626f0c2d1812ddd8807b645ed892453acabd532376c148e6};
-: ${PKG_LIBARCHIVE_VERSION:=3.6.1};
-: ${PKG_LIBARCHIVE_URL:=https://www.libarchive.de/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.xz};
-: ${PKG_LIBARCHIVE_CONFIGURE_ARGS_EXTRA:="--without-zstd"};
-: ${PKG_LIBARCHIVE_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib};
-: ${PKG_LIBARCHIVE_LIBTOOL:=rlibtool};
-: ${PKG_LIBASS_DEPENDS:="freetype fontconfig harfbuzz fribidi"};
-: ${PKG_LIBASS_SHA256SUM:=5dbde9e22339119cf8eed59eea6c623a0746ef5a90b689e68a090109078e3c08};
-: ${PKG_LIBASS_VERSION:=0.16.0};
-: ${PKG_LIBASS_URL:=https://github.com/libass/libass/releases/download/${PKG_LIBASS_VERSION}/libass-${PKG_LIBASS_VERSION}.tar.xz};
-: ${PKG_LIBASS_CONFIGURE_ARGS_EXTRA:="--disable-asm"};
-: ${PKG_LIBASSUAN_DEPENDS:="libgpg_error"};
-: ${PKG_LIBASSUAN_SHA256SUM:=8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4};
-: ${PKG_LIBASSUAN_VERSION:=2.5.5};
-: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2};
-: ${PKG_LIBASSUAN_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
-: ${PKG_LIBATOMIC_OPS_SHA256SUM:=587edf60817f56daf1e1ab38a4b3c729b8e846ff67b4f62a6157183708f099af};
-: ${PKG_LIBATOMIC_OPS_VERSION:=7.6.10};
-: ${PKG_LIBATOMIC_OPS_URL:=https://github.com/ivmai/libatomic_ops/releases/download/v${PKG_LIBATOMIC_OPS_VERSION}/libatomic_ops-${PKG_LIBATOMIC_OPS_VERSION}.tar.gz};
-: ${PKG_LIBDMTX_SHA256SUM:=686bcfb44e50b96345aa53f41e285f2118a2cf87a333b69b74165a2e7ddca492};
-: ${PKG_LIBDMTX_VERSION:=0.7.4};
-: ${PKG_LIBDMTX_URL:=https://midipix.org/mirror/libdmtx/libdmtx-${PKG_LIBDMTX_VERSION}.tar.gz};
-: ${PKG_LIBEDIT_DEPENDS:="ncurses"};
-: ${PKG_LIBEDIT_SHA256SUM:=6792a6a992050762edcca28ff3318cdb7de37dccf7bc30db59fcd7017eed13c5};
-: ${PKG_LIBEDIT_VERSION:=20210910-3.1};
-: ${PKG_LIBEDIT_URL:=https://www.thrysoee.dk/editline/libedit-${PKG_LIBEDIT_VERSION}.tar.gz};
-: ${PKG_LIBEDIT_CFLAGS_BUILD_EXTRA:="--include=stdc-predef.h"};
-: ${PKG_LIBEDIT_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/ncurses"};
-: ${PKG_LIBEDITLINE_SHA256SUM:=df223b3333a545fddbc67b49ded3d242c66fadf7a04beb3ada20957fcd1ffc0e};
-: ${PKG_LIBEDITLINE_VERSION:=1.17.1};
-: ${PKG_LIBEDITLINE_URL:=https://github.com/troglobit/editline/releases/download/${PKG_LIBEDITLINE_VERSION}/editline-${PKG_LIBEDITLINE_VERSION}.tar.xz};
-: ${PKG_LIBELF_SHA256SUM:=591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d};
-: ${PKG_LIBELF_VERSION:=0.8.13};
-: ${PKG_LIBELF_URL:=https://fossies.org/linux/misc/old/libelf-${PKG_LIBELF_VERSION}.tar.gz};
-: ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}"};
-: ${PKG_LIBELF_MAKE_INSTALL_VNAME:=prefix};
-: ${PKG_LIBELF_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libelf/libelf-${PKG_LIBELF_VERSION}.midipix.patch"};
-: ${PKG_LIBESTR_SHA256SUM:=46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024};
-: ${PKG_LIBESTR_VERSION:=0.1.11};
-: ${PKG_LIBESTR_URL:=http://libestr.adiscon.com/files/download/libestr-${PKG_LIBESTR_VERSION}.tar.gz};
-: ${PKG_LIBEVENT_DEPENDS:="libressl"};
-: ${PKG_LIBEVENT_SHA256SUM:=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb};
-: ${PKG_LIBEVENT_VERSION:=2.1.12-stable};
-: ${PKG_LIBEVENT_URL:=https://github.com/libevent/libevent/releases/download/release-${PKG_LIBEVENT_VERSION}/libevent-${PKG_LIBEVENT_VERSION}.tar.gz};
-: ${PKG_LIBEVENT_CONFIG_CACHE_EXTRA:="ac_pe_target=true"};
-: ${PKG_LIBEXIF_SHA256SUM:=d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae};
-: ${PKG_LIBEXIF_VERSION:=0.6.24};
-: ${PKG_LIBEXIF_URL:=https://github.com/libexif/libexif/releases/download/v${PKG_LIBEXIF_VERSION}/libexif-${PKG_LIBEXIF_VERSION}.tar.bz2};
-: ${PKG_LIBFASTJSON_SHA256SUM:=3544c757668b4a257825b3cbc26f800f59ef3c1ff2a260f40f96b48ab1d59e07};
-: ${PKG_LIBFASTJSON_VERSION:=0.99.8};
-: ${PKG_LIBFASTJSON_URL:=http://download.rsyslog.com/libfastjson/libfastjson-${PKG_LIBFASTJSON_VERSION}.tar.gz};
-: ${PKG_LIBFETCH_DEPENDS:="libressl"};
-: ${PKG_LIBFETCH_SHA256SUM:=3226f53d5ad29cc27510db968ef0d37bf4554b8aaaeadcd56e23067213b08943};
-: ${PKG_LIBFETCH_VERSION:=2.33};
-: ${PKG_LIBFETCH_URL:=https://sources.archlinux.org/other/libfetch/libfetch-${PKG_LIBFETCH_VERSION}.tar.gz};
-: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}};
-: ${PKG_LIBFETCH_IN_TREE:=1};
-: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA:="E=echo Q= AR=${DEFAULT_TARGET}-ar CC=${DEFAULT_TARGET}-gcc LD=${DEFAULT_TARGET}-gcc"};
-: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:="E=echo Q="};
-: ${PKG_LIBFFI_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37};
-: ${PKG_LIBFFI_VERSION:=3.2.1};
-: ${PKG_LIBFFI_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_VERSION}.tar.gz};
-: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64};
-: ${PKG_LIBFFI_ENV_VARS_EXTRA:="MAKE=make LIBTOOL=slibtool"};
-: ${PKG_LIBFFI_INSTALL_FILES_V2:="
- +lib/libffi-${PKG_LIBFFI_VERSION}/include/ffi.h=include/%[FNAME]
- +lib/libffi-${PKG_LIBFFI_VERSION}/include/ffitarget.h=include/%[FNAME]"};
-: ${PKG_LIBFFI_PATCHES_EXTRA:="${BUILD_WORKDIR}/chainport/patches/libffi/libffi-${PKG_LIBFFI_VERSION}.midipix.patch"};
-: ${PKG_LIBFIRM_URLS_GIT:="libfirm=http://pp.info.uni-karlsruhe.de/git/libfirm.git@master bfirm=${DEFAULT_GITROOT}/compilers/bfirm@main"};
-: ${PKG_LIBFIRM_BASE_DIR:=${BUILD_WORKDIR}/cparser+libfirm-native-${DEFAULT_TARGET}};
-: ${PKG_LIBFIRM_BUILD_DIR:=build/libfirm};
-: ${PKG_LIBFIRM_CONFIGURE:=bfirm/configure};
-: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../libfirm --prefix="};
-: ${PKG_LIBFLAC_DEPENDS:="libogg libiconv"};
-: ${PKG_LIBFLAC_SHA256SUM:=8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737};
-: ${PKG_LIBFLAC_VERSION:=1.3.4};
-: ${PKG_LIBFLAC_URL:=https://ftp.osuosl.org/pub/xiph/releases/flac/flac-${PKG_LIBFLAC_VERSION}.tar.xz};
-: ${PKG_LIBFLAC_CONFIGURE_ARGS_EXTRA:="--with-ogg=yes --disable-xmms-plugin --disable-stack-smash-protection"};
-: ${PKG_LIBGLOB_URLS_GIT:=libglob=https://github.com/void-linux/libglob.git@master};
-: ${PKG_LIBGLOB_BUILD_DIR:=libglob};
-: ${PKG_LIBGCRYPT_DEPENDS:="libgpg_error"};
-: ${PKG_LIBGCRYPT_SHA256SUM:=ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de};
-: ${PKG_LIBGCRYPT_VERSION:=1.10.1};
-: ${PKG_LIBGCRYPT_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${PKG_LIBGCRYPT_VERSION}.tar.bz2};
-: ${PKG_LIBGCRYPT_CONFIG_CACHE_EXTRA:="
-gcry_cv_broken_visibility_attribute=no
-gcry_cv_visibility_attribute=yes"};
-: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE} --disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support --disable-amd64-as-feature-detection};
-: ${PKG_LIBGPG_ERROR_SHA256SUM:=64b078b45ac3c3003d7e352a5e05318880a5778c42331ce1ef33d1a0d9922742};
-: ${PKG_LIBGPG_ERROR_VERSION:=1.41};
-: ${PKG_LIBGPG_ERROR_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${PKG_LIBGPG_ERROR_VERSION}.tar.bz2};
-: ${PKG_LIBGPG_ERROR_FORCE_AUTORECONF:=1};
-: ${PKG_LIBGPG_ERROR_IN_TREE:=1};
-: ${PKG_LIBICONV_SHA256SUM:=8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313};
-: ${PKG_LIBICONV_VERSION:=1.17};
-: ${PKG_LIBICONV_URL:=https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${PKG_LIBICONV_VERSION}.tar.gz};
-: ${PKG_LIBICONV_CONFIGURE_ARGS_EXTRA:="--enable-extra-encodings"};
-: ${PKG_LIBICONV_INSTALL_FILES_V2:="@../../native/include/iconv.h=%[_prefix]/../x86_64-nt64-midipix/include/iconv.h"};
-: ${PKG_LIBIDN2_DEPENDS:="libunistring"};
-: ${PKG_LIBIDN2_SHA256SUM:=f3ac987522c00d33d44b323cae424e2cffcb4c63c6aa6cd1376edacbf1c36eb0};
-: ${PKG_LIBIDN2_VERSION:=2.3.3};
-: ${PKG_LIBIDN2_URL:=https://ftp.gnu.org/gnu/libidn/libidn2-${PKG_LIBIDN2_VERSION}.tar.gz};
-: ${PKG_LIBITE_URLS_GIT:=libite=https://github.com/troglobit/libite.git@master};
-: ${PKG_LIBITE_SUBDIR:=libite};
-: ${PKG_LIBJPEG_TURBO_SHA256SUM:=d3ed26a1131a13686dfca4935e520eb7c90ae76fbc45d98bb50a8dc86230342b};
-: ${PKG_LIBJPEG_TURBO_VERSION:=2.1.4};
-: ${PKG_LIBJPEG_TURBO_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libjpeg-turbo/libjpeg-turbo-${PKG_LIBJPEG_TURBO_VERSION}.tar.gz};
-: ${PKG_LIBJPEG_TURBO_CMAKE_ARGS_EXTRA:="
- -DCMAKE_ASM_NASM_COMPILER=${PREFIX}/bin/${DEFAULT_TARGET}-nasm
- -DCMAKE_ASM_NASM_OBJECT_FORMAT=win64
- -DWITH_SIMD=OFF
- -DWITH_JPEG8=ON"};
-: ${PKG_LIBKSBA_DEPENDS:="libgpg_error"};
-: ${PKG_LIBKSBA_SHA256SUM:=dad683e6f2d915d880aa4bed5cea9a115690b8935b78a1bbe01669189307a48b};
-: ${PKG_LIBKSBA_VERSION:=1.6.0};
-: ${PKG_LIBKSBA_URL:=https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${PKG_LIBKSBA_VERSION}.tar.bz2};
-: ${PKG_LIBKSBA_CONFIG_CACHE_EXTRA:="
-ksba_cv_broken_visibility_attribute=no
-ksba_cv_visibility_attribute=yes"};
-: ${PKG_LIBKSBA_CONFIGURE_ARGS_EXTRA:=--with-libgpg-error-prefix=${PREFIX_NATIVE}};
-: ${PKG_LIBMAD_SHA256SUM:=bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690};
-: ${PKG_LIBMAD_VERSION:=0.15.1b};
-: ${PKG_LIBMAD_URL:=ftp://ftp.mars.org/pub/mpeg/libmad-${PKG_LIBMAD_VERSION}.tar.gz};
-: ${PKG_LIBMAD_CONFIGURE_ARGS_EXTRA:="--enable-fpm=64bit --enable-accuracy"};
-: ${PKG_LIBMSPACK_SHA256SUM:=bac862dee6e0fc10d92c70212441d9f8ad9b0222edc9a708c3ead4adb1b24a8e};
-: ${PKG_LIBMSPACK_VERSION:=0.10.1alpha};
-: ${PKG_LIBMSPACK_URL:=https://www.cabextract.org.uk/libmspack/libmspack-${PKG_LIBMSPACK_VERSION}.tar.gz};
-: ${PKG_LIBMP3SPLT_SHA256SUM:=30eed64fce58cb379b7cc6a0d8e545579cb99d0f0f31eb00b9acc8aaa1b035dc};
-: ${PKG_LIBMP3SPLT_DEPENDS:="pcre libflac libogg libvorbis libmad"};
-: ${PKG_LIBMP3SPLT_VERSION:=0.9.2};
-: ${PKG_LIBMP3SPLT_URL:=https://ftp.fau.de/macports/distfiles/libmp3splt/libmp3splt-${PKG_LIBMP3SPLT_VERSION}.tar.gz};
-: ${PKG_LIBMP3SPLT_CONFIGURE_ARGS_EXTRA:="--disable-cutter --disable-id3tag --disable-optimise --with-ogg=${PREFIX_NATIVE} --with-vorbis=${PREFIX_NATIVE} --with-mad=${PREFIX_NATIVE}"};
-: ${PKG_LIBMP3SPLT_FORCE_AUTORECONF:=1};
-: ${PKG_LIBOGG_SHA256SUM:=c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705};
-: ${PKG_LIBOGG_VERSION:=1.3.5};
-: ${PKG_LIBOGG_URL:=https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-${PKG_LIBOGG_VERSION}.tar.xz};
-: ${PKG_LIBPCAP_SHA256SUM:=8ac670de8dd6eff39441580c67f0520f326773422bbf89fdffcd269bd0cfddde};
-: ${PKG_LIBPCAP_VERSION:=1.9.1};
-: ${PKG_LIBPCAP_URL:=https://github.com/the-tcpdump-group/libpcap/archive/libpcap-${PKG_LIBPCAP_VERSION}.tar.gz};
-: ${PKG_LIBPCAP_CONFIG_CACHE_EXTRA:="ac_cv_lbl_unaligned_fail=no"};
-: ${PKG_LIBPCAP_SUBDIR:="libpcap-libpcap-${PKG_LIBPCAP_VERSION}"};
-: ${PKG_LIBPIPELINE_SHA256SUM:=5dbf08faf50fad853754293e57fd4e6c69bb8e486f176596d682c67e02a0adb0};
-: ${PKG_LIBPIPELINE_VERSION:=1.5.3};
-: ${PKG_LIBPIPELINE_URL:=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-${PKG_LIBPIPELINE_VERSION}.tar.gz};
-: ${PKG_LIBPNG_DEPENDS:="libz"};
-: ${PKG_LIBPNG_SHA256SUM:=505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca};
-: ${PKG_LIBPNG_VERSION:=1.6.37};
-: ${PKG_LIBPNG_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libpng/libpng-${PKG_LIBPNG_VERSION}.tar.xz};
-: ${PKG_LIBPSL_DEPENDS:="libidn2 libunistring"}
-: ${PKG_LIBPSL_SHA256SUM:=ac6ce1e1fbd4d0254c4ddb9d37f1fa99dec83619c1253328155206b896210d4c};
-: ${PKG_LIBPSL_VERSION:=0.21.1};
-: ${PKG_LIBPSL_URL:=https://github.com/rockdaboot/libpsl/releases/download/${PKG_LIBPSL_VERSION}/libpsl-${PKG_LIBPSL_VERSION}.tar.gz};
-: ${PKG_LIBREDWG_SHA256SUM:=d3de19cde6adc27cb65cc353ae01a1e8aa15d1ab6ca4ce2563b76e73e8b2f1bd};
-: ${PKG_LIBREDWG_VERSION:=0.12.5};
-: ${PKG_LIBREDWG_URL:=https://ftp.gnu.org/gnu/libredwg/libredwg-${PKG_LIBREDWG_VERSION}.tar.xz};
-: ${PKG_LIBREDWG_CONFIGURE_ARGS_EXTRA:="--disable-python"};
-: ${PKG_LIBRESSL_SHA256SUM:=3ab5e5eaef69ce20c6b170ee64d785b42235f48f2e62b095fca5d7b6672b8b28};
-: ${PKG_LIBRESSL_VERSION:=3.5.3};
-: ${PKG_LIBRESSL_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_VERSION}.tar.gz};
-: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm --enable-nc};
-: ${PKG_LIBSASL2_DEPENDS:="libressl"};
-: ${PKG_LIBSASL2_SHA256SUM:=7ccfc6abd01ed67c1a0924b353e526f1b766b21f42d4562ee635a8ebfc5bb38c};
-: ${PKG_LIBSASL2_VERSION:=2.1.28};
-: ${PKG_LIBSASL2_URL:="https://ftp.osuosl.org/pub/blfs/conglomeration/cyrus-sasl/cyrus-sasl-${PKG_LIBSASL2_VERSION}.tar.gz"};
-: ${PKG_LIBSASL2_CONFIGURE_ARGS_EXTRA:="--cache-file=../obj/config.cache"};
-: ${PKG_LIBSASL2_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_LIBSHINE_SHA256SUM:=58e61e70128cf73f88635db495bfc17f0dde3ce9c9ac070d505a0cd75b93d384};
-: ${PKG_LIBSHINE_VERSION:=3.1.1};
-: ${PKG_LIBSHINE_URL:=https://github.com/toots/shine/releases/download/${PKG_LIBSHINE_VERSION}/shine-${PKG_LIBSHINE_VERSION}.tar.gz};
-: ${PKG_LIBSHINE_IN_TREE:=1};
-: ${PKG_LIBSNDFILE_DEPENDS:="libzip"};
-: ${PKG_LIBSNDFILE_SHA256SUM:=1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9};
-: ${PKG_LIBSNDFILE_VERSION:=1.0.28};
-: ${PKG_LIBSNDFILE_URL:=http://www.mega-nerd.com/libsndfile/files/libsndfile-${PKG_LIBSNDFILE_VERSION}.tar.gz};
-: ${PKG_LIBSNDFILE_CONFIGURE_ARGS_EXTRA:="--disable-alsa"};
-: ${PKG_LIBSNDFILE_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
-: ${PKG_LIBSNDFILE_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32 -lwinmm"};
-: ${PKG_LIBSOLV_DEPENDS:="bzip2 libxml2 libz musl_compat rpm"};
-: ${PKG_LIBSOLV_SHA256SUM:=153eb48814ffdbac396c98126037cf45c07e2b7087a61f86eb18a75ea1ab134b};
-: ${PKG_LIBSOLV_VERSION:=0.6.34};
-: ${PKG_LIBSOLV_URL:=https://github.com/openSUSE/libsolv/archive/${PKG_LIBSOLV_VERSION}.tar.gz};
-: ${PKG_LIBSOLV_SUBDIR:=libsolv-${PKG_LIBSOLV_VERSION}};
-: ${PKG_LIBSOLV_CMAKE_ARGS_EXTRA:="
- -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
- -DENABLE_APPDATA:BOOL=ON
- -DENABLE_BZIP2_COMPRESSION:BOOL=ON
- -DENABLE_COMPLEX_DEPS:BOOL=ON
- -DENABLE_COMPS:BOOL=ON
- -DENABLE_LZMA_COMPRESSION:BOOL=ON
- -DENABLE_RPMDB:BOOL=ON
- -DENABLE_RPMDB_BYRPMHEADER:BOOL=ON
- -DENABLE_RPMDB_LIBRPM:BOOL=ON
- -DENABLE_RPMMD:BOOL=ON
- -DENABLE_RPMPKG_LIBRPM:BOOL=ON
- -DFEDORA=1
- -DLIBXML2_LIBRARIES=${PREFIX_NATIVE}/lib/libxml2.lib.a
- -DLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
- -DRPMIO_LIBRARY=${PREFIX_NATIVE}/lib/librpmio.so
- -DWITH_LIBXML2:BOOL=ON
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
-: ${PKG_LIBSSH_DEPENDS:="libz"};
-: ${PKG_LIBSSH_SHA256SUM:=86bcf885bd9b80466fe0e05453c58b877df61afa8ba947a58c356d7f0fab829b};
-: ${PKG_LIBSSH_VERSION:=0.9.6};
-: ${PKG_LIBSSH_URL:=https://www.libssh.org/files/${PKG_LIBSSH_VERSION%.*}/libssh-${PKG_LIBSSH_VERSION}.tar.xz};
-: ${PKG_LIBSSH_SUBDIR:=libssh-${PKG_LIBSSH_VERSION}};
-: ${PKG_LIBSSH_CMAKE_ARGS_EXTRA:="
- -DWITH_EXAMPLES=OFF
- -DWITH_GCRYPT=ON
- -DWITH_SYMBOL_VERSIONING=OFF
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.lib.a"};
-: ${PKG_LIBSTROPHE_DEPENDS:="libressl expat"};
-: ${PKG_LIBSTROPHE_SHA256SUM:=cf1a363ae6df88ccd97292d4e859b7680d8bac79347b53a9dc8f095456b7a02d};
-: ${PKG_LIBSTROPHE_VERSION=0.10.1};
-: ${PKG_LIBSTROPHE_URL:=https://github.com/strophe/libstrophe/releases/download/${PKG_LIBSTROPHE_VERSION}/libstrophe-${PKG_LIBSTROPHE_VERSION}.tar.xz};
-: ${PKG_LIBTASN1_SHA256SUM:=1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a};
-: ${PKG_LIBTASN1_VERSION:=4.19.0};
-: ${PKG_LIBTASN1_URL:=https://ftp.gnu.org/gnu/libtasn1/libtasn1-${PKG_LIBTASN1_VERSION}.tar.gz};
-: ${PKG_LIBTASN1_CONFIGURE_ARGS_EXTRA:="--disable-static"};
-: ${PKG_LIBTASN1_CFLAGS_CONFIGURE_EXTRA:=-std=c99};
-: ${PKG_LIBTASN1_LIBTOOL=rdlibtool};
-: ${PKG_LIBTASN1_CONFIG_CACHE_EXTRA:="
-gl_cv_ld_output_def=no"};
-: ${PKG_LIBTELNET_DEPENDS:="libz"};
-: ${PKG_LIBTELNET_SHA256SUM:=d2f01a9dc0cc01777844b6d27f0f836dad9a4b9a32a31c7bbde0762480262f25};
-: ${PKG_LIBTELNET_VERSION:=0.23};
-: ${PKG_LIBTELNET_URL:=https://github.com/seanmiddleditch/libtelnet/releases/download/${PKG_LIBTELNET_VERSION}/libtelnet-${PKG_LIBTELNET_VERSION}.tar.gz};
-: ${PKG_LIBTHEORA_DEPENDS:="libvorbis"};
-: ${PKG_LIBTHEORA_SHA256SUM:=b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc};
-: ${PKG_LIBTHEORA_VERSION:=1.1.1};
-: ${PKG_LIBTHEORA_URL:=http://downloads.xiph.org/releases/theora/libtheora-${PKG_LIBTHEORA_VERSION}.tar.bz2};
-: ${PKG_LIBTHEORA_IN_TREE:=1};
-: ${PKG_LIBTHEORA_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_LIBTIRPC_DEPENDS:="musl_compat"};
-: ${PKG_LIBTIRPC_SHA256SUM:=245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17};
-: ${PKG_LIBTIRPC_VERSION:=1.3.1};
-: ${PKG_LIBTIRPC_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libtirpc/libtirpc-${PKG_LIBTIRPC_VERSION}.tar.bz2};
-: ${PKG_LIBTIRPC_CONFIGURE_ARGS_EXTRA:="--disable-gssapi"};
-: ${PKG_LIBUDNS_URLS_GIT:=libudns=https://github.com/shadowsocks/libudns.git@master};
-: ${PKG_LIBUNISTRING_SHA256SUM:=5bab55b49f75d77ed26b257997e919b693f29fd4a1bc22e0e6e024c246c72741};
-: ${PKG_LIBUNISTRING_VERSION:=1.0};
-: ${PKG_LIBUNISTRING_URL:=https://ftp.gnu.org/gnu/libunistring/libunistring-${PKG_LIBUNISTRING_VERSION}.tar.xz};
-: ${PKG_LIBUV_SHA256SUM:=7cbcf2017e7116cf9da8ec1c6a146d578536b1e479458438873c991f984a53d7};
-: ${PKG_LIBUV_VERSION:=1.19.2};
-: ${PKG_LIBUV_URL:=https://dist.libuv.org/dist/v${PKG_LIBUV_VERSION}/libuv-v${PKG_LIBUV_VERSION}.tar.gz};
-: ${PKG_LIBVORBIS_DEPENDS:="libogg"};
-: ${PKG_LIBVORBIS_SHA256SUM:=b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b};
-: ${PKG_LIBVORBIS_VERSION:=1.3.7};
-: ${PKG_LIBVORBIS_URL:=https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-${PKG_LIBVORBIS_VERSION}.tar.xz};
-: ${PKG_LIBXML2_DEPENDS:="libz xz"};
-: ${PKG_LIBXML2_SHA256SUM:=0d676b10cfd13ab966907a3917bd86b17a1c22befdf42144cdc1ad5bb9e65c45};
-: ${PKG_LIBXML2_VERSION:=2.9.13};
-: ${PKG_LIBXML2_URL:=https://gitlab.gnome.org/GNOME/libxml2/-/archive/v${PKG_LIBXML2_VERSION}/libxml2-v${PKG_LIBXML2_VERSION}.tar.gz};
-: ${PKG_LIBXML2_CONFIGURE_ARGS_EXTRA:="--with-python=no"};
-: ${PKG_LIBXML2_INSTALL_FILES_V2:="
- +%[_files]/bin/\%[_target]-xml2-config=bin/%[_target]-xml2-config
- m0755=bin/%[_target]-xml2-config"};
-: ${PKG_LIBXML2_IN_TREE:=1};
-: ${PKG_LIBXSLT_DEPENDS:="libxml2 libgcrypt"};
-: ${PKG_LIBXSLT_SHA256SUM:=8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79};
-: ${PKG_LIBXSLT_VERSION:=1.1.35};
-: ${PKG_LIBXSLT_URL:=https://sources.voidlinux.org/libxslt-${PKG_LIBXSLT_VERSION}/libxslt-${PKG_LIBXSLT_VERSION}.tar.xz};
-: ${PKG_LIBXSLT_FORCE_AUTORECONF:=1};
-: ${PKG_LIBZ_SHA256SUM:=abcc2831b7a0e891d0875fa852e9b9510b420d843d3d20aad010f65493fe4f7b};
-: ${PKG_LIBZ_VERSION:=1.2.8.2015.12.26};
-: ${PKG_LIBZ_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_VERSION}.tar.gz};
-: ${PKG_LIBZ_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
-: ${PKG_LIBZ_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET} --enable-shared"};
-: ${PKG_LIBZ_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_LIBZIP_DEPENDS:="bzip2 gnutls libz musl_fts nettle"};
-: ${PKG_LIBZIP_SHA256SUM:=a020dc1b17a79faa748e43a05f8605d65e403813e8e97ad3a300a90ddba097ac};
-: ${PKG_LIBZIP_VERSION:=1.7.1};
-: ${PKG_LIBZIP_URL:=https://libzip.org/download/libzip-${PKG_LIBZIP_VERSION}.tar.xz};
-: ${PKG_LIBZIP_CMAKE_ARGS_EXTRA:="
- -DBZIP2_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DBZIP2_LIBRARIES=${PREFIX_NATIVE}/lib/libbz2.lib.a
- -DENABLE_GNUTLS=:BOOL=ON
- -DENABLE_MBEDTLS=:BOOL=OFF
- -DGNUTLS_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DGNUTLS_LIBRARY=${PREFIX_NATIVE}/lib/libgnutls.lib.a
- -DLIBLZMA_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DLIBLZMA_LIBRARY=${PREFIX_NATIVE}/lib/liblzma.lib.a
- -DNETTLE_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DNETTLE_LIBRARY=${PREFIX_NATIVE}/lib/libnettle.lib.a
- -DOPENSSL_CRYPTO_LIBRARY=${PREFIX_NATIVE}/lib/libcrypto.lib.a
- -DOPENSSL_SSL_LIBRARY=${PREFIX_NATIVE}/lib/libssl.lib.a
- -DZLIB_INCLUDE_DIR=${PREFIX_NATIVE}/include
- -DZLIB_LIBRARY=${PREFIX_NATIVE}/lib/libz.a"};
-: ${PKG_ONIG_SHA256SUM:=28cd62c1464623c7910565fb1ccaaa0104b2fe8b12bcd646e81f73b47535213e};
-: ${PKG_ONIG_VERSION:=6.9.8};
-: ${PKG_ONIG_URL:=https://github.com/kkos/oniguruma/releases/download/v${PKG_ONIG_VERSION}/onig-${PKG_ONIG_VERSION}.tar.gz};
-: ${PKG_LZO_SHA256SUM:=c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072};
-: ${PKG_LZO_VERSION:=2.10};
-: ${PKG_LZO_URL:=https://www.oberhumer.com/opensource/lzo/download/lzo-${PKG_LZO_VERSION}.tar.gz};
-: ${PKG_NETTLE_SHA256SUM:=661f5eb03f048a3b924c3a8ad2515d4068e40f67e774e8a26827658007e3bcf0};
-: ${PKG_NETTLE_VERSION:=3.7.3};
-: ${PKG_NETTLE_URL:=https://ftp.gnu.org/gnu/nettle/nettle-${PKG_NETTLE_VERSION}.tar.gz};
-: ${PKG_NETTLE_CONFIGURE_ARGS_EXTRA:=--disable-fat};
-: ${PKG_NETTLE_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
-: ${PKG_NETTLE_CONFIG_CACHE_EXTRA:="nettle_cv_asm_underscore=no"};
-: ${PKG_NETTLE_INSTALL_FILES_V2:="m0755=lib/%<lib*.so>"};
-: ${PKG_NETTLE_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_READLINE_DEPENDS:="ncurses ncursestw ncursesw"};
-: ${PKG_READLINE_SHA256SUM:=7589a2381a8419e68654a47623ce7dfcb756815c8fee726b98f90bf668af7bc6};
-: ${PKG_READLINE_VERSION:=8.1.2};
-: ${PKG_READLINE_URL:=https://ftp.gnu.org/gnu/readline/readline-${PKG_READLINE_VERSION}.tar.gz};
-: ${PKG_READLINE_CFLAGS_CONFIGURE:="${DEFAULT_CFLAGS:+${DEFAULT_CFLAGS} }-I${PREFIX_NATIVE}/include"};
-: ${PKG_READLINE_CONFIG_CACHE_LOCAL:="${CONFIG_CACHE_GNULIB}"};
-: ${PKG_READLINE_CONFIGURE_ARGS:="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET} --with-curses"};
-: ${PKG_READLINE_LDFLAGS_CONFIGURE:="${DEFAULT_LDFLAGS:+${DEFAULT_LDFLAGS} }-L${PREFIX_NATIVE}/lib"};
-: ${PKG_READLINE_MAKEFLAGS_INSTALL:="PREFIX= prefix="};
-: ${PKG_READLINE_CONFIG_CACHE_EXTRA:="
-bash_cv_func_strcoll_broken=yes
-bash_cv_func_ctype_nonascii=no
-bash_cv_must_reinstall_sighandlers=no
-bash_cv_func_sigsetjmp=yes"};
-: ${PKG_SDL1_DEPENDS:="w32api w32lib"};
-: ${PKG_SDL1_SHA256SUM:=d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00};
-: ${PKG_SDL1_VERSION:=1.2.15};
-: ${PKG_SDL1_URL:=https://www.libsdl.org/release/SDL-${PKG_SDL1_VERSION}.tar.gz};
-: ${PKG_SDL1_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports"};
-: ${PKG_SDL1_IN_TREE:=1};
-: ${PKG_SDL1_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib"};
-: ${PKG_SDL1_NET_DEPENDS:="sdl1"};
-: ${PKG_SDL1_NET_SHA256SUM:=5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4};
-: ${PKG_SDL1_NET_VERSION:=1.2.8};
-: ${PKG_SDL1_NET_URL:=https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PKG_SDL1_NET_VERSION}.tar.gz};
-: ${PKG_SDL1_NET_CONFIGURE_ARGS_EXTRA:="--disable-gui"};
-: ${PKG_SDL1_MIXER_DEPENDS:="sdl1"};
-: ${PKG_SDL1_MIXER_SHA256SUM:=1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a};
-: ${PKG_SDL1_MIXER_VERSION:=1.2.12};
-: ${PKG_SDL1_MIXER_URL:=https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PKG_SDL1_MIXER_VERSION}.tar.gz};
-: ${PKG_SDL1_MIXER_CONFIGURE_ARGS_EXTRA:="--enable-music-mod=no --enable-music-mod-modplug=no --enable-music-midi=no --enable-music-fluidsynth-midi=no --enable-music-mp3=no"};
-: ${PKG_SDL1_MIXER_LDFLAGS_CONFIGURE:=-L${PREFIX_NATIVE}/lib};
-: ${PKG_SDL1_IMAGE_DEPENDS:="libz sdl1 libpng libjpeg_turbo tiff"};
-: ${PKG_SDL1_IMAGE_SHA256SUM:=0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699};
-: ${PKG_SDL1_IMAGE_VERSION:=1.2.12};
-: ${PKG_SDL1_IMAGE_URL:=https://www.libsdl.org/projects/SDL_image/release/SDL_image-${PKG_SDL1_IMAGE_VERSION}.tar.gz};
-: ${PKG_SDL1_IMAGE_CONFIGURE_ARGS_EXTRA:="--enable-jpg-shared --enable-png-shared --enable-tif-shared --disable-webp --disable-webp-shared"};
-: ${PKG_SDL1_TTF_DEPENDS:="sdl1 freetype libiconv"};
-: ${PKG_SDL1_TTF_SHA256SUM:=724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7};
-: ${PKG_SDL1_TTF_VERSION:=2.0.11};
-: ${PKG_SDL1_TTF_URL:=https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PKG_SDL1_TTF_VERSION}.tar.gz};
-: ${PKG_SDL1_TTF_CONFIGURE_ARGS_EXTRA:="--with-freetype-prefix=${PREFIX_NATIVE} --without-x"};
-: ${PKG_SDL1_TTF_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
-: ${PKG_SDL1_TTF_LDFLAGS_CONFIGURE_EXTRA:="-liconv"};
-: ${PKG_SDL1_TTF_IN_TREE:=1};
-: ${PKG_SDL2_DEPENDS:="w32api w32lib"};
-: ${PKG_SDL2_SHA256SUM:=349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863};
-: ${PKG_SDL2_VERSION:=2.0.12};
-: ${PKG_SDL2_URL:=https://www.libsdl.org/release/SDL2-${PKG_SDL2_VERSION}.tar.gz};
-: ${PKG_SDL2_CONFIG_CACHE_EXTRA:="ac_cv_func_strtod=yes"};
-: ${PKG_SDL2_CONFIGURE_ARGS_EXTRA:="--disable-video-vulkan --disable-video-opengles2 --disable-alsa --disable-static --disable-power"};
-: ${PKG_SDL2_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_UTF16_DEFAULT -DUNICODE -DWINVER=0x0601 -I${PREFIX_NATIVE}/include/w32api.ports -DSDL_DISABLE_WINDOWS_IME"};
-: ${PKG_SDL2_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lkernel32 -luser32 -lgdi32 -limm32 -lshell32 -lu16ports"};
-: ${PKG_SDL2_MAKEFLAGS_BUILD:=-j1};
-: ${PKG_SDL2_IN_TREE:=1};
-: ${PKG_SDL2_FORCE_AUTORECONF:=1};
-: ${PKG_SDL2_IMAGE_DEPENDS:="sdl2 libz libpng libjpeg_turbo tiff"};
-: ${PKG_SDL2_IMAGE_SHA256SUM:=bdd5f6e026682f7d7e1be0b6051b209da2f402a2dd8bd1c4bd9c25ad263108d0};
-: ${PKG_SDL2_IMAGE_VERSION:=2.0.5};
-: ${PKG_SDL2_IMAGE_URL:=https://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PKG_SDL2_IMAGE_VERSION}.tar.gz};
-: ${PKG_SDL2_TTF_DEPENDS:="sdl2 freetype"};
-: ${PKG_SDL2_TTF_SHA256SUM:=a9eceb1ad88c1f1545cd7bd28e7cbc0b2c14191d40238f531a15b01b1b22cd33};
-: ${PKG_SDL2_TTF_VERSION:=2.0.15};
-: ${PKG_SDL2_TTF_URL:=https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PKG_SDL2_TTF_VERSION}.tar.gz};
-: ${PKG_SDL2_TTF_CONFIGURE_ARGS_EXTRA:="--without-x"};
-: ${PKG_SDL2_TTF_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2"};
-: ${PKG_SDL2_NET_DEPENDS:="sdl2"};
-: ${PKG_SDL2_NET_SHA256SUM:=15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21};
-: ${PKG_SDL2_NET_VERSION:=2.0.1};
-: ${PKG_SDL2_NET_URL:=https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PKG_SDL2_NET_VERSION}.tar.gz};
-: ${PKG_SDL2_NET_CONFIGURE_ARGS_EXTRA:="--disable-gui"};
-: ${PKG_WOLFSSL_SHA256SUM:=dc36cc19dad197253e5c2ecaa490c7eef579ad448706e55d73d79396e814098b};
-: ${PKG_WOLFSSL_VERSION:=5.4.0};
-: ${PKG_WOLFSSL_URL:=https://github.com/wolfSSL/wolfssl/archive/v${PKG_WOLFSSL_VERSION}-stable.tar.gz};
-: ${PKG_WOLFSSL_CONFIGURE_ARGS_EXTRA:="--enable-distro --with-libz=${PREFIX_NATIVE}"};
-: ${PKG_WOLFSSL_SUBDIR:=wolfssl-${PKG_WOLFSSL_VERSION}-stable};
-: ${PKG_WOLFSSL_INSTALL_FILES_V2:="
- +../obj/cyassl/options.h=include/cyassl/%[FNAME]
- +../obj/wolfssl/options.h=include/wolfssl/%[FNAME]"};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/261.native_packages_x11.group b/groups/261.native_packages_x11.group
deleted file mode 100644
index 90f01772..00000000
--- a/groups/261.native_packages_x11.group
+++ /dev/null
@@ -1,283 +0,0 @@
-#
-# Build group native_packages (x11)
-#
-GROUP_TARGET="native_packages";
-NATIVE_PACKAGES_PACKAGES="$(rtl_lconcat "${NATIVE_PACKAGES_PACKAGES}" "
-atk cairo fontconfig freetype freetype_pre gdk glew gtk2 harfbuzz imlib2
-libcaca libepoxy libfontenc libICE libpthread_stubs libSM libX11 libXau
-libXaw libXdamage libXdmcp libXext libXfixes libXfont2 libXft libXi libxkbfile
-libXmu libXpm libXt libXtst libXcursor mesa pango pixman rdesktop rxvt_unicode
-st util_macros xcb xcb_proto xcb_util xcb_util_image xcb_util_wm xcowsay xcalc
-xeyes xorgproto Xrender xterm xtrans xwd xwin")";
-: ${PKG_ATK_DEPENDS:="glib"};
-: ${PKG_ATK_VERSION:=2.26.0};
-: ${PKG_ATK_SHA256SUM:=eafe49d5c4546cb723ec98053290d7e0b8d85b3fdb123938213acb7bb4178827};
-: ${PKG_ATK_URL:=http://ftp.gnome.org/pub/gnome/sources/atk/${PKG_ATK_VERSION%.*}/atk-${PKG_ATK_VERSION}.tar.xz};
-: ${PKG_CAIRO_DEPENDS:="fontconfig freetype ghostpdl glib libXext libpng pixman"};
-: ${PKG_CAIRO_VERSION:=1.15.6};
-: ${PKG_CAIRO_URL:=http://cairographics.org/snapshots/cairo-${PKG_CAIRO_VERSION}.tar.xz};
-: ${PKG_CAIRO_SHA256SUM:=5228e0a1f8fd14317f30f08f3dd72971bca432f8cdd2281d421fdcc2279de58c};
-: ${PKG_CAIRO_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_FONTCONFIG_DEPENDS:="expat freetype util_linux"};
-: ${PKG_FONTCONFIG_SHA256SUM:=0d297ce6bbad897c91c248aeeeeb401dbc62e0960cfa958e87ec32fd5c2270c1};
-: ${PKG_FONTCONFIG_VERSION:=2.12.93};
-: ${PKG_FONTCONFIG_URL:=https://www.freedesktop.org/software/fontconfig/release/fontconfig-${PKG_FONTCONFIG_VERSION}.tar.bz2};
-: ${PKG_FONTCONFIG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_FONTCONFIG_CONFIGURE_ARGS_EXTRA:=--disable-docs};
-: ${PKG_FREETYPE_DEPENDS:="bzip2 harfbuzz libpng libz"};
-: ${PKG_FREETYPE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
-: ${PKG_FREETYPE_VERSION:=2.11.1};
-: ${PKG_FREETYPE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_VERSION}.tar.xz};
-: ${PKG_FREETYPE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=yes --with-png=yes --with-zlib=yes"};
-: ${PKG_FREETYPE_PRE_DEPENDS:="bzip2 libpng libz"};
-: ${PKG_FREETYPE_PRE_SHA256SUM:=3333ae7cfda88429c97a7ae63b7d01ab398076c3b67182e960e5684050f2c5c8};
-: ${PKG_FREETYPE_PRE_VERSION:=2.11.1};
-: ${PKG_FREETYPE_PRE_URL:=http://download.savannah.gnu.org/releases/freetype/freetype-${PKG_FREETYPE_PRE_VERSION}.tar.xz};
-: ${PKG_FREETYPE_PRE_CONFIGURE_ARGS_EXTRA:="--with-bzip2=yes --with-harfbuzz=no --with-png=yes --with-zlib=yes"};
-: ${PKG_FREETYPE_PRE_RPM_DISABLE:=1};
-: ${PKG_GDK_DEPENDS:="libjpeg_turbo libpng shared_mime_info tiff"};
-: ${PKG_GDK_VERSION:=2.36.10};
-: ${PKG_GDK_SHA256SUM:=f8f6fa896b89475c73b6e9e8d2a2b062fc359c4b4ccb8e96470d6ab5da949ace};
-: ${PKG_GDK_URL:=http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/${PKG_GDK_VERSION%.*}/gdk-pixbuf-${PKG_GDK_VERSION}.tar.xz};
-: ${PKG_GDK_CONFIG_CACHE_EXTRA:="enable_gio_sniffing=yes"};
-: ${PKG_GLEW_DEPENDS:="libX11 mesa"};
-: ${PKG_GLEW_SHA256SUM:=04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95};
-: ${PKG_GLEW_VERSION:=2.1.0};
-: ${PKG_GLEW_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/glew/glew-${PKG_GLEW_VERSION}.tgz};
-: ${PKG_GLEW_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_GLEW_CFLAGS_BUILD_EXTRA:=-Iinclude};
-: ${PKG_GLEW_INSTALL_FILES_V2:="
- +../glew-${PKG_GLEW_VERSION}/bin/glewinfo=bin/%[FNAME]
- +../glew-${PKG_GLEW_VERSION}/bin/visualinfo=bin/%[FNAME]
- +../glew-${PKG_GLEW_VERSION}/lib/libGLEW.%<*>=lib/%[FNAME]
-"};
-: ${PKG_GLEW_IN_TREE:=1};
-: ${PKG_GLEW_MAKEFLAGS_BUILD_EXTRA:="SYSTEM=midipix STRIP= LD=${DEFAULT_TARGET}-gcc CC=${DEFAULT_TARGET}-gcc CFLAGS=-isystem${PREFIX_NATIVE}/include LDFLAGS.EXTRA=-L${PREFIX_NATIVE}/lib"};
-: ${PKG_GTK2_DEPENDS:="atk cairo freetype gdk glib libX11 pango Xrender"};
-: ${PKG_GTK2_SHA256SUM:=68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658};
-: ${PKG_GTK2_VERSION:=2.24.31};
-: ${PKG_GTK2_URL:=http://ftp.gnome.org/pub/gnome/sources/gtk+/${PKG_GTK2_VERSION%.*}/gtk+-${PKG_GTK2_VERSION}.tar.xz};
-: ${PKG_GTK2_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include/pango-1.0 -I${PREFIX_NATIVE}/include/gdk-pixbuf-2.0 -I${PREFIX_NATIVE}/include/atk-1.0 -I${PREFIX_NATIVE}/include/cairo -I${PREFIX_NATIVE}/include/glib-2.0 -I${PREFIX_NATIVE}/include/glib-2.0/gio -I${PREFIX_NATIVE}/lib/glib-2.0/include"};
-: ${PKG_GTK2_CONFIGURE_ARGS_EXTRA:="--disable-cups --disable-papi"};
-: ${PKG_GTK2_DISABLED:=1};
-: ${PKG_HARFBUZZ_DEPENDS:="freetype_pre glib"};
-: ${PKG_HARFBUZZ_SHA256SUM:=613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee};
-: ${PKG_HARFBUZZ_VERSION:=2.1.3};
-: ${PKG_HARFBUZZ_URL:=https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${PKG_HARFBUZZ_VERSION}.tar.bz2};
-: ${PKG_HARFBUZZ_CONFIGURE_ARGS_EXTRA:="--with-icu=no --with-cairo=no"};
-: ${PKG_IMLIB2_DEPENDS:="freetype libX11 libXext"};
-: ${PKG_IMLIB2_SHA256SUM:=4d393a77e13da883c8ee2da3b029da3570210fe37d000c9ac33d9fce751b166d};
-: ${PKG_IMLIB2_VERSION:=1.6.1};
-: ${PKG_IMLIB2_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/imlib/imlib2-${PKG_IMLIB2_VERSION}.tar.bz2};
-: ${PKG_IMLIB2_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_IMLIB2_CONFIGURE_ARGS_EXTRA:="--disable-static --disable-mmx --disable-amd64"};
-: ${PKG_IMLIB2_LIBTOOL=rdlibtool};
-: ${PKG_LIBCACA_DEPENDS:="freetype ncursesw"};
-: ${PKG_LIBCACA_URLS_GIT:=libcaca=https://github.com/cacalabs/libcaca@main};
-: ${PKG_LIBCACA_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -std=gnu99"};
-: ${PKG_LIBCACA_LDFLAGS_CONFIGURE_EXTRA:="-Wl,--as-needed -ltinfow -Wl,--as-needed"};
-: ${PKG_LIBEPOXY_DEPENDS:="libX11"};
-: ${PKG_LIBEPOXY_SHA256SUM:=4c94995398a6ebf691600dda2e9685a0cac261414175c2adf4645cdfab42a5d5};
-: ${PKG_LIBEPOXY_VERSION:=1.5.0};
-: ${PKG_LIBEPOXY_URL:=https://github.com/anholt/libepoxy/releases/download/${PKG_LIBEPOXY_VERSION}/libepoxy-${PKG_LIBEPOXY_VERSION}.tar.xz};
-: ${PKG_LIBEPOXY_CONFIGURE_ARGS_EXTRA:="--enable-egl=no"};
-: ${PKG_LIBFONTENC_DEPENDS:="libz xorgproto"};
-: ${PKG_LIBFONTENC_SHA256SUM:=6fba26760ca8d5045f2b52ddf641c12cedc19ee30939c6478162b7db8b6220fb};
-: ${PKG_LIBFONTENC_VERSION:=1.1.3};
-: ${PKG_LIBFONTENC_URL:=https://x.org/releases/individual/lib/libfontenc-${PKG_LIBFONTENC_VERSION}.tar.gz};
-: ${PKG_LIBICE_DEPENDS:="xorgproto xtrans"};
-: ${PKG_LIBICE_SHA256SUM:=6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348};
-: ${PKG_LIBICE_VERSION:=1.0.10};
-: ${PKG_LIBICE_URL:=https://www.x.org/releases/individual/lib/libICE-${PKG_LIBICE_VERSION}.tar.bz2};
-: ${PKG_LIBICE_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
-: ${PKG_LIBPTHREAD_STUBS_SHA256SUM:=e4d05911a3165d3b18321cc067fdd2f023f06436e391c6a28dff618a78d2e733};
-: ${PKG_LIBPTHREAD_STUBS_VERSION:=0.4};
-: ${PKG_LIBPTHREAD_STUBS_URL:=https://xcb.freedesktop.org/dist/libpthread-stubs-${PKG_LIBPTHREAD_STUBS_VERSION}.tar.bz2};
-: ${PKG_LIBSM_DEPENDS:="libICE xtrans"};
-: ${PKG_LIBSM_SHA256SUM:=2d264499dcb05f56438dee12a1b4b71d76736ce7ba7aa6efbf15ebb113769cbb};
-: ${PKG_LIBSM_VERSION:=1.2.3};
-: ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.bz2};
-: ${PKG_LIBSM_CONFIGURE_ARGS_EXTRA:="--disable-unix-transport"};
-: ${PKG_LIBX11_DEPENDS:="xcb xorgproto xtrans"};
-: ${PKG_LIBX11_SHA256SUM:=1bc41aa1bbe01401f330d76dfa19f386b79c51881c7bbfee9eb4e27f22f2d9f7};
-: ${PKG_LIBX11_VERSION:=1.8.1};
-: ${PKG_LIBX11_URL:=https://www.x.org/releases/individual/lib/libX11-${PKG_LIBX11_VERSION}.tar.xz};
-: ${PKG_LIBX11_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-unix-transport"};
-: ${PKG_LIBXAU_DEPENDS:="xorgproto"};
-: ${PKG_LIBXAU_SHA256SUM:=8be6f292334d2f87e5b919c001e149a9fdc27005d6b3e053862ac6ebbf1a0c0a};
-: ${PKG_LIBXAU_VERSION:=1.0.10};
-: ${PKG_LIBXAU_URL:=https://www.x.org/releases/individual/lib/libXau-${PKG_LIBXAU_VERSION}.tar.xz};
-: ${PKG_LIBXAW_DEPENDS:="libX11 libXext libXmu libXpm libXt xorgproto"};
-: ${PKG_LIBXAW_SHA256SUM:=76aef98ea3df92615faec28004b5ce4e5c6855e716fa16de40c32030722a6f8e};
-: ${PKG_LIBXAW_VERSION:=1.0.14};
-: ${PKG_LIBXAW_URL:=https://www.x.org/releases/individual/lib/libXaw-${PKG_LIBXAW_VERSION}.tar.bz2};
-: ${PKG_LIBXAW_CONFIGURE_ARGS_EXTRA:="--without-fop"};
-: ${PKG_LIBXDAMAGE_DEPENDS:="libX11 libXfixes xorgproto"};
-: ${PKG_LIBXDAMAGE_SHA256SUM:=b734068643cac3b5f3d2c8279dd366b5bf28c7219d9e9d8717e1383995e0ea45};
-: ${PKG_LIBXDAMAGE_VERSION:=1.1.5};
-: ${PKG_LIBXDAMAGE_URL:=https://x.org/releases/individual/lib/libXdamage-${PKG_LIBXDAMAGE_VERSION}.tar.bz2};
-: ${PKG_LIBXDMCP_DEPENDS:="xorgproto"};
-: ${PKG_LIBXDMCP_SHA256SUM:=20523b44aaa513e17c009e873ad7bbc301507a3224c232610ce2e099011c6529};
-: ${PKG_LIBXDMCP_VERSION:=1.1.3};
-: ${PKG_LIBXDMCP_URL:=https://x.org/releases/individual/lib/libXdmcp-${PKG_LIBXDMCP_VERSION}.tar.bz2};
-: ${PKg_LIBXDMCP_CONFIGURE_ARGS_EXTRA:="--without-fop"};
-: ${PKG_LIBXEXT_DEPENDS:="libX11 xorgproto"};
-: ${PKG_LIBXEXT_SHA256SUM:=59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b};
-: ${PKG_LIBXEXT_VERSION:=1.3.4};
-: ${PKG_LIBXEXT_URL:=https://www.x.org/releases/individual/lib/libXext-${PKG_LIBXEXT_VERSION}.tar.bz2};
-: ${PKG_LIBXEXT_CONFIGURE_ARGS_EXTRA:="--without-fop"};
-: ${PKG_LIBXFIXES_DEPENDS:="libX11 util_macros xorgproto"};
-: ${PKG_LIBXFIXES_SHA256SUM:=9ab6c13590658501ce4bd965a8a5d32ba4d8b3bb39a5a5bc9901edffc5666570};
-: ${PKG_LIBXFIXES_VERSION:=5.0.3};
-: ${PKG_LIBXFIXES_URL:=https://x.org/releases/individual/lib/libXfixes-${PKG_LIBXFIXES_VERSION}.tar.gz};
-: ${PKG_LIBXFONT2_DEPENDS:="freetype libfontenc libz xorgproto xtrans"};
-: ${PKG_LIBXFONT2_SHA256SUM:=0e8ab7fd737ccdfe87e1f02b55f221f0bd4503a1c5f28be4ed6a54586bac9c4e};
-: ${PKG_LIBXFONT2_VERSION:=2.0.3};
-: ${PKG_LIBXFONT2_URL:=https://x.org/releases/individual/lib/libXfont2-${PKG_LIBXFONT2_VERSION}.tar.bz2};
-: ${PKG_LIBXFONT2_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_LIBXFT_DEPENDS:="fontconfig freetype libX11 util_macros Xrender"};
-: ${PKG_LIBXFT_SHA256SUM:=7fce32b92dcb7b2869bed567af2abc7bbad0d5d6fcf471b8a3e137964a31bbbd};
-: ${PKG_LIBXFT_VERSION:=2.3.1};
-: ${PKG_LIBXFT_URL:=https://www.x.org/releases/individual/lib/libXft-${PKG_LIBXFT_VERSION}.tar.bz2};
-: ${PKG_LIBXFT_CFLAGS_BUILD_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2};
-: ${PKG_LIBXI_DEPENDS:="libX11 libXext libXfixes util_macros xorgproto"};
-: ${PKG_LIBXI_SHA256SUM:=463cc5370191404bc0f8a450fdbf6d9159efbbf274e5e0f427a60191fed9cf4b};
-: ${PKG_LIBXI_VERSION:=1.7.9};
-: ${PKG_LIBXI_URL:=https://x.org/releases/individual/lib/libXi-${PKG_LIBXI_VERSION}.tar.gz};
-: ${PKG_LIBXKBFILE_DEPENDS:="libX11"};
-: ${PKG_LIBXKBFILE_SHA256SUM:=51817e0530961975d9513b773960b4edd275f7d5c72293d5a151ed4f42aeb16a};
-: ${PKG_LIBXKBFILE_VERSION:=1.0.9};
-: ${PKG_LIBXKBFILE_URL:=https://www.x.org/releases/individual/lib/libxkbfile-${PKG_LIBXKBFILE_VERSION}.tar.bz2};
-: ${PKG_LIBXMU_DEPENDS:="libXext libXt libX11 xorgproto"};
-: ${PKG_LIBXMU_SHA256SUM:=9c343225e7c3dc0904f2122b562278da5fed639b1b5e880d25111561bac5b731};
-: ${PKG_LIBXMU_VERSION:=1.1.3};
-: ${PKG_LIBXMU_URL:=https://www.x.org/releases/individual/lib/libXmu-${PKG_LIBXMU_VERSION}.tar.bz2};
-: ${PKG_LIBXMU_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-unix-transport"};
-: ${PKG_LIBXPM_DEPENDS:="libX11 xorgproto"};
-: ${PKG_LIBXPM_SHA256SUM:=9cd1da57588b6cb71450eff2273ef6b657537a9ac4d02d0014228845b935ac25};
-: ${PKG_LIBXPM_VERSION:=3.5.13};
-: ${PKG_LIBXPM_URL:=https://www.x.org/releases/individual/lib/libXpm-${PKG_LIBXPM_VERSION}.tar.bz2};
-: ${PKG_LIBXT_DEPENDS:="libICE libSM libX11"};
-: ${PKG_LIBXT_SHA256SUM:=679cc08f1646dbd27f5e48ffe8dd49406102937109130caab02ca32c083a3d60};
-: ${PKG_LIBXT_VERSION:=1.2.1};
-: ${PKG_LIBXT_URL:=https://www.x.org/releases/individual/lib/libXt-${PKG_LIBXT_VERSION}.tar.bz2};
-: ${PKG_LIBXT_CONFIGURE_ARGS_EXTRA:="--without-fop"};
-: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g};
-: ${PKG_LIBXTST_DEPENDS:="libX11 libXext libXi xorgproto"};
-: ${PKG_LIBXTST_SHA256SUM:=4655498a1b8e844e3d6f21f3b2c4e2b571effb5fd83199d428a6ba7ea4bf5204};
-: ${PKG_LIBXTST_VERSION:=1.2.3};
-: ${PKG_LIBXTST_URL:=http://www.x.org/releases/individual/lib/libXtst-${PKG_LIBXTST_VERSION}.tar.bz2};
-: ${PKG_LIBXCURSOR_DEPENDS:="libX11 libXfixes xorgproto Xrender"};
-: ${PKG_LIBXCURSOR_SHA256SUM:=77f96b9ad0a3c422cfa826afabaf1e02b9bfbfc8908c5fa1a45094faad074b98};
-: ${PKG_LIBXCURSOR_VERSION:=1.2.1};
-: ${PKG_LIBXCURSOR_URL:=https://www.x.org/releases/individual/lib/libXcursor-${PKG_LIBXCURSOR_VERSION}.tar.gz};
-: ${PKG_MESA_DEPENDS:="expat libpthread_stubs libX11 libXext libz xcb"};
-: ${PKG_MESA_SHA256SUM:=694e5c3d37717d23258c1f88bc134223c5d1aac70518d2f9134d6df3ee791eea};
-: ${PKG_MESA_VERSION:=18.0.0};
-: ${PKG_MESA_URL:=https://mesa.freedesktop.org/archive/mesa-${PKG_MESA_VERSION}.tar.xz};
-: ${PKG_MESA_CFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
-: ${PKG_MESA_CONFIGURE_ARGS_EXTRA:="--enable-glx=xlib --with-platforms=x11 --disable-dri --disable-gbm --disable-egl --with-gallium-drivers= --disable-llvm --disable-asm"};
-: ${PKG_MESA_CXXFLAGS_CONFIGURE_EXTRA:="-D_GNU_SOURCE"};
-: ${PKG_MESA_LIBTOOL:=slibtool-shared};
-: ${PKG_PANGO_DEPENDS:="cairo fontconfig harfbuzz"};
-: ${PKG_PANGO_VERSION:=1.40.11};
-: ${PKG_PANGO_SHA256SUM:=5b11140590e632739e4151cae06b8116160d59e22bf36a3ccd5df76d1cf0383e};
-: ${PKG_PANGO_URL:=http://ftp.gnome.org/pub/GNOME/sources/pango/${PKG_PANGO_VERSION%.*}/pango-${PKG_PANGO_VERSION}.tar.xz};
-: ${PKG_PANGO_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include/harfbuzz};
-: ${PKG_PIXMAN_VERSION:=0.34.0};
-: ${PKG_PIXMAN_URL:=https://www.cairographics.org/releases/pixman-${PKG_PIXMAN_VERSION}.tar.gz};
-: ${PKG_PIXMAN_SHA256SUM:=21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e};
-: ${PKG_RDESKTOP_DEPENDS:="gnutls libICE libX11 libXcursor"};
-: ${PKG_RDESKTOP_SHA256SUM:=473c2f312391379960efe41caad37852c59312bc8f100f9b5f26609ab5704288};
-: ${PKG_RDESKTOP_VERSION:=1.9.0};
-: ${PKG_RDESKTOP_URL:=https://github.com/rdesktop/rdesktop/releases/download/v${PKG_RDESKTOP_VERSION}/rdesktop-${PKG_RDESKTOP_VERSION}.tar.gz};
-: ${PKG_RDESKTOP_IN_TREE:=1};
-: ${PKG_RDESKTOP_CONFIGURE_ARGS_EXTRA:="ALSA_LIBS=-lasound --disable-credssp --disable-smartcard --with-openssl=${PREFIX_NATIVE}"};
-: ${PKG_RXVT_UNICODE_DEPENDS:="libX11"};
-: ${PKG_RXVT_UNICODE_SHA256SUM:=e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd};
-: ${PKG_RXVT_UNICODE_VERSION:=9.22};
-: ${PKG_RXVT_UNICODE_URL:=http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PKG_RXVT_UNICODE_VERSION}.tar.bz2};
-: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp};
-: ${PKG_ST_DEPENDS:="freetype fontconfig libX11 libXft"};
-: ${PKG_ST_SHA256SUM:=f7870d906ccc988926eef2cc98950a99cc78725b685e934c422c03c1234e6000};
-: ${PKG_ST_VERSION:=0.7};
-: ${PKG_ST_URL:=https://dl.suckless.org/st/st-${PKG_ST_VERSION}.tar.gz};
-: ${PKG_ST_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_ST_CFLAGS_BUILD_EXTRA:="-I${PREFIX_NATIVE}/include/freetype2 -I${PREFIX_NATIVE}/include"};
-: ${PKG_ST_IN_TREE:=1};
-: ${PKG_ST_INSTALL_FILES_V2:="
- +../st-${PKG_ST_VERSION}/st=bin/%[FNAME]
- +../st-${PKG_ST_VERSION}/st.info=share/info/%[FNAME]
- +../st-${PKG_ST_VERSION}/st.1=share/man/man1/%[FNAME]"};
-: ${PKG_ST_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib -lX11 -lXft -lfreetype -lfontconfig};
-: ${PKG_UTIL_MACROS_SHA256SUM:=d7e43376ad220411499a79735020f9d145fdc159284867e99467e0d771f3e712};
-: ${PKG_UTIL_MACROS_VERSION:=1.19.2};
-: ${PKG_UTIL_MACROS_URL:=https://www.x.org/archive/individual/util/util-macros-${PKG_UTIL_MACROS_VERSION}.tar.bz2};
-: ${PKG_XCB_DEPENDS:="libpthread_stubs libXau xcb_proto"};
-: ${PKG_XCB_SHA256SUM:=cc38744f817cf6814c847e2df37fcb8997357d72fa4bcbc228ae0fe47219a059};
-: ${PKG_XCB_VERSION:=1.15};
-: ${PKG_XCB_URL:=https://www.x.org/releases/individual/xcb/libxcb-${PKG_XCB_VERSION}.tar.xz};
-: ${PKG_XCB_CFLAGS_CONFIGURE_EXTRA:=-std=gnu99};
-: ${PKG_XCB_CONFIG_CACHE_EXTRA:="ac_cv_search_sendmsg=no"};
-: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:=--disable-randr};
-: ${PKG_XCB_PROTO_SHA256SUM:=7072beb1f680a2fe3f9e535b797c146d22528990c72f63ddb49d2f350a3653ed};
-: ${PKG_XCB_PROTO_VERSION:=1.15.2};
-: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/xcb/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.xz};
-: ${PKG_XCB_UTIL_DEPENDS:="xcb"};
-: ${PKG_XCB_UTIL_SHA256SUM:=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9};
-: ${PKG_XCB_UTIL_VERSION:=0.4.0};
-: ${PKG_XCB_UTIL_URL:=https://x.org/releases/individual/xcb/xcb-util-${PKG_XCB_UTIL_VERSION}.tar.bz2};
-: ${PKG_XCB_UTIL_IMAGE_DEPENDS:="xcb xcb_util"};
-: ${PKG_XCB_UTIL_IMAGE_SHA256SUM:=2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc};
-: ${PKG_XCB_UTIL_IMAGE_VERSION:=0.4.0};
-: ${PKG_XCB_UTIL_IMAGE_URL:=https://x.org/releases/individual/xcb/xcb-util-image-${PKG_XCB_UTIL_IMAGE_VERSION}.tar.bz2};
-: ${PKG_XCB_UTIL_WM_DEPENDS:="xcb"};
-: ${PKG_XCB_UTIL_WM_SHA256SUM:=28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f};
-: ${PKG_XCB_UTIL_WM_VERSION:=0.4.1};
-: ${PKG_XCB_UTIL_WM_URL:=https://x.org/releases/individual/xcb/xcb-util-wm-${PKG_XCB_UTIL_WM_VERSION}.tar.bz2};
-: ${PKG_XCOWSAY_DEPENDS:="gdk gtk2"};
-: ${PKG_XCOWSAY_SHA256SUM:=c7e261ba0262c3821c106ccb6d6f984e3c2da999ad10151364e55d1c699f8e51};
-: ${PKG_XCOWSAY_VERSION:=1.4};
-: ${PKG_XCOWSAY_URL:=http://www.nickg.me.uk/files/xcowsay-${PKG_XCOWSAY_VERSION}.tar.gz};
-: ${PKG_XCOWSAY_DISABLED:=1};
-: ${PKG_XCALC_DEPENDS:="libX11 libXt libXaw"};
-: ${PKG_XCALC_SHA256SUM:=a86418d9af9d0e57e5253ba1c29e754480509c828d369aaaca48400b2045e630};
-: ${PKG_XCALC_VERSION:=1.1.0};
-: ${PKG_XCALC_URL:=https://www.x.org/releases/individual/app/xcalc-${PKG_XCALC_VERSION}.tar.gz};
-: ${PKG_XEYES_DEPENDS:="libX11 libXext libXmu libXt Xrender"};
-: ${PKG_XEYES_SHA256SUM:=57bcec0d2d167af9e5d44d0dbd74c6d7c0f0591cd0608952b23c749fdd910553};
-: ${PKG_XEYES_VERSION:=1.1.2};
-: ${PKG_XEYES_URL:=https://www.x.org/releases/individual/app/xeyes-${PKG_XEYES_VERSION}.tar.bz2};
-: ${PKG_XORGPROTO_SHA256SUM:=5d13dbf2be08f95323985de53352c4f352713860457b95ccaf894a647ac06b9e};
-: ${PKG_XORGPROTO_VERSION:=2022.2};
-: ${PKG_XORGPROTO_URL:=https://www.x.org/releases/individual/proto/xorgproto-${PKG_XORGPROTO_VERSION}.tar.xz};
-: ${PKG_XORGPROTO_CONFIGURE_ARGS_EXTRA:="--without-fop --disable-specs --enable-legacy PYTHON=${PREFIX}/bin/python3"};
-: ${PKG_XRENDER_DEPENDS:="libX11 xorgproto"};
-: ${PKG_XRENDER_SHA256SUM:=c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949};
-: ${PKG_XRENDER_VERSION:=0.9.10};
-: ${PKG_XRENDER_URL:=https://www.x.org/releases/individual/lib/libXrender-${PKG_XRENDER_VERSION}.tar.bz2};
-: ${PKG_XTERM_DEPENDS:="libX11 libXaw libXmu libXpm ncurses"};
-: ${PKG_XTERM_SHA256SUM:=9ae856a30fd93046be93952a6898ba47f6f88ad6a988a7c949c4c80d5199ef10};
-: ${PKG_XTERM_VERSION:=331};
-: ${PKG_XTERM_URL:=ftp://ftp.invisible-island.net/xterm/xterm-${PKG_XTERM_VERSION}.tgz};
-: ${PKG_XTERM_CONFIGURE_ARGS_EXTRA:="--disable-setuid --disable-setgid --disable-full-tgetent --enable-ansi-color --enable-88-color --enable-256-color --enable-broken-osc --enable-broken-st --enable-load-vt-fonts --enable-i18n --enable-doublechars --enable-warnings --enable-tcap-query --enable-logging --enable-dabbrev --enable-freetype --enable-luit --enable-mini-luit --enable-narrowproto --enable-exec-xterm --enable-sixel-graphics --with-utempter"};
-: ${PKG_XTERM_ENV_VARS_EXTRA:=LIBS=-lncurses -ltinfo};
-: ${PKG_XTRANS_DEPENDS:="util_macros"};
-: ${PKG_XTRANS_SHA256SUM:=377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773};
-: ${PKG_XTRANS_VERSION:=1.4.0};
-: ${PKG_XTRANS_URL:=https://www.x.org/releases/individual/lib/xtrans-${PKG_XTRANS_VERSION}.tar.bz2};
-: ${PKG_XTRANS_CONFIGURE_ARGS_EXTRA:="--without-fop"};
-: ${PKG_XWD_DEPENDS:="libX11 libxkbfile"};
-: ${PKG_XWD_SHA256SUM:=3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79};
-: ${PKG_XWD_VERSION:=1.0.6};
-: ${PKG_XWD_URL:=https://www.x.org/releases/individual/app/xwd-${PKG_XWD_VERSION}.tar.bz2};
-: ${PKG_XWIN_SHA256SUM:=59c99fe86fe75b8164c6567bfc6e982aecc2e4a51e6fbac1b842d5d00549e918};
-: ${PKG_XWIN_VERSION:=1.20.1};
-: ${PKG_XWIN_URL:=https://x.org/releases/individual/xserver/xorg-server-${PKG_XWIN_VERSION}.tar.bz2};
-: ${PKG_XWIN_CFLAGS_BUILD_EXTRA:=-Wno-redundant-decls};
-: ${PKG_XWIN_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_ANSI_DEFAULT -I${PREFIX_NATIVE}/include/w32api.ports/"};
-: ${PKG_XWIN_CONFIGURE_ARGS_EXTRA:="--enable-xwin --disable-xorg --disable-dri --disable-dri2 --disable-dri3 --disable-pciaccess --disable-glx"};
-: ${PKG_XWIN_DISABLED:=1};
-: ${PKG_XWIN_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib/"};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/800.minipix.group b/groups/800.minipix.group
deleted file mode 100644
index f5db9617..00000000
--- a/groups/800.minipix.group
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-# Build group minipix
-#
-MINIPIX_CFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
-MINIPIX_CXXFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CXXFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
-MINIPIX_CONFIG_CACHE_LOCAL="${CONFIG_CACHE_GNULIB}";
-MINIPIX_CONFIGURE_ARGS="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}";
-MINIPIX_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools native_packages native_toolchain native_tools";
-MINIPIX_LDFLAGS_BUILD="--sysroot=${PREFIX_NATIVE} -mvrfs";
-MINIPIX_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE} -mvrfs";
-MINIPIX_MAKEFLAGS_INSTALL="PREFIX= prefix=";
-MINIPIX_PACKAGES="
-bash_minipix bzip2_minipix ca_certificates_minipix coreutils_minipix
-dash_minipix diffutils_minipix dropbear_minipix findutils_minipix
-gawk_minipix gdb_minipix grep_minipix gzip_minipix infounzip_minipix
-infozip_minipix less_minipix libz_minipix nano_minipix patch_minipix
-python2_minipix sed_minipix tar_minipix tpax_minipix vim_minipix
-wget_minipix which_minipix xz_minipix mintty_minipix ntctty_minipix
-ntux_minipix perk_minipix ptycon_minipix toksvc_minipix";
-MINIPIX_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
-MINIPIX_PKGLIST_DISABLE=1;
-MINIPIX_PREFIX="${PREFIX}/minipix_dist";
-MINIPIX_RPM_DISABLE=1;
-
-#
-# 3rd party packages
-: ${PKG_BASH_MINIPIX_INHERIT_FROM:=bash};
-: ${PKG_BASH_MINIPIX_BUILD_STEPS_DISABLE:=install_make};
-: ${PKG_BASH_MINIPIX_INSTALL_FILES_V2:="
- +../obj/bash=bin/%[FNAME]
- +../obj/bashbug=bin/%[FNAME]"};
-: ${PKG_BZIP2_MINIPIX_INHERIT_FROM:=bzip2};
-: ${PKG_BZIP2_MINIPIX_BUILD_STEPS_DISABLE:="install_make"};
-: ${PKG_BZIP2_MINIPIX_INSTALL_FILES_V2:="
- +../bzip2-${PKG_BZIP2_VERSION}/bzip2=bin/%[FNAME]
- @bzip2=bin/bunzip2
- @bzip2=bin/bzcat
- @bzip2=bin/bzdiff
- @bzip2=bin/bzgrep
- @bzip2=bin/bzip2recover
- @bzip2=bin/bzmore"};
-: ${PKG_BZIP2_MINIPIX_MAKEFLAGS_BUILD_EXTRA:="-f Makefile"};
-: ${PKG_CA_CERTIFICATES_MINIPIX_INHERIT_FROM:=ca_certificates};
-: ${PKG_COREUTILS_MINIPIX_INHERIT_FROM:=coreutils};
-: ${PKG_COREUTILS_MINIPIX_INSTALL_TARGET:=install-binPROGRAMS};
-: ${PKG_COREUTILS_MINIPIX_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_PROGRAM=${DEFAULT_TARGET}-install-strip};
-: ${PKG_DASH_MINIPIX_INHERIT_FROM:=dash};
-: ${PKG_DASH_MINIPIX_INSTALL_FILES_V2:="+bin/dash=bin/sh"};
-: ${PKG_DIFFUTILS_MINIPIX_INHERIT_FROM:=diffutils};
-: ${PKG_DROPBEAR_MINIPIX_INHERIT_FROM:=dropbear};
-: ${PKG_DROPBEAR_MINIPIX_INSTALL_FILES_V2:="+sbin/dropbear=bin/%[FNAME]"};
-: ${PKG_FINDUTILS_MINIPIX_INHERIT_FROM:=findutils};
-: ${PKG_GAWK_MINIPIX_INHERIT_FROM:=gawk};
-: ${PKG_GDB_MINIPIX_INHERIT_FROM:=gdb};
-: ${PKG_GDB_MINIPIX_DISABLED:=1};
-: ${PKG_GREP_MINIPIX_INHERIT_FROM:=grep};
-: ${PKG_GZIP_MINIPIX_INHERIT_FROM:=gzip};
-: ${PKG_GZIP_MINIPIX_INSTALL_TARGET:=install-binPROGRAMS};
-: ${PKG_GZIP_MINIPIX_MAKEFLAGS_INSTALL_EXTRA:="OBJA="};
-: ${PKG_INFOUNZIP_MINIPIX_INHERIT_FROM:=infounzip};
-: ${PKG_INFOUNZIP_MINIPIX_LDFLAGS_BUILD_EXTRA:=${MINIPIX_LDFLAGS_CONFIGURE}};
-: ${PKG_INFOZIP_MINIPIX_INHERIT_FROM:=infozip};
-: ${PKG_INFOZIP_MINIPIX_LDFLAGS_BUILD_EXTRA:=${MINIPIX_LDFLAGS_CONFIGURE}};
-: ${PKG_LESS_MINIPIX_INHERIT_FROM:=less};
-: ${PKG_LIBZ_MINIPIX_INHERIT_FROM:=libz};
-: ${PKG_NANO_MINIPIX_INHERIT_FROM:=nano};
-: ${PKG_PATCH_MINIPIX_INHERIT_FROM:=patch};
-: ${PKG_PYTHON2_MINIPIX_INHERIT_FROM:=python2};
-: ${PKG_PYTHON2_MINIPIX_BASE_DIR:=${BUILD_WORKDIR}/python2-minipix-${DEFAULT_TARGET}};
-: ${PKG_SED_MINIPIX_INHERIT_FROM:=sed};
-: ${PKG_TAR_MINIPIX_INHERIT_FROM:=tar};
-: ${PKG_TAR_MINIPIX_MAKEFLAGS_INSTALL:="-C src install-binPROGRAMS"};
-: ${PKG_VIM_MINIPIX_INHERIT_FROM:=vim};
-: ${PKG_WGET_MINIPIX_INHERIT_FROM:=wget};
-: ${PKG_WHICH_MINIPIX_INHERIT_FROM:=which};
-: ${PKG_XZ_MINIPIX_INHERIT_FROM:=xz};
-
-#
-# Midipix tools
-: ${PKG_MINTTY_MINIPIX_INHERIT_FROM:=mintty};
-: ${PKG_MINTTY_MINIPIX_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -mvrfs"};
-: ${PKG_NTCTTY_MINIPIX_INHERIT_FROM:=ntctty};
-: ${PKG_NTCTTY_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
-: ${PKG_NTCTTY_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
-: ${PKG_NTUX_MINIPIX_INHERIT_FROM:=ntux};
-: ${PKG_NTUX_MINIPIX_CFLAGS_CONFIGURE:="${DEFAULT_CFLAGS_RUNTIME} --sysroot=${PREFIX_NATIVE} -O0 -DNTUX_STANDALONE"};
-: ${PKG_NTUX_MINIPIX_CONFIGURE_ARGS:="--host=${DEFAULT_TARGET} --prefix= --target=${DEFAULT_TARGET} --bindir=/bin"};
-: ${PKG_NTUX_MINIPIX_LDFLAGS_BUILD:="--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_NTUX_MINIPIX_LDFLAGS_CONFIGURE:="--sysroot=${PREFIX_NATIVE}"};
-: ${PKG_PERK_MINIPIX_INHERIT_FROM:=perk};
-: ${PKG_PTYCON_MINIPIX_INHERIT_FROM:=ptycon};
-: ${PKG_PTYCON_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
-: ${PKG_PTYCON_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
-: ${PKG_TOKSVC_MINIPIX_INHERIT_FROM:=toksvc};
-: ${PKG_TOKSVC_MINIPIX_CONFIGURE_ARGS:="--prefix= --strict --host=${DEFAULT_TARGET}"};
-: ${PKG_TOKSVC_MINIPIX_ENV_VARS_EXTRA:="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"};
-: ${PKG_TPAX_MINIPIX_INHERIT_FROM:=tpax};
-: ${PKG_TPAX_MINIPIX_INHERIT_CONFIGURE_ARGS:="--prefix --strict --host=${DEFAULT_TARGET}"};
-
-# vim:filetype=sh textwidth=0
diff --git a/groups/dev_packages.group b/groups/dev_packages.group
deleted file mode 100644
index fc9e4060..00000000
--- a/groups/dev_packages.group
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Build group dev_packages
-#
-GROUP_AUTO=0;
-DEV_PACKAGES_CFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
-DEV_PACKAGES_CXXFLAGS_CONFIGURE="$(rtl_lconcat "${DEFAULT_CXXFLAGS}" "--sysroot=${PREFIX_NATIVE}")";
-DEV_PACKAGES_CONFIG_CACHE_LOCAL="${CONFIG_CACHE_GNULIB}";
-DEV_PACKAGES_CONFIGURE_ARGS="-C --disable-nls --host=${DEFAULT_TARGET} --prefix= --program-prefix= --target=${DEFAULT_TARGET}";
-DEV_PACKAGES_GROUP_DEPENDS="host_deps host_deps_rpm host_toolchain host_tools native_toolchain native_tools";
-DEV_PACKAGES_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}";
-DEV_PACKAGES_MAKEFLAGS_INSTALL="PREFIX= prefix=";
-DEV_PACKAGES_PACKAGES="
-ncurses ncursesw coreutils bash libz git make sed grep findutils m4 flex bison
-diffutils patch patchutils gzip tar dos2unix nano vim";
-DEV_PACKAGES_PKG_CONFIG_LIBDIR="${PREFIX_NATIVE}/lib/pkgconfig";
-DEV_PACKAGES_PREFIX="${PREFIX_NATIVE}";
-DEV_PACKAGES_PYTHON="${PREFIX}/bin/python2";
-
-# vim:filetype=sh textwidth=0
diff --git a/midipix.env b/midipix.env
deleted file mode 100644
index a146b301..00000000
--- a/midipix.env
+++ /dev/null
@@ -1,373 +0,0 @@
-#
-# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
-# characters in any of the variables below save for MAKEFLAGS,
-# PATH, and TIMESTAMP_FMT.
-#
-# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
-# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
-# The variables mentioned should not be forward slash-terminated.
-#
-
-#
-# Build {step,variable}s
-DEFAULT_BUILD_STEPS=" \
- fetch_clean fetch_download fetch_extract \
- configure_clean configure_patch_pre configure_autotools configure_patch configure \
- build_clean build \
- install_clean install_subdirs install_make install_files install_libs install install_rpm \
- clean \
- finish";
-DEFAULT_BUILD_VARS=" \
- AR AUTOCONF_CONFIG_GUESS BASE_DIR BUILD_DIR BUILD_STEPS_DISABLE BUILD_TYPE \
- CC CFLAGS_BUILD CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA \
- CMAKE CMAKE_ARGS CMAKE_ARGS_EXTRA CMAKE_LISTFILE CONFIG_CACHE \
- CONFIG_CACHE_EXTRA CONFIG_CACHE_LOCAL CONFIGURE CONFIGURE_ARGS \
- CONFIGURE_ARGS_EXTRA CONFIGURE_TYPE CXX CXXFLAGS_CONFIGURE \
- CXXFLAGS_CONFIGURE_EXTRA DEPENDS DESTDIR DESTDIR_HOST DISABLED \
- ENV_VARS_EXTRA FNAME FORCE_AUTORECONF GITROOT INHERIT_FROM INSTALL_FILES \
- INSTALL_FILES_DESTDIR INSTALL_FILES_DESTDIR_EXTRA INSTALL_FILES_V2 \
- INSTALL_TARGET INSTALL_TARGET_EXTRA IN_TREE LDFLAGS_BUILD_EXTRA \
- LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA LIBTOOL MAKE MAKEFLAGS_BUILD \
- MAKEFLAGS_BUILD_EXTRA MAKEFLAGS_INSTALL MAKEFLAGS_INSTALL_EXTRA \
- MAKEFLAGS_VERBOSITY MAKE_INSTALL_VNAME MAKE_SUBDIRS MIRRORS MIRRORS_GIT \
- NO_CLEAN NO_CLEAN_BASE_DIR NO_LOG_VARS PATCHES_EXTRA PKG_CONFIG \
- PKG_CONFIG_LIBDIR PKGLIST_DISABLE PREFIX PYTHON RANLIB RPM_DISABLE \
- SHA256SUM SOFORT_NATIVE_CC SOFORT_NATIVE_CFLAGS SOFORT_NATIVE_CFLAGS_EXTRA \
- SOFORT_NATIVE_CXX SOFORT_NATIVE_CXXFLAGS SOFORT_NATIVE_CXXFLAGS_EXTRA \
- SOFORT_NATIVE_LD SOFORT_NATIVE_LDFLAGS SOFORT_NATIVE_LDFLAGS_EXTRA SUBDIR \
- TARGET URL URLS_GIT VARS_FILE VERSION";
-
-#
-# Prerequisite commands
-DEFAULT_PREREQS=" \
- awk bunzip2 bzip2 cat chmod cmake cp date find flock \
- g++ gcc git grep gunzip gzip hostname id install kill \
- ln lzip make mkdir mkfifo mktemp mv paste patch perl \
- pgrep pkill printf readlink rm sed sha256sum sort \
- stat tail tar test touch tr uniq wget xz zip";
-
-#
-# Path & variable names and URLs
-: ${PREFIX_ROOT:="${HOME}/midipix"};
-: ${PREFIX:="${PREFIX_ROOT}/${ARCH}/${BUILD_KIND}"};
-: ${PREFIX_CROSS:="${PREFIX}/${DEFAULT_TARGET}"};
-: ${PREFIX_MINGW32:="${PREFIX}/x86_64-w64-mingw32"};
-: ${PREFIX_MINIPIX:="${PREFIX}/minipix"};
-: ${PREFIX_NATIVE:="${PREFIX}/native"};
-: ${PREFIX_RPM:="${PREFIX}/rpm"};
-: ${BUILD_DLCACHEDIR:="${PREFIX_ROOT}/dlcache"};
-: ${BUILD_WORKDIR:="${PREFIX}/tmp"};
-: ${DEFAULT_CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_CROSS BUILD_DLCACHEDIR BUILD_WORKDIR"};
-: ${DEFAULT_CLEAR_ENV_VARS_EXCEPT:=" \
- HOME PATH TERM USER \
- ARCH BUILD_KIND \
- BUILD_DLCACHEDIR BUILD_HNAME BUILD_WORKDIR \
- PREFIX PREFIX_CROSS PREFIX_MINGW32 PREFIX_MINIPIX PREFIX_NATIVE PREFIX_ROOT PREFIX_RPM"};
-: ${DEFAULT_CLEAR_PREFIX_PATHS:="
- bin i686-nt32-midipix doc include info lib lib64 libexec man minipix minipix_dist native
- rpm sbin share tmp usr x86_64-nt64-midipix x86_64-w64-mingw32 pkglist.cross pkglist.host
- pkglist.native SHA256SUMS SHA256SUMS.last"};
-: ${DEFAULT_INSTALL_FILES_DESTDIR:=" \
- /=bin /=include /=lib /=lib/pkgconfig /=sbin \
- /=share /=share/doc /=share/info /=share/man \
- /=share/man/man1 /=share/man/man2 /=share/man/man3 /=share/man/man4 /=share/man/man5 \
- /=share/man/man6 /=share/man/man7 /=share/man/man8 /=share/man/man9 \
- @share/doc=doc \
- @share/info=info \
- @lib=lib64 \
- @share/man=man \
- @../lib/pkgconfig=share/pkgconfig \
- @.=usr"};
-: ${DEFAULT_LOG_ENV_VARS:=" \
- ARCH BUILD_KIND BUILD_DLCACHEDIR BUILD_WORKDIR DEFAULT_GITROOT \
- HOME PATH PREFIX PREFIX_CROSS PREFIX_MINGW32 PREFIX_MINIPIX \
- PREFIX_NATIVE PREFIX_RPM USER"};
-: ${DEFAULT_MIRRORS:=" \
-https://midipix.org/mirror/ \
-https://midipix.luciaillanes.de/archives/ \
-"};
-: ${DEFAULT_MIRRORS_GIT:=" \
-https://midipix.luciaillanes.de/repos_git/ \
-"};
-
-#
-# Default toolchain flags & variables
-: ${DEFAULT_BUILD_CPUS:=};
-: ${DEFAULT_BUILD_TYPE:=native};
-: ${DEFAULT_CFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
-: ${DEFAULT_CFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
-: ${DEFAULT_CFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
-: ${DEFAULT_CFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CFLAGS:=$(rtl_get_var_unsafe "DEFAULT_CFLAGS_$(rtl_toupper "${BUILD_KIND}")")};
-: ${DEFAULT_CFLAGS_CONFIGURE:=${DEFAULT_CFLAGS}};
-: ${DEFAULT_CFLAGS_HOST:=$(rtl_get_var_unsafe "DEFAULT_CFLAGS_$(rtl_toupper "${BUILD_KIND}")_HOST")};
-: ${DEFAULT_CFLAGS_RUNTIME:=$(rtl_get_var_unsafe "DEFAULT_CFLAGS_$(rtl_toupper "${BUILD_KIND}")_RUNTIME")};
-: ${DEFAULT_CPPFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
-: ${DEFAULT_CPPFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
-: ${DEFAULT_CPPFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
-: ${DEFAULT_CPPFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CPPFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CPPFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CPPFLAGS:=$(rtl_get_var_unsafe "DEFAULT_CPPFLAGS_$(rtl_toupper "${BUILD_KIND}")")};
-: ${DEFAULT_CPPFLAGS_CONFIGURE:=${DEFAULT_CPPFLAGS}};
-: ${DEFAULT_CPPFLAGS_HOST:=$(rtl_get_var_unsafe "DEFAULT_CPPFLAGS_$(rtl_toupper "${BUILD_KIND}")_HOST")};
-: ${DEFAULT_CPPFLAGS_RUNTIME:=$(rtl_get_var_unsafe "DEFAULT_CPPFLAGS_$(rtl_toupper "${BUILD_KIND}")_RUNTIME")};
-: ${DEFAULT_CXXFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
-: ${DEFAULT_CXXFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
-: ${DEFAULT_CXXFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
-: ${DEFAULT_CXXFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CXXFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CXXFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
-: ${DEFAULT_CXXFLAGS:=$(rtl_get_var_unsafe "DEFAULT_CXXFLAGS_$(rtl_toupper "${BUILD_KIND}")")};
-: ${DEFAULT_CXXFLAGS_CONFIGURE:=${DEFAULT_CXXFLAGS}};
-: ${DEFAULT_CXXFLAGS_HOST:=$(rtl_get_var_unsafe "DEFAULT_CXXFLAGS_$(rtl_toupper "${BUILD_KIND}")_HOST")};
-: ${DEFAULT_CXXFLAGS_RUNTIME:=$(rtl_get_var_unsafe "DEFAULT_CXXFLAGS_$(rtl_toupper "${BUILD_KIND}")_RUNTIME")};
-: ${DEFAULT_LDFLAGS_DEBUG:=""};
-: ${DEFAULT_LDFLAGS_DEBUG_HOST:=""};
-: ${DEFAULT_LDFLAGS_DEBUG_RUNTIME:=""};
-: ${DEFAULT_LDFLAGS_RELEASE:=""};
-: ${DEFAULT_LDFLAGS_RELEASE_HOST:=""};
-: ${DEFAULT_LDFLAGS_RELEASE_RUNTIME:=""};
-: ${DEFAULT_LDFLAGS:=$(rtl_get_var_unsafe "DEFAULT_LDFLAGS_$(rtl_toupper "${BUILD_KIND}")")};
-: ${DEFAULT_LDFLAGS_CONFIGURE:=${DEFAULT_LDFLAGS}};
-: ${DEFAULT_LDFLAGS_HOST:=$(rtl_get_var_unsafe "DEFAULT_LDFLAGS_$(rtl_toupper "${BUILD_KIND}")_HOST")};
-: ${DEFAULT_LDFLAGS_RUNTIME:=$(rtl_get_var_unsafe "DEFAULT_LDFLAGS_$(rtl_toupper "${BUILD_KIND}")_RUNTIME")};
-
-#
-# Target-relative toolchain defaults
-: ${DEFAULT_CROSS_AR:=${DEFAULT_TARGET}-ar};
-: ${DEFAULT_CROSS_CC:=${DEFAULT_TARGET}-gcc};
-: ${DEFAULT_CROSS_CMAKE:=cmake};
-: ${DEFAULT_CROSS_CXX:=${DEFAULT_TARGET}-g++};
-: ${DEFAULT_CROSS_LIBTOOL:=slibtool};
-: ${DEFAULT_CROSS_MAKE:=make};
-: ${DEFAULT_CROSS_RANLIB:=${DEFAULT_TARGET}-ranlib};
-: ${DEFAULT_HOST_AR:=ar};
-: ${DEFAULT_HOST_CC:=gcc};
-: ${DEFAULT_HOST_CMAKE:=cmake};
-: ${DEFAULT_HOST_CXX:=g++};
-: ${DEFAULT_HOST_LIBTOOL:=slibtool};
-: ${DEFAULT_HOST_MAKE:=make};
-: ${DEFAULT_HOST_PKG_CONFIG:=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config};
-: ${DEFAULT_HOST_PKG_CONFIG_LIBDIR:=${PREFIX}/lib/pkgconfig};
-: ${DEFAULT_HOST_RANLIB:=ranlib};
-: ${DEFAULT_NATIVE_AR:=${DEFAULT_TARGET}-ar};
-: ${DEFAULT_NATIVE_CC:=${DEFAULT_TARGET}-gcc};
-: ${DEFAULT_NATIVE_CMAKE:=cmake};
-: ${DEFAULT_NATIVE_CXX:=${DEFAULT_TARGET}-g++};
-: ${DEFAULT_NATIVE_LIBTOOL:=slibtool};
-: ${DEFAULT_NATIVE_MAKE:=make};
-: ${DEFAULT_NATIVE_PKG_CONFIG:=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config};
-: ${DEFAULT_NATIVE_PKG_CONFIG_LIBDIR:=${PREFIX}/lib/pkgconfig};
-: ${DEFAULT_NATIVE_RANLIB:=${DEFAULT_TARGET}-ranlib};
-
-#
-# Default command & tool flags & variables
-: ${DEFAULT_AUTOCONF_CONFIG_GUESS:="midipix"};
-: ${DEFAULT_CMAKE_LISTFILE:="CMakeLists.txt"};
-: ${DEFAULT_GITROOT:=git://midipix.org};
-: ${DEFAULT_GITROOT_HEAD:=git://midipix.org};
-: ${DEFAULT_MAKE_INSTALL_VNAME:=DESTDIR};
-: ${DEFAULT_MAKEFLAGS_BUILD:=-j${DEFAULT_BUILD_CPUS}};
-: ${DEFAULT_MAKEFLAGS_VERBOSITY:="V=99 VERBOSE=1"};
-: ${DEFAULT_GIT_ARGS:=""};
-: ${DEFAULT_TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"};
-: ${DEFAULT_WGET_ARGS:="--no-check-certificate --timeout=25 --waitretry=16"};
-: ${DEFAULT_ZIPDIST_DEFROOT:="/dev/fs/c/midipix"};
-
-#
-# Default CMake flags & variables
-: ${DEFAULT_CMAKE_ARGS:="
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
- -DCMAKE_INSTALL_PREFIX=
- -DCMAKE_VERBOSE_MAKEFILE=YES"};
-
-#
-# Default sofort flags & variables
-: ${DEFAULT_SOFORT_NATIVE_CC:="${DEFAULT_HOST_CC}"};
-: ${DEFAULT_SOFORT_NATIVE_CFLAGS:="-I${PREFIX}/include"};
-: ${DEFAULT_SOFORT_NATIVE_CXX:="${DEFAULT_HOST_CXX}"};
-: ${DEFAULT_SOFORT_NATIVE_CXXFLAGS:="-I${PREFIX}/include"};
-: ${DEFAULT_SOFORT_NATIVE_LD:="${DEFAULT_HOST_CC}"};
-: ${DEFAULT_SOFORT_NATIVE_LDFLAGS:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"};
-
-#
-# Build {log,status} & tarball names
-: ${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME:=${BUILD_WORKDIR}/last_failed_pkg};
-: ${DEFAULT_BUILD_LOG_FNAME:=${PREFIX}/build.log};
-: ${DEFAULT_BUILD_LOG_LAST_FNAME:=${PREFIX}/build.log.last};
-: ${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME:=${PREFIX}/BUILD_IN_PROGRESS};
-: ${DEFAULT_ZIPDIST_FNAME_PREFIX:=midipix-${ARCH}-${BUILD_KIND}.};
-
-#
-# GNU autotools cache
-: ${DEFAULT_CONFIG_CACHE:="
-ac_cv_buggy_getaddrinfo=no
-ac_cv_file__dev_ptc=no
-ac_cv_file__dev_ptmx=yes
-ac_cv_func_calloc_0_nonnull=yes
-ac_cv_func_chown_works=yes
-ac_cv_func_fork_works=yes
-ac_cv_func_getgroups_works=yes
-ac_cv_func_malloc_0_nonnull=yes
-ac_cv_func_memcmp_working=yes
-ac_cv_func_mmap_fixed_mapped=yes
-ac_cv_func_realloc_0_nonnull=yes
-ac_cv_func_strcoll_works=yes
-ac_cv_func_strnlen_working=yes
-ac_cv_func_working_mktime=yes
-gl_cv_func_gettimeofday_clobber=no
-gl_cv_func_tzset_clobber=no
-gt_cv_int_divbyzero_sigfpe=yes
-libffi_cv_hidden_visibility_attribute=yes
-xorg_cv_malloc0_returns_null=yes"};
-
-: ${CONFIG_CACHE_GNULIB:="
-gl_cv_double_slash_root=no
-ac_cv_func___fseterr=yes
-am_cv_func_working_getline=yes
-gl_cv_C_locale_sans_EILSEQ=yes
-gl_cv_func_cbrtl_ieee=yes
-gl_cv_func_ceilf_ieee=yes
-gl_cv_func_ceil_ieee=yes
-gl_cv_func_ceill_ieee=yes
-gl_cv_func_chown_ctime_works=yes
-gl_cv_func_chown_follows_symlink=yes
-gl_cv_func_chown_slash_works=yes
-gl_cv_func_exp2l_ieee=yes
-gl_cv_func_expm1_ieee=yes
-gl_cv_func_fclose_stdin=yes
-gl_cv_func_fchownat_empty_filename_works=yes
-gl_cv_func_fchownat_nofollow_works=yes
-gl_cv_func_fcntl_f_dupfd_cloexec=yes
-gl_cv_func_fcntl_f_dupfd_works=yes
-gl_cv_func_fdopendir_works=yes
-gl_cv_func_fflush_stdin=yes
-gl_cv_func_floorf_ieee=yes
-gl_cv_func_fmaf_works=yes
-gl_cv_func_fmal_works=yes
-gl_cv_func_fma_works=yes
-gl_cv_func_fmodf_ieee=yes
-gl_cv_func_fmod_ieee=yes
-gl_cv_func_fmodl_ieee=yes
-gl_cv_func_fopen_mode_e=yes
-gl_cv_func_fopen_mode_x=yes
-gl_cv_func_fpurge_works=yes
-gl_cv_func_fseeko=yes
-gl_cv_func_futimens_works=yes
-gl_cv_func_futimesat_works=yes
-gl_cv_func_getcwd_null=yes
-gl_cv_func_getgroups_works=yes
-gl_cv_func_gettimeofday_clobber=no
-gl_cv_func_hypotf_ieee=yes
-gl_cv_func_hypot_ieee=yes
-gl_cv_func_hypotl_ieee=yes
-gl_cv_func_isfinitel_works=yes
-gl_cv_func_isnanl_works=yes
-gl_cv_func_iswcntrl_works=yes
-gl_cv_func_linkat_nofollow=yes
-gl_cv_func_linkat_slash=yes
-gl_cv_func_link_follows_symlink=yes
-gl_cv_func_link_works=yes
-gl_cv_func_log10f_ieee=yes
-gl_cv_func_log10_ieee=yes
-gl_cv_func_log1pf_ieee=yes
-gl_cv_func_log1p_ieee=yes
-gl_cv_func_log1pl_ieee=yes
-gl_cv_func_log2f_ieee=yes
-gl_cv_func_log2_ieee=yes
-gl_cv_func_logf_ieee=yes
-gl_cv_func_log_ieee=yes
-gl_cv_func_lstat_dereferences_slashed_symlink=yes
-gl_cv_func_mbrlen_empty_input=yes
-gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes
-gl_cv_func_mbrtowc_empty_input=yes
-gl_cv_func_memchr_works=yes
-gl_cv_func_memmem_works_fast=yes
-gl_cv_func_mkdir_trailing_dot_works=yes
-gl_cv_func_mkdir_trailing_slash_works=yes
-gl_cv_func_mkfifo_works=yes
-gl_cv_func_mknod_works=yes
-gl_cv_func_modff_ieee=yes
-gl_cv_func_modf_ieee=yes
-gl_cv_func_modfl_ieee=yes
-gl_cv_func_nanosleep=yes
-gl_cv_func_open_directory_works=yes
-gl_cv_func_perror_works=yes
-gl_cv_func_posix_memalign_works=yes
-gl_cv_func_printf_directive_a=yes
-gl_cv_func_printf_directive_f=yes
-gl_cv_func_printf_directive_n=yes
-gl_cv_func_printf_enomem=yes
-gl_cv_func_printf_flag_zero=yes
-gl_cv_func_printf_infinite_long_double=yes
-gl_cv_func_printf_infinite=yes
-gl_cv_func_printf_sizes_c99=yes
-gl_cv_func_pselect_detects_ebadf=yes
-gl_cv_func_ptsname_sets_errno=yes
-gl_cv_func_readlink_works=yes
-gl_cv_func_readlink_trailing_slash=yes
-gl_cv_func_readlink_truncate=yes
-gl_cv_func_realpath_works=yes
-gl_cv_func_remainderf_ieee=yes
-gl_cv_func_remainder_ieee=yes
-gl_cv_func_remainderl_ieee=yes
-gl_cv_func_rename_dest_works=yes
-gl_cv_func_rename_link_works=yes
-gl_cv_func_rename_slash_dst_works=yes
-gl_cv_func_rename_slash_src_works=yes
-gl_cv_func_rmdir_works=yes
-gl_cv_func_roundf_ieee=yes
-gl_cv_func_round_ieee=yes
-gl_cv_func_select_detects_ebadf=yes
-gl_cv_func_setenv_works=yes
-gl_cv_func_signbit_gcc=yes
-gl_cv_func_signbit=yes
-gl_cv_func_signbit_builtins=yes
-gl_cv_func_sleep_works=yes
-gl_cv_func_snprintf_directive_n=yes
-gl_cv_func_snprintf_retval_c99=yes
-gl_cv_func_snprintf_truncation_c99=yes
-gl_cv_func_stat_dir_slash=yes
-gl_cv_func_stat_file_slash=yes
-gl_cv_func_stpncpy=yes
-gl_cv_func_strcasestr_linear=yes
-gl_cv_func_strchrnul_works=yes
-gl_cv_func_strerror_0_works=yes
-gl_cv_func_strstr_linear=yes
-gl_cv_func_strtod_works=yes
-gl_cv_func_strtold_works=yes
-gl_cv_func_strtoll_works=yes
-gl_cv_func_strtoull_works=yes
-gl_cv_func_svid_putenv=yes
-gl_cv_func_symlink_works=yes
-gl_cv_func_symlinkat_works=yes
-gl_cv_func_tdelete_works=yes
-gl_cv_func_truncf_ieee=yes
-gl_cv_func_trunc_ieee=yes
-gl_cv_func_truncl_ieee=yes
-gl_cv_func_tzset_clobber=no
-gl_cv_func_ungetc_works=yes
-gl_cv_func_unlink_busy_text=yes
-gl_cv_func_unlink_honors_slashes=yes
-gl_cv_func_unsetenv_works=yes
-gl_cv_func_usleep_works=yes
-gl_cv_func_utime_file_slash=yes
-gl_cv_func_utimensat_works=yes
-gl_cv_func_vsnprintf_posix=yes
-gl_cv_func_vsnprintf_zerosize_c99=yes
-gl_cv_func_vsprintf_posix=yes
-gl_cv_func_wcwidth_works=yes
-gl_cv_func_working_getdelim=yes
-gl_cv_func_working_mkstemp=yes
-gl_cv_func_working_mktime=yes
-gl_cv_func_working_strerror=yes
-gl_cv_struct_dirent_d_ino=yes
-gl_cv_func_getopt_gnu=yes
-gl_cv_pthread_rwlock_rdlock_prefer_writer=no"};
-
-# vim:filetype=sh textwidth=0
diff --git a/patches/algol68g-3.3.24_pre.local.patch b/patches/algol68g-3.3.24_pre.local.patch
new file mode 100644
index 00000000..0f79209d
--- /dev/null
+++ b/patches/algol68g-3.3.24_pre.local.patch
@@ -0,0 +1,449 @@
+diff -ru algol68g-3.3.23.orig/configure algol68g-3.3.23/configure
+--- algol68g-3.3.23.orig/configure 2023-09-16 22:21:31.000000000 +0200
++++ algol68g-3.3.23/configure 2023-09-18 15:18:17.972370415 +0200
+@@ -2889,6 +2889,20 @@
+ printf "%s\n" "linux" >&6; }
+ ;;
+ #
++# Midipix.
++#
++*-*-midipix*)
++
++printf "%s\n" "#define BUILD_MIDIPIX 1" >>confdefs.h
++
++
++printf "%s\n" "#define HAVE_IEEE_754 1" >>confdefs.h
++
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: midipix" >&5
++printf "%s\n" "midipix" >&6; }
++ ;;
++
++#
+ # Cygwin.
+ #
+ *86-*-cygwin* | *86_64-*-cygwin*)
+@@ -5001,43 +5015,6 @@
+ #
+ # Test on gcc capabilities.
+ #
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __attribute__((aligned())) supported" >&5
+-printf %s "checking __attribute__((aligned())) supported... " >&6; }
+-
+-if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-typedef int aint __attribute__((aligned(8)));
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "stop -- C compiler does not support __attribute__aligned directive
+-See \`config.log' for more details" "$LINENO" 5; }
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+ printf %s "checking for inline... " >&6; }
+ if test ${ac_cv_c_inline+y}
+@@ -5552,49 +5529,6 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+-#
+-# Test on glibc
+-#
+-
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking GNU C library" >&5
+-printf %s "checking GNU C library... " >&6; }
+-if test "$cross_compiling" = yes
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
+-printf "%s\n" "assuming no" >&6; }
+- enable_generic=yes
+-
+-
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-(void) gnu_get_libc_version();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-
+-printf "%s\n" "#define HAVE_GNU_C_LIB 1" >>confdefs.h
+-
+-
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_generic=yes
+-
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+
+ #
+ # We know about the platform now.
+@@ -5605,11 +5539,6 @@
+ enable_core=yes
+ fi
+
+-if test "x$enable_generic" = "xyes"; then
+- enable_standard_types=yes
+- enable_long_types=no
+-fi
+-
+ if test "x$enable_core" = "xyes"; then
+ enable_compiler=no
+ enable_curl=no
+@@ -6648,318 +6577,6 @@
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: optional headers and libraries..." >&5
+ printf "%s\n" "$as_me: optional headers and libraries..." >&6;}
+
+-if test "x$enable_standard_types" = "xyes"; then
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking int is 32 bit" >&5
+-printf %s "checking int is 32 bit... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (int) != 4;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking unsigned is 32 bit" >&5
+-printf %s "checking unsigned is 32 bit... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (unsigned) != 4;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking uint64_t is 64 bit" >&5
+-printf %s "checking uint64_t is 64 bit... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-#include <stdint.h>
+-int
+-main (void)
+-{
+-return sizeof (uint64_t) != 8;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_standard_types=no
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking double is 64 bit" >&5
+-printf %s "checking double is 64 bit... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (double) != 8;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking long double has 64-bit mantissa" >&5
+-printf %s "checking long double has 64-bit mantissa... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-#include <float.h>
+-int
+-main (void)
+-{
+-return LDBL_MANT_DIG != 64;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-
+-printf "%s\n" "#define HAVE_FLT80 1" >>confdefs.h
+-
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+-fi
+-
+-if test "x$enable_standard_types" = "xno"; then
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "stop -- unexpected lengths for int and/or double and/or uint64_t
+-See \`config.log' for more details" "$LINENO" 5; }
+-fi
+-
+-if test "x$enable_long_types" = "xyes"; then
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 64-bit long long int is available" >&5
+-printf %s "checking 64-bit long long int is available... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (long long) != 8;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 64-bit long long unsigned is available" >&5
+-printf %s "checking 64-bit long long unsigned is available... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (long long unsigned) != 8;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __float128 is available" >&5
+-printf %s "checking __float128 is available... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-return sizeof (__float128) != 16;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __complex128 is available" >&5
+-printf %s "checking __complex128 is available... " >&6; }
+- if test "$cross_compiling" = yes
+-then :
+- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
+-else $as_nop
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-typedef _Complex float __attribute__((mode(TC))) __complex128;
+-int
+-main (void)
+-{
+-return sizeof (__complex128) != 32;
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-else $as_nop
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+- enable_long_types=no
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+- conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-
+-fi
+
+ if test "x$enable_long_types" = "xyes"; then
+ if test "x$enable_quadmath" = "xyes"; then
diff --git a/patches/alsa_lib-1.1.8.local.patch b/patches/alsa_lib-1.1.8.local.patch
deleted file mode 100644
index 5ce2742b..00000000
--- a/patches/alsa_lib-1.1.8.local.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Only in alsa-lib-1.1.8/include: alsa
-diff -ru alsa-lib-1.1.8.orig/include/alsa-symbols.h alsa-lib-1.1.8/include/alsa-symbols.h
---- alsa-lib-1.1.8.orig/include/alsa-symbols.h 2019-01-07 13:55:38.000000000 +0100
-+++ alsa-lib-1.1.8/include/alsa-symbols.h 2019-03-24 06:05:21.993902732 +0100
-@@ -27,7 +27,12 @@
- #endif
-
- #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
-+#ifdef __midipix__
-+/* no .symver support */
-+#define INTERNAL(Name) INTERNAL_CONCAT2_2(, Name)
-+#else
- #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
-+#endif
-
- # define symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
-@@ -45,6 +50,8 @@
- #define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " ASM_NAME(#name)); \
- __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real))
-+#elif defined(__midipix__)
-+#define use_default_symbol_version(real, name, version) /* nothing */
- #else
- #define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " ASM_NAME(#name)); \
-diff -ru alsa-lib-1.1.8.orig/include/local.h alsa-lib-1.1.8/include/local.h
---- alsa-lib-1.1.8.orig/include/local.h 2019-01-07 13:55:38.000000000 +0100
-+++ alsa-lib-1.1.8/include/local.h 2019-03-23 19:06:39.073662943 +0100
-@@ -254,8 +254,10 @@
- /*
- */
- #define HAVE_GNU_LD
-+#ifndef __midipix__
- #define HAVE_ELF
- #define HAVE_ASM_PREVIOUS_DIRECTIVE
-+#endif
-
- /* Stolen from libc-symbols.h in GNU glibc */
-
diff --git a/patches/autoconf_2_64_host-2.64.local.patch b/patches/autoconf_2_64_host-2.64.local.patch
index c379c23e..29651f5c 100644
--- a/patches/autoconf_2_64_host-2.64.local.patch
+++ b/patches/autoconf_2_64_host-2.64.local.patch
@@ -58,3 +58,27 @@
-e 's|@M4[@]|$(M4)|g' \
-e 's|@AWK[@]|$(AWK)|g' \
-e 's|@VERSION[@]|$(VERSION)|g' \
+--- autoconf-2.69/man/Makefile.am 2022-12-27 15:22:52.186142107 +0800
++++ autoconf-2.69/man/Makefile.am.orig 2012-01-21 21:46:39.000000000 +0800
+@@ -58,7 +58,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
+--- autoconf-2.69/man/Makefile.in 2022-12-27 15:23:19.743692892 +0800
++++ autoconf-2.69/man/Makefile.in.orig 2012-04-25 10:40:26.000000000 +0800
+@@ -464,7 +464,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
diff --git a/patches/autoconf_2_69_host-2.69.local.patch b/patches/autoconf_2_69_host-2.69.local.patch
new file mode 100644
index 00000000..b3120b66
--- /dev/null
+++ b/patches/autoconf_2_69_host-2.69.local.patch
@@ -0,0 +1,84 @@
+--- autoconf-2.64/bin/Makefile.in.orig 2009-07-27 04:28:43.000000000 +0100
++++ autoconf-2.64/bin/Makefile.in 2021-05-06 23:48:43.296357404 +0100
+@@ -53,10 +53,10 @@
+ # 02110-1301, USA.
+
+ VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkglibexecdir = $(libexecdir)/@PACKAGE@
++pkgdatadir = $(datadir)/@PACKAGE@-2.69
++pkgincludedir = $(includedir)/@PACKAGE@-2.69
++pkglibdir = $(libdir)/@PACKAGE@-2.69
++pkglibexecdir = $(libexecdir)/@PACKAGE@-2.69
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+@@ -283,9 +283,9 @@
+ -e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+ -e 's|@prefix[@]|$(prefix)|g' \
+- -e 's|@autoconf-name[@]|'`echo autoconf | sed '$(transform)'`'|g' \
+- -e 's|@autoheader-name[@]|'`echo autoheader | sed '$(transform)'`'|g' \
+- -e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \
++ -e 's|@autoconf-name[@]|'`echo autoconf-2.69 | sed '$(transform)'`'|g' \
++ -e 's|@autoheader-name[@]|'`echo autoheader-2.69 | sed '$(transform)'`'|g' \
++ -e 's|@autom4te-name[@]|'`echo autom4te-2.69 | sed '$(transform)'`'|g' \
+ -e 's|@M4[@]|$(M4)|g' \
+ -e 's|@M4_DEBUGFILE[@]|$(M4_DEBUGFILE)|g' \
+ -e 's|@M4_GNU[@]|$(M4_GNU)|g' \
+--- autoconf-2.64/lib/Makefile.in.orig 2009-07-27 04:28:44.000000000 +0100
++++ autoconf-2.64/lib/Makefile.in 2021-05-07 00:21:50.717431704 +0100
+@@ -34,10 +34,10 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkglibexecdir = $(libexecdir)/@PACKAGE@
++pkgdatadir = $(datadir)/@PACKAGE@-2.69
++pkgincludedir = $(includedir)/@PACKAGE@-2.69
++pkglibdir = $(libdir)/@PACKAGE@-2.69
++pkglibexecdir = $(libexecdir)/@PACKAGE@-2.69
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+@@ -223,9 +223,9 @@
+ -e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+ -e 's|@prefix[@]|$(prefix)|g' \
+- -e 's|@autoconf-name[@]|'`echo autoconf | sed '$(transform)'`'|g' \
+- -e 's|@autoheader-name[@]|'`echo autoheader | sed '$(transform)'`'|g' \
+- -e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \
++ -e 's|@autoconf-name[@]|'`echo autoconf-2.69 | sed '$(transform)'`'|g' \
++ -e 's|@autoheader-name[@]|'`echo autoheader-2.69 | sed '$(transform)'`'|g' \
++ -e 's|@autom4te-name[@]|'`echo autom4te-2.69 | sed '$(transform)'`'|g' \
+ -e 's|@M4[@]|$(M4)|g' \
+ -e 's|@AWK[@]|$(AWK)|g' \
+ -e 's|@VERSION[@]|$(VERSION)|g' \
+--- autoconf-2.69/man/Makefile.am 2022-12-27 15:22:52.186142107 +0800
++++ autoconf-2.69/man/Makefile.am.orig 2012-01-21 21:46:39.000000000 +0800
+@@ -58,7 +58,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
+--- autoconf-2.69/man/Makefile.in 2022-12-27 15:23:19.743692892 +0800
++++ autoconf-2.69/man/Makefile.in.orig 2012-04-25 10:40:26.000000000 +0800
+@@ -464,7 +464,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
diff --git a/patches/autoconf_host-2.69.local.patch b/patches/autoconf_host-2.69.local.patch
new file mode 100644
index 00000000..339ca8d7
--- /dev/null
+++ b/patches/autoconf_host-2.69.local.patch
@@ -0,0 +1,24 @@
+--- autoconf-2.69/man/Makefile.am 2022-12-27 15:22:52.186142107 +0800
++++ autoconf-2.69/man/Makefile.am.orig 2012-01-21 21:46:39.000000000 +0800
+@@ -58,7 +58,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
+--- autoconf-2.69/man/Makefile.in 2022-12-27 15:23:19.743692892 +0800
++++ autoconf-2.69/man/Makefile.in.orig 2012-04-25 10:40:26.000000000 +0800
+@@ -464,7 +464,8 @@
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+- --output=$@.t `echo '$*' | sed 's,.*/,,'`
++ --output=$@.t \
++ --no-discard-stderr `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
diff --git a/patches/bash-5.1.16.local.patch b/patches/bash-5.2.21_pre.local.patch
index 677e7d9c..677e7d9c 100644
--- a/patches/bash-5.1.16.local.patch
+++ b/patches/bash-5.2.21_pre.local.patch
diff --git a/patches/bash_minipix-5.1.16.local.patch b/patches/bash_minipix-5.1.16.local.patch
deleted file mode 120000
index 14ec8331..00000000
--- a/patches/bash_minipix-5.1.16.local.patch
+++ /dev/null
@@ -1 +0,0 @@
-bash-5.1.16.local.patch \ No newline at end of file
diff --git a/patches/bash_minipix-5.2.21_pre.local.patch b/patches/bash_minipix-5.2.21_pre.local.patch
new file mode 120000
index 00000000..41db15fb
--- /dev/null
+++ b/patches/bash_minipix-5.2.21_pre.local.patch
@@ -0,0 +1 @@
+bash-5.2.21_pre.local.patch \ No newline at end of file
diff --git a/patches/bdwgc.local.patch b/patches/bdwgc.local.patch
index ede786e7..d7c4214d 100644
--- a/patches/bdwgc.local.patch
+++ b/patches/bdwgc.local.patch
@@ -1,48 +1,47 @@
-diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
-index b342883..174dd88 100644
---- a/include/private/gcconfig.h
-+++ b/include/private/gcconfig.h
-@@ -109,6 +109,21 @@ EXTERN_C_BEGIN
+diff -ru bdwgc.orig/include/private/gcconfig.h bdwgc/include/private/gcconfig.h
+--- bdwgc.orig/include/private/gcconfig.h 2023-02-07 14:35:54.616933050 +0100
++++ bdwgc/include/private/gcconfig.h 2023-02-07 14:41:11.028698667 +0100
+@@ -110,6 +110,20 @@
# define LINUX
# endif
+# if defined(__midipix__)
-+# define MIDIPIX
++# define MIDIPIX
++# include <fcntl.h>
++# include <sys/select.h>
+
-+# include <fcntl.h>
-+# include <sys/select.h>
++# include <psxtypes/psxtypes.h>
++# include <pemagine/pemagine.h>
++# include <ntapi/nt_thread.h>
+
-+# include <psxtypes/psxtypes.h>
-+# include <pemagine/pemagine.h>
-+# include <ntapi/nt_thread.h>
++int __gc_data_start_mark__[1];
++int __gc_data_end_mark__[1];
++#endif
+
-+ int __gc_data_start_mark__[1];
-+ int __gc_data_end_mark__[1];
-+
-+# endif
+
/* And one for NetBSD: */
# if defined(__NetBSD__)
- # define NETBSD
-@@ -350,6 +359,16 @@ EXTERN_C_BEGIN
- # define X86_64
- # define mach_type_known
+ # define NETBSD
+@@ -554,7 +554,7 @@
+ # define mach_type_known
+ # elif (defined(__i386__) || defined(i386) || defined(__X86__)) \
+ && (defined(ANY_BSD) || defined(DARWIN) || defined(EMBOX) \
+- || defined(LINUX) || defined(QNX))
++ || defined(LINUX) || defined(QNX) || defined(MIDIPIX))
+ # define I386
+ # define mach_type_known
+ # elif (defined(__ia64) || defined(__ia64__)) && defined(LINUX)
+@@ -607,7 +607,7 @@
+ # elif (defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) \
+ || defined(__X86_64__)) \
+ && (defined(ANY_BSD) || defined(DARWIN) || defined(LINUX) \
+- || defined(QNX))
++ || defined(QNX) || defined(MIDIPIX))
+ # define X86_64
+ # define mach_type_known
# endif
-+# if defined(MIDIPIX)
-+# if defined(__i386__)
-+# define I386
-+# define mach_type_known
-+# endif
-+# if defined(__x86_64__)
-+# define X86_64
-+# define mach_type_known
-+# endif
-+# endif
- # if defined(LINUX) && (defined(i386) || defined(__i386__))
- # define I386
- # define mach_type_known
-@@ -1542,6 +1561,13 @@ EXTERN_C_BEGIN
- EXTERN_C_BEGIN
+@@ -1464,6 +1478,13 @@
+ # define SOFT_VDB
# endif
# endif
+# ifdef MIDIPIX
@@ -53,28 +52,28 @@ index b342883..174dd88 100644
+# define USE_MMAP_ANON
+# endif
# ifdef CYGWIN32
- # define OS_TYPE "CYGWIN32"
# define WOW64_THREAD_CONTEXT_WORKAROUND
-@@ -2706,6 +2732,13 @@ EXTERN_C_BEGIN
- EXTERN_C_BEGIN
+ # define DATASTART ((ptr_t)GC_DATASTART) /* From gc.h */
+@@ -2259,6 +2280,13 @@
+ # define SOFT_VDB
# endif
# endif
+# ifdef MIDIPIX
-+# define OS_TYPE "MIDIPIX"
-+# define DATASTART ((ptr_t)__gc_data_start_mark__)
-+# define DATAEND ((ptr_t)__gc_data_end_mark__)
-+# define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base)
-+# define USE_MMAP_ANON
++# define OS_TYPE "MIDIPIX"
++# define DATASTART ((ptr_t)__gc_data_start_mark__)
++# define DATAEND ((ptr_t)__gc_data_end_mark__)
++# define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base)
++# define USE_MMAP_ANON
+# endif
# ifdef DARWIN
- # define OS_TYPE "DARWIN"
# define DARWIN_DONT_PARSE_STACK 1
-@@ -3111,7 +3144,7 @@ EXTERN_C_BEGIN
- #if defined(SVR4) || defined(LINUX) || defined(IRIX5) || defined(HPUX) \
- || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
- || defined(DGUX) || defined(BSD) || defined(HAIKU) || defined(HURD) \
-- || defined(AIX) || defined(DARWIN) || defined(OSF1)
-+ || defined(AIX) || defined(DARWIN) || defined(OSF1) || defined(MIDIPIX)
+ # define STACKBOTTOM ((ptr_t)0x7fff5fc00000)
+@@ -2676,7 +2676,7 @@
+ #if defined(AIX) || defined(ANY_BSD) || defined(BSD) || defined(DARWIN) \
+ || defined(DGUX) || defined(HAIKU) || defined(HPUX) || defined(HURD) \
+ || defined(IRIX5) || defined(LINUX) || defined(OSF1) || defined(QNX) \
+- || defined(SVR4)
++ || defined(SVR4) || defined(MIDIPIX)
# define UNIX_LIKE /* Basic Unix-like system calls work. */
#endif
diff --git a/patches/bind-9.13.2_pre.local.patch b/patches/bind-9.13.2_pre.local.patch
new file mode 100644
index 00000000..d7414e0a
--- /dev/null
+++ b/patches/bind-9.13.2_pre.local.patch
@@ -0,0 +1,29 @@
+diff -ru bind-9.13.2.orig/configure bind-9.13.2/configure
+--- bind-9.13.2.orig/configure 2018-07-03 09:51:40.000000000 +0200
++++ bind-9.13.2/configure 2023-09-15 14:41:57.738821487 +0200
+@@ -16616,10 +16616,6 @@
+ $as_echo "yes" >&6; }
+ DST_OPENSSL_LIBS="$DST_OPENSSL_LIBS -ldl"
+
+-else
+- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
+-$as_echo "unknown" >&6; }
+- as_fn_error $? "OpenSSL has unsupported dynamic loading" "$LINENO" 5
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+@@ -18148,14 +18144,6 @@
+
+
+
+-#
+-# NLS
+-#
+-ac_fn_c_check_func "$LINENO" "catgets" "ac_cv_func_catgets"
+-if test "x$ac_cv_func_catgets" = xyes; then :
+- $as_echo "#define HAVE_CATGETS 1" >>confdefs.h
+-
+-fi
+
+
+ #
diff --git a/patches/bmake.local.patch b/patches/bmake.local.patch
deleted file mode 100644
index 32bf1d36..00000000
--- a/patches/bmake.local.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- bmake/boot-strap.orig 2020-02-08 19:30:56.653565539 +0000
-+++ bmake/boot-strap 2020-02-11 11:45:44.426114614 +0000
-@@ -202,7 +202,6 @@
- fi
-
- op=all
--BMAKE=
-
- while :
- do
-@@ -391,7 +390,7 @@
- cd $Mydir &&
- MAKESYSPATH=$mksrc SRCTOP=$Mydir OBJTOP=$objdir \
- MAKEOBJDIR='${.CURDIR:S,${SRCTOP:tA},${OBJTOP:tA},}' \
-- ${BMAKE:-$objdir/bmake} -f $Mydir/Makefile "$@"
-+ ${BMAKE} -f $Mydir/Makefile TEST_MAKE="${BMAKE}" "$@"
- )
- }
-
---- bmake/install-sh.orig 2020-02-15 15:51:24.856000000 +0000
-+++ bmake/install-sh 2020-02-20 15:52:47.596000000 +0000
-@@ -1,3 +1,4 @@
-+#!/bin/sh
- :
- # NAME:
- # install.sh - portable version of install(1)
diff --git a/patches/bmake_host.local.patch b/patches/bmake_host.local.patch
deleted file mode 100644
index 7973489d..00000000
--- a/patches/bmake_host.local.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- bmake/install-sh.orig 2020-02-15 15:51:24.856000000 +0000
-+++ bmake/install-sh 2020-02-20 15:52:47.596000000 +0000
-@@ -1,3 +1,4 @@
-+#!/bin/sh
- :
- # NAME:
- # install.sh - portable version of install(1)
diff --git a/patches/bmake_host/gcc10.patch b/patches/bmake_host/gcc10.patch
deleted file mode 100644
index 18e3e13c..00000000
--- a/patches/bmake_host/gcc10.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ru bmake.orig/job.c bmake/job.c
---- bmake.orig/job.c 2020-04-09 14:03:57.232919836 +0200
-+++ bmake/job.c 2020-06-14 22:19:09.776490793 +0200
-@@ -180,6 +180,8 @@
- #define ABORT_WAIT 3 /* Waiting for jobs to finish */
- #define JOB_TOKENS "+EI+" /* Token to requeue for each abort state */
-
-+FILE *debug_file;
-+
- /*
- * this tracks the number of tokens currently "out" to build jobs.
- */
-diff -ru bmake.orig/make.h bmake/make.h
---- bmake.orig/make.h 2020-02-10 18:07:01.708744511 +0100
-+++ bmake/make.h 2020-06-14 22:18:24.965773603 +0200
-@@ -464,7 +464,7 @@
- * There is one bit per module. It is up to the module what debug
- * information to print.
- */
--FILE *debug_file; /* Output written here - default stdout */
-+extern FILE *debug_file; /* Output written here - default stdout */
- extern int debug;
- #define DEBUG_ARCH 0x00001
- #define DEBUG_COND 0x00002
diff --git a/patches/bochs-2.6.11.local.patch b/patches/bochs-2.8.local.patch
index a67d0dc4..1cc13e8a 100644
--- a/patches/bochs-2.6.11.local.patch
+++ b/patches/bochs-2.8.local.patch
@@ -1,15 +1,3 @@
-diff -ru bochs-2.6.11.orig/cpu/icache.h bochs-2.6.11/cpu/icache.h
---- bochs-2.6.11.orig/cpu/icache.h 2019-12-09 17:44:36.435957000 +0100
-+++ bochs-2.6.11/cpu/icache.h 2021-07-18 13:10:35.350797475 +0200
-@@ -28,7 +28,7 @@
-
- class bxPageWriteStampTable
- {
-- const Bit32u PHY_MEM_PAGES = 1024*1024;
-+ #define PHY_MEM_PAGES (1024*1024)
- Bit32u *fineGranularityMapping;
-
- public:
diff -ru bochs-2.6.9.orig/main.cc bochs-2.6.9/main.cc
--- bochs-2.6.9.orig/main.cc 2017-02-18 17:28:04.318635000 +0100
+++ bochs-2.6.9/main.cc 2021-07-18 01:15:37.859411673 +0200
@@ -30,8 +18,8 @@ diff -ru bochs-2.6.9.orig/configure bochs-2.6.9/configure
fi
case "$target" in
-- *-pc-windows* | *-pc-winnt* | *-cygwin* | *-mingw32*)
-+ *-pc-windows* | *-pc-winnt* | *-cygwin* | *-mingw32* | *-midipix*)
+- *-pc-windows* | *-pc-winnt* | *-cygwin* | *-mingw32* | *-msys)
++ *-pc-windows* | *-pc-winnt* | *-cygwin* | *-mingw32* | *-msys | *-midipix*)
NETLOW_OBJS="$NETLOW_OBJS eth_win32.o"
ethernet_modules="$ethernet_modules win32"
$as_echo "#define BX_NETMOD_WIN32 1" >>confdefs.h
diff --git a/patches/cdecl-13.0_pre.local.patch b/patches/cdecl-13.0_pre.local.patch
new file mode 100644
index 00000000..e575b83e
--- /dev/null
+++ b/patches/cdecl-13.0_pre.local.patch
@@ -0,0 +1,12 @@
+diff -ru cdecl-13.0.orig/configure cdecl-13.0/configure
+--- cdecl-13.0.orig/configure 2022-10-31 01:22:38.000000000 +0100
++++ cdecl-13.0/configure 2022-11-04 20:36:34.626729430 +0100
+@@ -6143,7 +6143,7 @@
+ printf %s "(cached) " >&6
+ else $as_nop
+ # Double quotes because $CC needs to be expanded
+- for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
++ for CPP in "$CC -E" "$CC -E -traditional-cpp"
+ do
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
diff --git a/patches/clang_host/clang-0001-Add-Alpine-Linux-distro.patch b/patches/clang_host/clang-0001-Add-Alpine-Linux-distro.patch
deleted file mode 100644
index 6cbed09d..00000000
--- a/patches/clang_host/clang-0001-Add-Alpine-Linux-distro.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 4559c66aabd8b56f7127c8b1f5d22f59d3ca2390 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 17:40:00 +0100
-Subject: [PATCH 1/7] Add Alpine Linux distro
-
----
- lib/Driver/ToolChains.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 99c7b8e..70b53bd 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -3374,6 +3374,7 @@ enum Distro {
- // NB: Releases of a particular Linux distro should be kept together
- // in this enum, because some tests are done by integer comparison against
- // the first and last known member in the family, e.g. IsRedHat().
-+ AlpineLinux,
- ArchLinux,
- DebianLenny,
- DebianSqueeze,
-@@ -3497,6 +3498,9 @@ static Distro DetectDistro(const Driver &D, llvm::Triple::ArchType Arch) {
- if (D.getVFS().exists("/etc/arch-release"))
- return ArchLinux;
-
-+ if (D.getVFS().exists("/etc/alpine-release"))
-+ return AlpineLinux;
-+
- return UnknownDistro;
- }
-
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0002-Use-z-relro-on-Alpine-Linux.patch b/patches/clang_host/clang-0002-Use-z-relro-on-Alpine-Linux.patch
deleted file mode 100644
index 090ec3d5..00000000
--- a/patches/clang_host/clang-0002-Use-z-relro-on-Alpine-Linux.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 1898d32d22fddf3ba6c88addbd2af0159600b506 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 17:41:23 +0100
-Subject: [PATCH 2/7] Use "-z relro" on Alpine Linux
-
----
- lib/Driver/ToolChains.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 70b53bd..46326f0 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -3667,7 +3667,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-
- Distro Distro = DetectDistro(D, Arch);
-
-- if (IsOpenSUSE(Distro) || IsUbuntu(Distro)) {
-+ if (IsOpenSUSE(Distro) || IsUbuntu(Distro) || Distro == AlpineLinux) {
- ExtraOpts.push_back("-z");
- ExtraOpts.push_back("relro");
- }
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch b/patches/clang_host/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
deleted file mode 100644
index 4dc9842f..00000000
--- a/patches/clang_host/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b880ea7037ea3232be9ba2e96cc179da92ea4b9c Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 17:43:51 +0100
-Subject: [PATCH 3/7] Use --hash-style=gnu for Alpine Linux
-
----
- lib/Driver/ToolChains.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 46326f0..6b0b31d 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -3687,8 +3687,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
- // ABI requires a mapping between the GOT and the symbol table.
- // Android loader does not support .gnu.hash.
- if (!IsMips && !IsAndroid) {
-- if (IsRedhat(Distro) || IsOpenSUSE(Distro) ||
-- (IsUbuntu(Distro) && Distro >= UbuntuMaverick))
-+ if (IsRedhat(Distro) || IsOpenSUSE(Distro) || Distro == AlpineLinux ||
-+ (IsUbuntu(Distro) && Distro >= UbuntuMaverick))
- ExtraOpts.push_back("--hash-style=gnu");
-
- if (IsDebian(Distro) || IsOpenSUSE(Distro) || Distro == UbuntuLucid ||
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0004-Add-musl-targets-and-dynamic-linker.patch b/patches/clang_host/clang-0004-Add-musl-targets-and-dynamic-linker.patch
deleted file mode 100644
index 6384b088..00000000
--- a/patches/clang_host/clang-0004-Add-musl-targets-and-dynamic-linker.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 4777c16fc6e717a852366fa2a447c852cca3b62d Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 19 Feb 2016 13:35:08 +0100
-Subject: [PATCH 4/7] Add musl targets and dynamic linker
-
----
- lib/Basic/Targets.cpp | 2 ++
- lib/CodeGen/TargetInfo.cpp | 6 +++++-
- lib/Driver/ToolChains.cpp | 15 ++++++++++-----
- lib/Driver/Tools.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++-
- 4 files changed, 60 insertions(+), 7 deletions(-)
-
-diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
-index af8aea0..1e27c7a 100644
---- a/lib/Basic/Targets.cpp
-+++ b/lib/Basic/Targets.cpp
-@@ -4513,6 +4513,8 @@ public:
- case llvm::Triple::Android:
- case llvm::Triple::GNUEABI:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABI:
-+ case llvm::Triple::MuslEABIHF:
- setABI("aapcs-linux");
- break;
- case llvm::Triple::EABIHF:
-diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
-index 3d1ddef..f6b3474 100644
---- a/lib/CodeGen/TargetInfo.cpp
-+++ b/lib/CodeGen/TargetInfo.cpp
-@@ -4757,6 +4757,8 @@ public:
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABI:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABI:
-+ case llvm::Triple::MuslEABIHF:
- return true;
- default:
- return false;
-@@ -4767,6 +4769,7 @@ public:
- switch (getTarget().getTriple().getEnvironment()) {
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- return true;
- default:
- return false;
-@@ -7492,7 +7495,8 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
- Kind = ARMABIInfo::AAPCS16_VFP;
- else if (CodeGenOpts.FloatABI == "hard" ||
- (CodeGenOpts.FloatABI != "soft" &&
-- Triple.getEnvironment() == llvm::Triple::GNUEABIHF))
-+ (Triple.getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ Triple.getEnvironment() == llvm::Triple::MuslEABIHF)))
- Kind = ARMABIInfo::AAPCS_VFP;
-
- return *(TheTargetCodeGenInfo = new ARMTargetCodeGenInfo(Types, Kind));
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 6b0b31d..0db9644 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -1523,7 +1523,8 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
- LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
-- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
-+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
- TripleAliases.append(begin(ARMHFTriples), end(ARMHFTriples));
- } else {
- TripleAliases.append(begin(ARMTriples), end(ARMTriples));
-@@ -1532,7 +1533,8 @@ bool Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
- case llvm::Triple::armeb:
- case llvm::Triple::thumbeb:
- LibDirs.append(begin(ARMebLibDirs), end(ARMebLibDirs));
-- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
-+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
- TripleAliases.append(begin(ARMebHFTriples), end(ARMebHFTriples));
- } else {
- TripleAliases.append(begin(ARMebTriples), end(ARMebTriples));
-@@ -3528,7 +3530,8 @@ static std::string getMultiarchTriple(const Driver &D,
- // regardless of what the actual target triple is.
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
-- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
-+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
-+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
- if (D.getVFS().exists(SysRoot + "/lib/arm-linux-gnueabihf"))
- return "arm-linux-gnueabihf";
- } else {
-@@ -3538,7 +3541,8 @@ static std::string getMultiarchTriple(const Driver &D,
- break;
- case llvm::Triple::armeb:
- case llvm::Triple::thumbeb:
-- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
-+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
-+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
- if (D.getVFS().exists(SysRoot + "/lib/armeb-linux-gnueabihf"))
- return "armeb-linux-gnueabihf";
- } else {
-@@ -3969,7 +3973,8 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
- break;
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
-- if (getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
-+ if (getTriple().getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ getTriple().getEnvironment() == llvm::Triple::MuslEABIHF)
- MultiarchIncludeDirs = ARMHFMultiarchIncludeDirs;
- else
- MultiarchIncludeDirs = ARMMultiarchIncludeDirs;
-diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
-index b7ac24f..ea1ce6f 100644
---- a/lib/Driver/Tools.cpp
-+++ b/lib/Driver/Tools.cpp
-@@ -712,6 +712,7 @@ arm::FloatABI arm::getARMFloatABI(const ToolChain &TC, const ArgList &Args) {
- case llvm::Triple::FreeBSD:
- switch (Triple.getEnvironment()) {
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- ABI = FloatABI::Hard;
- break;
- default:
-@@ -725,6 +726,7 @@ arm::FloatABI arm::getARMFloatABI(const ToolChain &TC, const ArgList &Args) {
- switch (Triple.getEnvironment()) {
- case llvm::Triple::GNUEABIHF:
- case llvm::Triple::EABIHF:
-+ case llvm::Triple::MuslEABIHF:
- ABI = FloatABI::Hard;
- break;
- case llvm::Triple::GNUEABI:
-@@ -968,6 +970,8 @@ void Clang::AddARMTargetArgs(const llvm::Triple &Triple, const ArgList &Args,
- case llvm::Triple::Android:
- case llvm::Triple::GNUEABI:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABI:
-+ case llvm::Triple::MuslEABIHF:
- ABIName = "aapcs-linux";
- break;
- case llvm::Triple::EABIHF:
-@@ -7857,6 +7861,8 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::GNUEABIHF:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABIHF:
-+ case llvm::Triple::MuslEABI:
- case llvm::Triple::EABI:
- CmdArgs.push_back("-meabi=5");
- break;
-@@ -8199,10 +8205,12 @@ void netbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::EABI:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABI:
- CmdArgs.push_back("armelf_nbsd_eabi");
- break;
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- CmdArgs.push_back("armelf_nbsd_eabihf");
- break;
- default:
-@@ -8219,10 +8227,12 @@ void netbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::EABI:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABI:
- CmdArgs.push_back("armelfb_nbsd_eabi");
- break;
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- CmdArgs.push_back("armelfb_nbsd_eabihf");
- break;
- default:
-@@ -8623,11 +8633,43 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D,
- CmdArgs.push_back("-ldl");
- }
-
-+static std::string getMuslDynamicLinker(const llvm::Triple::ArchType Arch,
-+ const llvm::Triple::EnvironmentType Env) {
-+ switch (Arch) {
-+ case llvm::Triple::arm:
-+ case llvm::Triple::thumb:
-+ return Env == llvm::Triple::MuslEABIHF ?
-+ "/lib/ld-musl-armhf.so.1" : "/lib/ld-musl-arm.so.1";
-+ case llvm::Triple::armeb:
-+ case llvm::Triple::thumbeb:
-+ return Env == llvm::Triple::MuslEABIHF ?
-+ "/lib/ld-musl-armebhf.so.1" : "/lib/ld-musl-armeb.so.1";
-+ case llvm::Triple::aarch64:
-+ return "/lib/ld-musl-aarch64.so.1";
-+ case llvm::Triple::aarch64_be:
-+ return "/lib/ld-musl-aarch64_be.so.1";
-+ case llvm::Triple::mips:
-+ return "/lib/ld-musl-mips.so.1";
-+ case llvm::Triple::mipsel:
-+ return "/lib/ld-musl-mipsel.so.1";
-+ case llvm::Triple::ppc:
-+ return "/lib/ld-musl-powerpc.so.1";
-+ case llvm::Triple::x86:
-+ return "/lib/ld-musl-i386.so.1";
-+//case llvm::Triple::x86_64:
-+ default:
-+ return "/lib/ld-musl-x86_64.so.1";
-+ }
-+ return NULL;
-+}
-+
- static std::string getLinuxDynamicLinker(const ArgList &Args,
- const toolchains::Linux &ToolChain) {
- const llvm::Triple::ArchType Arch = ToolChain.getArch();
-
-- if (ToolChain.getTriple().isAndroid()) {
-+ if (ToolChain.getTriple().isMusl()) {
-+ return getMuslDynamicLinker(Arch, ToolChain.getTriple().getEnvironment());
-+ } else if (ToolChain.getTriple().isAndroid()) {
- if (ToolChain.getTriple().isArch64Bit())
- return "/system/bin/linker64";
- else
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch b/patches/clang_host/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
deleted file mode 100644
index a1d49eeb..00000000
--- a/patches/clang_host/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From efbdf70c883a356106fc1bcb1c2917ec6c0a6157 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 23 Feb 2016 09:35:26 +0100
-Subject: [PATCH 5/7] Enable PIE by default for alpine linux
-
-Alpine Linux uses PIE by default.
----
- lib/Driver/ToolChains.cpp | 5 ++++-
- lib/Driver/Tools.cpp | 4 +++-
- test/Driver/pic.c | 12 ++++++++++++
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 0db9644..82449bf 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4143,7 +4143,10 @@ void Linux::AddCudaIncludeArgs(const ArgList &DriverArgs,
- }
- }
-
--bool Linux::isPIEDefault() const { return getSanitizerArgs().requiresPIE(); }
-+bool Linux::isPIEDefault() const {
-+ return getSanitizerArgs().requiresPIE() ||
-+ Linux::getTriple().getVendorName().compare("alpine") == 0;
-+}
-
- SanitizerMask Linux::getSupportedSanitizers() const {
- const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
-diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
-index ea1ce6f..8fd3649 100644
---- a/lib/Driver/Tools.cpp
-+++ b/lib/Driver/Tools.cpp
-@@ -7919,7 +7919,9 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
- if (!D.SysRoot.empty())
- CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
-
-- if (IsPIE)
-+ if (Args.hasArg(options::OPT_nopie))
-+ CmdArgs.push_back("-nopie");
-+ else if (IsPIE)
- CmdArgs.push_back("-pie");
-
- if (Args.hasArg(options::OPT_static)) {
-diff --git a/test/Driver/pic.c b/test/Driver/pic.c
-index aeb2ee3..9b8e0f6 100644
---- a/test/Driver/pic.c
-+++ b/test/Driver/pic.c
-@@ -243,6 +243,18 @@
- // RUN: %clang %s -target i386-pc-openbsd -nopie -### 2>&1 \
- // RUN: | FileCheck %s --check-prefix=CHECK-NOPIE-LD
- //
-+// On Alpine Linux, we want similar PIE-by-default behavior
-+// RUN: %clang -c %s -target x86_64-alpine-linux-musl -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target i686-alpine-linux-musl -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target armv6-alpine-linux-musleabihf -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target armv7-alpine-linux-musleabihf -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang %s -target x86_64-alpine-linux-musl -nopie -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-NOPIE-LD
-+//
- // On Android PIC is enabled by default
- // RUN: %clang -c %s -target i686-linux-android -### 2>&1 \
- // RUN: | FileCheck %s --check-prefix=CHECK-PIC2
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch b/patches/clang_host/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
deleted file mode 100644
index a7ad2d8c..00000000
--- a/patches/clang_host/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e089ab63916eada060fdfffbf7422c9b20bafe84 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 23 Feb 2016 10:08:17 +0000
-Subject: [PATCH 6/7] Link with -z now by default for Alpine Linux
-
----
- lib/Driver/ToolChains.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 82449bf..1a8ebf5 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -3671,6 +3671,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-
- Distro Distro = DetectDistro(D, Arch);
-
-+ if (Distro == AlpineLinux) {
-+ ExtraOpts.push_back("-z");
-+ ExtraOpts.push_back("now");
-+ }
-+
- if (IsOpenSUSE(Distro) || IsUbuntu(Distro) || Distro == AlpineLinux) {
- ExtraOpts.push_back("-z");
- ExtraOpts.push_back("relro");
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch b/patches/clang_host/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch
deleted file mode 100644
index a4cb9261..00000000
--- a/patches/clang_host/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From da8ea517105fff702f936695dcfae844ac85260d Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 23 Feb 2016 10:16:54 +0000
-Subject: [PATCH 7/7] Enable stack protector by default for alpine linux
-
----
- lib/Driver/ToolChains.cpp | 7 +++++++
- lib/Driver/ToolChains.h | 1 +
- test/Driver/stack-protector.c | 14 ++++++++++++++
- 3 files changed, 22 insertions(+)
-
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
-index 1a8ebf5..59b7601 100644
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4193,6 +4193,13 @@ void Linux::addProfileRTLibs(const llvm::opt::ArgList &Args,
- ToolChain::addProfileRTLibs(Args, CmdArgs);
- }
-
-+unsigned Linux::GetDefaultStackProtectorLevel(bool KernelOrKext) const {
-+ StringRef VendorName = Linux::getTriple().getVendorName();
-+ if (VendorName.compare("alpine") == 0)
-+ return 2;
-+ return 1;
-+}
-+
- /// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
-
- DragonFly::DragonFly(const Driver &D, const llvm::Triple &Triple,
-diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
-index f940e58..977ea66 100644
---- a/lib/Driver/ToolChains.h
-+++ b/lib/Driver/ToolChains.h
-@@ -796,6 +796,7 @@ public:
- void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs,
- llvm::opt::ArgStringList &CC1Args) const override;
- bool isPIEDefault() const override;
-+ unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override;
- SanitizerMask getSupportedSanitizers() const override;
- void addProfileRTLibs(const llvm::opt::ArgList &Args,
- llvm::opt::ArgStringList &CmdArgs) const override;
-diff --git a/test/Driver/stack-protector.c b/test/Driver/stack-protector.c
-index 487af56..2fbd39a 100644
---- a/test/Driver/stack-protector.c
-+++ b/test/Driver/stack-protector.c
-@@ -24,6 +24,20 @@
- // SSP-ALL: "-stack-protector" "3"
- // SSP-ALL-NOT: "-stack-protector-buffer-size"
-
-+// RUN: %clang -target x86_64-alpine-linux-musl -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE
-+// ALPINE: "-stack-protector" "2"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_SPS
-+// ALPINE_SPS: "-stack-protector" "2"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_ALL
-+// ALPINE_ALL: "-stack-protector" "3"
-+// ALPINE_ALL-NOT: "-stack-protector-buffer-size"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_NOSSP
-+// ALPINE_NOSSP-NOT: "-stack-protector"
-+// ALPINE_NOSSP-NOT: "-stack-protector-buffer-size"
-+
- // RUN: %clang -target x86_64-scei-ps4 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4
- // RUN: %clang -target x86_64-scei-ps4 -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4
- // SSP-PS4: "-stack-protector" "2"
---
-2.7.3
-
diff --git a/patches/clang_host/clang-0008-LLVM_PREFIX.patch b/patches/clang_host/clang-0008-LLVM_PREFIX.patch
deleted file mode 100644
index 8599276c..00000000
--- a/patches/clang_host/clang-0008-LLVM_PREFIX.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- cfe-3.8.1.src/lib/Driver/CMakeLists.txt.orig 2015-07-02 04:45:27.000000000 +0000
-+++ cfe-3.8.1.src/lib/Driver/CMakeLists.txt 2017-01-19 19:22:36.869663323 +0000
-@@ -3,6 +3,8 @@
- Support
- )
-
-+add_definitions(-DLLVM_PREFIX="${LLVM_PREFIX}")
-+
- add_clang_library(clangDriver
- Action.cpp
- Compilation.cpp
diff --git a/patches/clzip-1.13_pre.local.patch b/patches/clzip-1.13_pre.local.patch
deleted file mode 100644
index 57175290..00000000
--- a/patches/clzip-1.13_pre.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru clzip-1.12.orig/configure clzip-1.12/configure
---- clzip-1.12.orig/configure 2021-01-01 16:37:55.000000000 +0100
-+++ clzip-1.12/configure 2021-01-13 12:42:25.898898082 +0100
-@@ -22,7 +22,7 @@
- mandir='$(datarootdir)/man'
- CC=gcc
- CPPFLAGS=
--CFLAGS='-Wall -W -O2'
-+CFLAGS ?= '-Wall -W -O2'
- LDFLAGS=
-
- # checking whether we are using GNU C.
diff --git a/patches/clzip-1.14_pre.local.patch b/patches/clzip-1.14_pre.local.patch
new file mode 100644
index 00000000..253e1556
--- /dev/null
+++ b/patches/clzip-1.14_pre.local.patch
@@ -0,0 +1,11 @@
+diff -ru clzip-1.14.orig/configure clzip-1.14/configure
+--- clzip-1.14.orig/configure 2024-01-22 13:59:34.000000000 +0100
++++ clzip-1.14/configure 2024-02-27 11:25:03.061274706 +0100
+@@ -22,7 +22,6 @@
+ mandir='$(datarootdir)/man'
+ CC=gcc
+ CPPFLAGS=
+-CFLAGS='-Wall -W -O2'
+ LDFLAGS=
+ MAKEINFO=makeinfo
+
diff --git a/patches/cmake_host-3.7.2.local.patch b/patches/cmake_host-3.7.2.local.patch
index 84c27971..978098c3 100644
--- a/patches/cmake_host-3.7.2.local.patch
+++ b/patches/cmake_host-3.7.2.local.patch
@@ -1,3 +1,36 @@
+diff -ru cmake-3.7.2.orig/Utilities/cmcurl/lib/vtls/openssl.c cmake-3.7.2/Utilities/cmcurl/lib/vtls/openssl.c
+--- cmake-3.7.2.orig/Utilities/cmcurl/lib/vtls/openssl.c 2017-01-13 15:05:42.000000000 +0100
++++ cmake-3.7.2/Utilities/cmcurl/lib/vtls/openssl.c 2022-11-04 12:08:55.736358938 +0100
+@@ -108,8 +108,7 @@
+ #define OPENSSL_NO_SSL2
+ #endif
+
+-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && /* OpenSSL 1.1.0+ */ \
+- !defined(LIBRESSL_VERSION_NUMBER)
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) /* OpenSSL 1.1.0+ */
+ #define SSLeay_add_ssl_algorithms() SSL_library_init()
+ #define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
+ #define HAVE_X509_GET0_EXTENSIONS 1 /* added in 1.1.0 -pre1 */
+@@ -117,8 +116,7 @@
+ #define HAVE_OPAQUE_RSA_DSA_DH 1 /* since 1.1.0 -pre5 */
+ #endif
+
+-#if (OPENSSL_VERSION_NUMBER >= 0x1000200fL) && /* 1.0.2 or later */ \
+- !defined(LIBRESSL_VERSION_NUMBER)
++#if (OPENSSL_VERSION_NUMBER >= 0x1000200fL) /* 1.0.2 or later */
+ #define HAVE_X509_GET0_SIGNATURE 1
+ #endif
+
+@@ -1315,8 +1313,7 @@
+ ch = SSL_get_peer_cert_chain(connssl->handle);
+ st = SSL_CTX_get_cert_store(connssl->ctx);
+
+-#if ((OPENSSL_VERSION_NUMBER <= 0x1000201fL) /* Fixed after 1.0.2a */ || \
+- defined(LIBRESSL_VERSION_NUMBER))
++#if (OPENSSL_VERSION_NUMBER <= 0x1000201fL) /* Fixed after 1.0.2a */
+ /* The authorized responder cert in the OCSP response MUST be signed by the
+ peer cert's issuer (see RFC6960 section 4.2.2.2). If that's a root cert,
+ no problem, but if it's an intermediate cert OpenSSL has a bug where it
diff -ru cmake-3.7.2.orig/Source/cmServerProtocol.cxx cmake-3.7.2/Source/cmServerProtocol.cxx
--- cmake-3.7.2.orig/Source/cmServerProtocol.cxx 2017-01-13 15:05:41.000000000 +0100
+++ cmake-3.7.2/Source/cmServerProtocol.cxx 2021-09-10 19:16:52.942413410 +0200
diff --git a/patches/coreutils/no-chown-cp.patch b/patches/coreutils/no-chown-cp.patch
new file mode 100644
index 00000000..7b68a140
--- /dev/null
+++ b/patches/coreutils/no-chown-cp.patch
@@ -0,0 +1,54 @@
+diff -ru coreutils-9.1.orig/src/copy.c coreutils-9.1/src/copy.c
+--- coreutils-9.1.orig/src/copy.c 2022-04-15 15:53:28.000000000 +0200
++++ coreutils-9.1/src/copy.c 2023-02-07 21:10:41.696869950 +0100
+@@ -859,6 +859,7 @@
+ }
+ }
+
++#if 0
+ if (! chown_failure_ok (x))
+ {
+ error (0, errno, _("failed to preserve ownership for %s"),
+@@ -866,6 +867,7 @@
+ if (x->require_preserve)
+ return -1;
+ }
++#endif
+
+ return 0;
+ }
+@@ -2877,6 +2879,7 @@
+ if (x->preserve_security_context)
+ restore_default_fscreatecon_or_die ();
+
++#if 0
+ if (x->preserve_ownership)
+ {
+ /* Preserve the owner and group of the just-'copied'
+@@ -2900,6 +2903,7 @@
+ preserving owner/group is a potential security problem. */
+ }
+ }
++#endif
+ }
+ else
+ {
+diff -ru coreutils-9.1.orig/src/cp.c coreutils-9.1/src/cp.c
+--- coreutils-9.1.orig/src/cp.c 2023-02-07 21:11:39.720870709 +0100
++++ coreutils-9.1/src/cp.c 2023-02-07 21:06:22.167995788 +0100
+@@ -303,6 +303,7 @@
+ }
+ }
+
++#if 0
+ if (x->preserve_ownership)
+ {
+ if (lchownat (dst_dirfd, src_name, p->st.st_uid, p->st.st_gid) != 0)
+@@ -318,6 +319,7 @@
+ ignore_value (lchownat (dst_dirfd, src_name, -1, p->st.st_gid));
+ }
+ }
++#endif
+
+ if (x->preserve_mode)
+ {
diff --git a/patches/coreutils/uptime.patch b/patches/coreutils/uptime.patch
new file mode 100644
index 00000000..2f2edcc0
--- /dev/null
+++ b/patches/coreutils/uptime.patch
@@ -0,0 +1,42 @@
+diff -ru coreutils-9.1.orig/src/uptime.c coreutils-9.1/src/uptime.c
+--- coreutils-9.1.orig/src/uptime.c 2022-04-08 13:22:18.000000000 +0200
++++ coreutils-9.1/src/uptime.c 2023-09-06 12:26:22.909930119 +0200
+@@ -30,6 +30,11 @@
+ # include <OS.h>
+ #endif
+
++#ifdef __midipix__
++#undef sa_handler
++#include <ntapi/ntapi.h>
++#endif
++
+ #include "c-strtod.h"
+ #include "die.h"
+ #include "error.h"
+@@ -59,6 +64,26 @@
+ struct tm *tmn;
+ double avg[3];
+ int loads;
++#ifdef __midipix__
++ ntapi_vtbl *__ntapi;
++ nt_system_time_of_day_information stodi;
++
++ if((ntapi_init(&__ntapi)) == 0)
++ {
++ char buf[BUFSIZ];
++ long long nt_time;
++ __ntapi->zw_query_system_information(NT_SYSTEM_TIME_OF_DAY_INFORMATION, &stodi, sizeof(stodi), NULL);
++ nt_time = (stodi.current_time.quad - stodi.boot_time.quad) / 100000ULL;
++ sprintf(buf, "%u.%02u", nt_time / 100, nt_time % 100);
++ {
++ char *end_ptr;
++ double upsecs = c_strtod (buf, &end_ptr);
++ if (buf != end_ptr)
++ uptime = (0 <= upsecs && upsecs < TYPE_MAXIMUM (time_t)
++ ? upsecs : -1);
++ }
++ }
++#endif
+ #ifdef HAVE_PROC_UPTIME
+ FILE *fp;
+
diff --git a/patches/coreutils_minipix b/patches/coreutils_minipix
new file mode 120000
index 00000000..a4b710b1
--- /dev/null
+++ b/patches/coreutils_minipix
@@ -0,0 +1 @@
+coreutils \ No newline at end of file
diff --git a/patches/cssc-1.4.1_pre.local.patch b/patches/cssc-1.4.1_pre.local.patch
index 4f69e993..beec73e3 100644
--- a/patches/cssc-1.4.1_pre.local.patch
+++ b/patches/cssc-1.4.1_pre.local.patch
@@ -1,3 +1,26 @@
+diff -ru CSSC-1.4.1.orig/src/Makefile.in CSSC-1.4.1/src/Makefile.in
+--- CSSC-1.4.1.orig/src/Makefile.in 2019-05-07 13:44:57.000000000 +0200
++++ CSSC-1.4.1/src/Makefile.in 2024-03-10 17:07:33.463901630 +0100
+@@ -1199,8 +1199,8 @@
+ generic_CPPFLAGS = -I ../gl/lib -I $(srcdir)/../gl/lib
+ AM_CPPFLAGS = $(generic_CPPFLAGS)
+ AM_CFLAGS = "-DPREFIX=\"$(csscutildir)/\"" $(generic_CPPFLAGS)
+-AM_LDFLAGS = -L../gl/lib
+-LDADD = -lgnulib
++AM_LDFLAGS =
++LDADD = ../gl/lib/libgnulib.la
+ AM_CXXFLAGS = $(WARN_CFLAGS)
+ noinst_LIBRARIES = libcssc.a
+ csscutil_SCRIPTS = sccsdiff
+@@ -1271,7 +1271,7 @@
+ rmdel_LDADD = libcssc.a $(LIBOBJS)
+ prt_LDADD = libcssc.a $(LIBOBJS)
+ val_LDADD = libcssc.a $(LIBOBJS)
+-sccs_LDADD = libcssc.a $(LIBOBJS) -lgnulib
++sccs_LDADD = libcssc.a $(LIBOBJS) ../gl/lib/libgnulib.la
+ all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
diff -ru CSSC-1.4.1.orig/configure CSSC-1.4.1/configure
--- CSSC-1.4.1.orig/configure 2019-05-07 13:44:57.000000000 +0200
+++ CSSC-1.4.1/configure 2021-04-08 14:11:56.935465623 +0200
diff --git a/patches/curl-7.83.1.local.patch b/patches/curl-7.83.1.local.patch
deleted file mode 100644
index 365d6ab1..00000000
--- a/patches/curl-7.83.1.local.patch
+++ /dev/null
@@ -1,2192 +0,0 @@
---- curl-7.83.1/configure.orig 2022-05-09 11:03:42.000000000 +0200
-+++ curl-7.83.1/configure 2022-05-11 16:30:58.671831912 +0200
-@@ -15337,6 +15337,16 @@
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-+midipix)
-+ dynamic_linker='ld'
-+ library_names_spec='$libname.lib.a'
-+ need_lib_prefix=no
-+ need_version=no
-+ shlibpath_overrides_runpath=yes
-+ shrext_cmds=.so
-+ version_type=windows
-+ ;;
-+
- netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
-@@ -17792,2132 +17802,6 @@
- return 0
- }
-
--
-- #
-- if test "$compiler_id" != "unknown"; then
-- #
-- tmp_save_CPPFLAGS="$CPPFLAGS"
-- tmp_save_CFLAGS="$CFLAGS"
-- tmp_CPPFLAGS=""
-- tmp_CFLAGS=""
-- #
-- case "$compiler_id" in
-- #
-- CLANG)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS -Qunused-arguments"
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-pointer-bool-conversion"
-- ;;
-- #
-- DEC_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS -std1"
-- tmp_CFLAGS="$tmp_CFLAGS -noansi_alias"
-- tmp_CFLAGS="$tmp_CFLAGS -warnprotos"
-- tmp_CFLAGS="$tmp_CFLAGS -msg_fatal toofewargs,toomanyargs"
-- ;;
-- #
-- GNU_C)
-- #
-- if test "$compiler_num" -ge "295"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Werror-implicit-function-declaration"
-- fi
-- ;;
-- #
-- HP_UX_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS -z"
-- tmp_CFLAGS="$tmp_CFLAGS +W 4227,4255"
-- ;;
-- #
-- IBM_C)
-- #
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -qthreaded"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -qnoansialias"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -qhalt=e"
-- ;;
-- #
-- INTEL_UNIX_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS -std=gnu89"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -we140,147,165,266"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -wd279,981,1469"
-- ;;
-- #
-- INTEL_WINDOWS_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- LCC)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS -n"
-- ;;
-- #
-- SGI_MIPS_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- SGI_MIPSPRO_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- SUNPRO_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- TINY_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- esac
-- #
-- squeeze tmp_CPPFLAGS
-- squeeze tmp_CFLAGS
-- #
-- if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5
--printf %s "checking if compiler accepts some basic options... " >&6; }
-- CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
-- CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
-- squeeze CPPFLAGS
-- squeeze CFLAGS
--
-- tmp_compiler_works="unknown"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/cc-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-- if test "$tmp_compiler_works" = "yes"; then
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_link "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/link-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam \
-- conftest$ac_exeext conftest.$ac_ext
-- fi
-- if test "x$cross_compiling" != "xyes" &&
-- test "$tmp_compiler_works" = "yes"; then
--
-- case $host_os in
-- darwin*)
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- ;;
-- *)
-- old=$LD_LIBRARY_PATH
-- LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
-- export LD_LIBRARY_PATH
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- LD_LIBRARY_PATH=$old # restore
-- ;;
-- esac
--
-- fi
-- if test "$tmp_compiler_works" = "yes"; then
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--printf "%s\n" "yes" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
--printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
--
-- else
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
--printf "%s\n" "no" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
--printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
-- CPPFLAGS="$tmp_save_CPPFLAGS"
-- CFLAGS="$tmp_save_CFLAGS"
--
-- fi
--
-- fi
-- #
-- fi
--
--
-- #
-- if test "$compiler_id" != "unknown"; then
-- #
-- tmp_save_CFLAGS="$CFLAGS"
-- tmp_save_CPPFLAGS="$CPPFLAGS"
-- #
-- tmp_options=""
-- tmp_CFLAGS="$CFLAGS"
-- tmp_CPPFLAGS="$CPPFLAGS"
-- #
-- if test "$want_debug" = "yes"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5
--printf %s "checking if compiler accepts debug enabling options... " >&6; }
-- tmp_options="$flags_dbg_yes"
-- fi
-- #
-- if test "$flags_prefer_cppflags" = "yes"; then
-- CPPFLAGS="$tmp_CPPFLAGS $tmp_options"
-- CFLAGS="$tmp_CFLAGS"
-- else
-- CPPFLAGS="$tmp_CPPFLAGS"
-- CFLAGS="$tmp_CFLAGS $tmp_options"
-- fi
-- squeeze CPPFLAGS
-- squeeze CFLAGS
-- fi
--
--
-- #
-- if test "$compiler_id" != "unknown"; then
-- #
-- tmp_save_CFLAGS="$CFLAGS"
-- tmp_save_CPPFLAGS="$CPPFLAGS"
-- #
-- tmp_options=""
-- tmp_CFLAGS="$CFLAGS"
-- tmp_CPPFLAGS="$CPPFLAGS"
-- honor_optimize_option="yes"
-- #
-- #
-- if test "$want_optimize" = "assume_no" ||
-- test "$want_optimize" = "assume_yes"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5
--printf %s "checking if compiler optimizer assumed setting might be used... " >&6; }
--
--
-- ac_var_match_word="no"
-- for word1 in $tmp_CFLAGS; do
-- for word2 in $flags_opt_all; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "yes"; then
--
-- honor_optimize_option="no"
--
--
-- fi
--
--
--
-- ac_var_match_word="no"
-- for word1 in $tmp_CPPFLAGS; do
-- for word2 in $flags_opt_all; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "yes"; then
--
-- honor_optimize_option="no"
--
--
-- fi
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5
--printf "%s\n" "$honor_optimize_option" >&6; }
-- if test "$honor_optimize_option" = "yes"; then
-- if test "$want_optimize" = "assume_yes"; then
-- want_optimize="yes"
-- fi
-- if test "$want_optimize" = "assume_no"; then
-- want_optimize="no"
-- fi
-- fi
-- fi
-- #
-- if test "$honor_optimize_option" = "yes"; then
--
-- ac_var_stripped=""
-- for word1 in $tmp_CFLAGS; do
-- ac_var_strip_word="no"
-- for word2 in $flags_opt_all; do
-- if test "$word1" = "$word2"; then
-- ac_var_strip_word="yes"
-- fi
-- done
-- if test "$ac_var_strip_word" = "no"; then
-- ac_var_stripped="$ac_var_stripped $word1"
-- fi
-- done
-- tmp_CFLAGS="$ac_var_stripped"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_stripped=""
-- for word1 in $tmp_CPPFLAGS; do
-- ac_var_strip_word="no"
-- for word2 in $flags_opt_all; do
-- if test "$word1" = "$word2"; then
-- ac_var_strip_word="yes"
-- fi
-- done
-- if test "$ac_var_strip_word" = "no"; then
-- ac_var_stripped="$ac_var_stripped $word1"
-- fi
-- done
-- tmp_CPPFLAGS="$ac_var_stripped"
-- squeeze tmp_CPPFLAGS
--
-- if test "$want_optimize" = "yes"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5
--printf %s "checking if compiler accepts optimizer enabling options... " >&6; }
-- tmp_options="$flags_opt_yes"
-- fi
-- if test "$want_optimize" = "no"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5
--printf %s "checking if compiler accepts optimizer disabling options... " >&6; }
-- tmp_options="$flags_opt_off"
-- fi
-- if test "$flags_prefer_cppflags" = "yes"; then
-- CPPFLAGS="$tmp_CPPFLAGS $tmp_options"
-- CFLAGS="$tmp_CFLAGS"
-- else
-- CPPFLAGS="$tmp_CPPFLAGS"
-- CFLAGS="$tmp_CFLAGS $tmp_options"
-- fi
-- squeeze CPPFLAGS
-- squeeze CFLAGS
--
-- tmp_compiler_works="unknown"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/cc-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-- if test "$tmp_compiler_works" = "yes"; then
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_link "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/link-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam \
-- conftest$ac_exeext conftest.$ac_ext
-- fi
-- if test "x$cross_compiling" != "xyes" &&
-- test "$tmp_compiler_works" = "yes"; then
--
-- case $host_os in
-- darwin*)
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- ;;
-- *)
-- old=$LD_LIBRARY_PATH
-- LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
-- export LD_LIBRARY_PATH
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- LD_LIBRARY_PATH=$old # restore
-- ;;
-- esac
--
-- fi
-- if test "$tmp_compiler_works" = "yes"; then
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--printf "%s\n" "yes" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5
--printf "%s\n" "$as_me: compiler options added: $tmp_options" >&6;}
--
-- else
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
--printf "%s\n" "no" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5
--printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
-- CPPFLAGS="$tmp_save_CPPFLAGS"
-- CFLAGS="$tmp_save_CFLAGS"
--
-- fi
--
-- fi
-- #
-- fi
--
--
-- #
-- if test "$compiler_id" != "unknown"; then
-- #
-- tmp_save_CPPFLAGS="$CPPFLAGS"
-- tmp_save_CFLAGS="$CFLAGS"
-- tmp_CPPFLAGS=""
-- tmp_CFLAGS=""
-- #
-- case "$compiler_id" in
-- #
-- CLANG)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -pedantic"
--
-- ac_var_added_warnings=""
-- for warning in all extra; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in pointer-arith write-strings; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in shadow; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in inline nested-externs; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in missing-declarations; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in missing-prototypes; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long"
--
-- ac_var_added_warnings=""
-- for warning in float-equal; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in no-multichar sign-compare; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in undef; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral"
--
-- ac_var_added_warnings=""
-- for warning in endif-labels strict-prototypes; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in declaration-after-statement; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in cast-align; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers"
--
-- ac_var_added_warnings=""
-- for warning in shorten-64-to-32; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- #
-- if test "$compiler_num" -ge "101"; then
--
-- ac_var_added_warnings=""
-- for warning in unused; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "208"; then
--
-- ac_var_added_warnings=""
-- for warning in vla; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "209"; then
--
-- ac_var_added_warnings=""
-- for warning in shift-sign-overflow; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "302"; then
-- case $host_os in
-- cygwin* | mingw*)
-- ;;
-- *)
--
-- ac_var_added_warnings=""
-- for warning in missing-variable-declarations; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- ;;
-- esac
-- fi
-- #
-- if test "$compiler_num" -ge "306"; then
--
-- ac_var_added_warnings=""
-- for warning in double-promotion; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "309"; then
--
-- ac_var_added_warnings=""
-- for warning in comma; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- # avoid the varargs warning, fixed in 4.0
-- # https://bugs.llvm.org/show_bug.cgi?id=29140
-- if test "$compiler_num" -lt "400"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-varargs"
-- fi
-- fi
-- if test "$compiler_num" -ge "700"; then
--
-- ac_var_added_warnings=""
-- for warning in assign-enum; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in extra-semi-stmt; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- fi
-- ;;
-- #
-- DEC_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -msg_enable level3"
-- fi
-- ;;
-- #
-- GNU_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- #
-- if test "x$cross_compiling" != "xyes" ||
-- test "$compiler_num" -ge "300"; then
-- tmp_CFLAGS="$tmp_CFLAGS -pedantic"
-- fi
-- #
--
-- ac_var_added_warnings=""
-- for warning in all; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -W"
-- #
-- if test "$compiler_num" -ge "104"; then
--
-- ac_var_added_warnings=""
-- for warning in pointer-arith write-strings; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- if test "x$cross_compiling" != "xyes" ||
-- test "$compiler_num" -ge "300"; then
--
-- ac_var_added_warnings=""
-- for warning in unused shadow; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- fi
-- #
-- if test "$compiler_num" -ge "207"; then
--
-- ac_var_added_warnings=""
-- for warning in inline nested-externs; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- if test "x$cross_compiling" != "xyes" ||
-- test "$compiler_num" -ge "300"; then
--
-- ac_var_added_warnings=""
-- for warning in missing-declarations; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in missing-prototypes; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- fi
-- #
-- if test "$compiler_num" -ge "295"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long"
--
-- ac_var_added_warnings=""
-- for warning in bad-function-cast; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "296"; then
--
-- ac_var_added_warnings=""
-- for warning in float-equal; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar"
--
-- ac_var_added_warnings=""
-- for warning in sign-compare; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in undef; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "297"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral"
-- fi
-- #
-- if test "$compiler_num" -ge "300"; then
-- tmp_CFLAGS="$tmp_CFLAGS"
-- fi
-- #
-- if test "$compiler_num" -ge "303"; then
--
-- ac_var_added_warnings=""
-- for warning in endif-labels strict-prototypes; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "304"; then
--
-- ac_var_added_warnings=""
-- for warning in declaration-after-statement; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in old-style-definition; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "400"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wstrict-aliasing=3"
-- fi
-- #
-- if test "$compiler_num" -ge "402"; then
--
-- ac_var_added_warnings=""
-- for warning in cast-align; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "403"; then
--
-- ac_var_added_warnings=""
-- for warning in type-limits old-style-declaration; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in missing-parameter-type empty-body; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in clobbered ignored-qualifiers; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in conversion; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-sign-conversion"
--
-- ac_var_added_warnings=""
-- for warning in vla; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -ftree-vrp"
-- fi
-- #
-- if test "$compiler_num" -ge "405"; then
-- if test "$curl_cv_have_def__WIN32" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format"
-- fi
-- fi
-- #
-- if test "$compiler_num" -ge "406"; then
--
-- ac_var_added_warnings=""
-- for warning in double-promotion; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "408"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wformat=2"
-- fi
-- #
-- if test "$compiler_num" -ge "500"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Warray-bounds=2"
-- fi
-- #
-- if test "$compiler_num" -ge "600"; then
--
-- ac_var_added_warnings=""
-- for warning in shift-negative-value; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wshift-overflow=2"
--
-- ac_var_added_warnings=""
-- for warning in null-dereference; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -fdelete-null-pointer-checks"
--
-- ac_var_added_warnings=""
-- for warning in duplicated-cond; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in unused-const-variable; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- if test "$compiler_num" -ge "700"; then
--
-- ac_var_added_warnings=""
-- for warning in duplicated-branches; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in restrict; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in alloc-zero; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- tmp_CFLAGS="$tmp_CFLAGS -Wformat-overflow=2"
-- tmp_CFLAGS="$tmp_CFLAGS -Wformat-truncation=2"
-- if test "$compiler_num" -lt "1200"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wimplicit-fallthrough=4"
-- fi
-- fi
-- #
-- if test "$compiler_num" -ge "1000"; then
--
-- ac_var_added_warnings=""
-- for warning in arith-conversion; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in enum-conversion; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- #
-- fi
-- #
-- if test "$compiler_num" -ge "300"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers"
-- else
-- if test "x$cross_compiling" = "xyes"; then
-- if test "$compiler_num" -ge "104"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow"
-- fi
-- if test "$compiler_num" -ge "207"; then
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations"
-- tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes"
-- fi
-- fi
-- fi
-- ;;
-- #
-- HP_UX_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS +w1"
-- fi
-- ;;
-- #
-- IBM_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- INTEL_UNIX_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- if test "$compiler_num" -gt "600"; then
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wall -w2"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcheck"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcomment"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wdeprecated"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wmissing-prototypes"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wp64"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wpointer-arith"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wreturn-type"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wshadow"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wuninitialized"
-- tmp_CPPFLAGS="$tmp_CPPFLAGS -Wunused-function"
-- fi
-- fi
-- tmp_CFLAGS="$tmp_CFLAGS -fno-omit-frame-pointer"
-- tmp_CFLAGS="$tmp_CFLAGS -fno-strict-aliasing"
-- tmp_CFLAGS="$tmp_CFLAGS -fp-model precise"
-- ;;
-- #
-- INTEL_WINDOWS_C)
-- #
-- tmp_CFLAGS="$tmp_CFLAGS"
-- ;;
-- #
-- LCC)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS"
-- fi
-- ;;
-- #
-- SGI_MIPS_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -fullwarn"
-- fi
-- ;;
-- #
-- SGI_MIPSPRO_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -fullwarn"
-- tmp_CFLAGS="$tmp_CFLAGS -woff 1209"
-- fi
-- ;;
-- #
-- SUNPRO_C)
-- #
-- if test "$want_warnings" = "yes"; then
-- tmp_CFLAGS="$tmp_CFLAGS -v"
-- fi
-- ;;
-- #
-- TINY_C)
-- #
-- if test "$want_warnings" = "yes"; then
--
-- ac_var_added_warnings=""
-- for warning in all; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in write-strings; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
--
-- ac_var_added_warnings=""
-- for warning in unsupported; do
--
-- ac_var_match_word="no"
-- for word1 in $CFLAGS; do
-- for word2 in -Wno-$warning -W$warning; do
-- if test "$word1" = "$word2"; then
-- ac_var_match_word="yes"
-- fi
-- done
-- done
--
-- if test "$ac_var_match_word" = "no"; then
-- ac_var_added_warnings="$ac_var_added_warnings -W$warning"
-- fi
-- done
-- tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
-- squeeze tmp_CFLAGS
--
-- fi
-- ;;
-- #
-- esac
-- #
-- squeeze tmp_CPPFLAGS
-- squeeze tmp_CFLAGS
-- #
-- if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5
--printf %s "checking if compiler accepts strict warning options... " >&6; }
-- CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
-- CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
-- squeeze CPPFLAGS
-- squeeze CFLAGS
--
-- tmp_compiler_works="unknown"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/cc-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-- if test "$tmp_compiler_works" = "yes"; then
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--
--int main (void)
--{
--
-- int i = 1;
-- return i;
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_link "$LINENO"
--then :
--
-- tmp_compiler_works="yes"
--
--else $as_nop
--
-- tmp_compiler_works="no"
-- echo " " >&6
-- sed 's/^/link-fail: /' conftest.err >&6
-- echo " " >&6
--
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.beam \
-- conftest$ac_exeext conftest.$ac_ext
-- fi
-- if test "x$cross_compiling" != "xyes" &&
-- test "$tmp_compiler_works" = "yes"; then
--
-- case $host_os in
-- darwin*)
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- ;;
-- *)
-- old=$LD_LIBRARY_PATH
-- LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
-- export LD_LIBRARY_PATH
-- if test "$cross_compiling" = yes
--then :
-- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else $as_nop
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--
--# ifdef __STDC__
--# include <stdlib.h>
--# endif
--
--int main (void)
--{
--
-- int i = 0;
-- exit(i);
--
-- ;
-- return 0;
--}
--
--_ACEOF
--if ac_fn_c_try_run "$LINENO"
--then :
-- tmp_compiler_works="yes"
--
--else $as_nop
-- tmp_compiler_works="no"
-- echo " " >&6
-- echo "run-fail: test program exited with status $ac_status" >&6
-- echo " " >&6
--
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- LD_LIBRARY_PATH=$old # restore
-- ;;
-- esac
--
-- fi
-- if test "$tmp_compiler_works" = "yes"; then
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--printf "%s\n" "yes" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
--printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;}
--
-- else
--
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
--printf "%s\n" "no" >&6; }
-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5
--printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;}
-- CPPFLAGS="$tmp_save_CPPFLAGS"
-- CFLAGS="$tmp_save_CFLAGS"
--
-- fi
--
-- fi
-- #
-- fi
--
--
--if test "$compiler_id" = "INTEL_UNIX_C"; then
-- #
-- if test "$compiler_num" -ge "1000"; then
-- CFLAGS="$CFLAGS -shared-intel"
-- elif test "$compiler_num" -ge "900"; then
-- CFLAGS="$CFLAGS -i-dynamic"
-- fi
-- #
--fi
--
--CURL_CFLAG_EXTRAS=""
--if test X"$want_werror" = Xyes; then
-- CURL_CFLAG_EXTRAS="-Werror"
-- if test "$compiler_id" = "GNU_C"; then
-- if test "$compiler_num" -ge "500"; then
-- CURL_CFLAG_EXTRAS="$CURL_CFLAG_EXTRAS -pedantic-errors"
-- fi
-- fi
--fi
--
--
--
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5
- printf %s "checking if compiler halts on compilation errors... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
---- curl-7.83.1/curl-config.in.orig 2022-05-09 09:52:19.000000000 +0200
-+++ curl-7.83.1/curl-config.in 2022-05-11 16:28:11.191258534 +0200
-@@ -155,11 +155,7 @@
- ;;
-
- --libs)
-- if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then
-- CURLLIBDIR="-L@libdir@ "
-- else
-- CURLLIBDIR=""
-- fi
-+ CURLLIBDIR=""
- if test "X@ENABLE_SHARED@" = "Xno"; then
- echo ${CURLLIBDIR}-lcurl @LIBCURL_LIBS@
- else
---- curl-7.83.1/src/Makefile.in.orig 2022-05-09 11:03:44.000000000 +0200
-+++ curl-7.83.1/src/Makefile.in 2022-05-12 17:27:11.606680950 +0200
-@@ -260,9 +260,9 @@
- am_curl_OBJECTS = $(am__objects_8)
- curl_OBJECTS = $(am_curl_OBJECTS)
- @USE_EXPLICIT_LIB_DEPS_FALSE@curl_DEPENDENCIES = \
--@USE_EXPLICIT_LIB_DEPS_FALSE@ $(top_builddir)/lib/libcurl.la
-+@USE_EXPLICIT_LIB_DEPS_FALSE@ $(top_builddir)/lib/.libs/libcurl.a
- @USE_EXPLICIT_LIB_DEPS_TRUE@curl_DEPENDENCIES = \
--@USE_EXPLICIT_LIB_DEPS_TRUE@ $(top_builddir)/lib/libcurl.la
-+@USE_EXPLICIT_LIB_DEPS_TRUE@ $(top_builddir)/lib/.libs/libcurl.a
- AM_V_P = $(am__v_P_@AM_V@)
- am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
- am__v_P_0 = false
-@@ -814,8 +814,8 @@
-
- # CURL_FILES comes from Makefile.inc
- curl_SOURCES = $(CURL_FILES)
--@USE_EXPLICIT_LIB_DEPS_FALSE@curl_LDADD = $(top_builddir)/lib/libcurl.la @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
--@USE_EXPLICIT_LIB_DEPS_TRUE@curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBCURL_LIBS@
-+@USE_EXPLICIT_LIB_DEPS_FALSE@curl_LDADD = $(top_builddir)/lib/.libs/libcurl.a @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
-+@USE_EXPLICIT_LIB_DEPS_TRUE@curl_LDADD = $(top_builddir)/lib/.libs/libcurl.a @LIBCURL_LIBS@
-
- # if unit tests are enabled, build a static library to link them with
- @BUILD_UNITTESTS_TRUE@noinst_LTLIBRARIES = libcurltool.la
diff --git a/patches/curl-8.7.1.local.patch b/patches/curl-8.7.1.local.patch
new file mode 100644
index 00000000..87364a70
--- /dev/null
+++ b/patches/curl-8.7.1.local.patch
@@ -0,0 +1,20 @@
+diff -ru curl-8.7.1.orig/configure curl-8.7.1/configure
+--- curl-8.7.1.orig/configure 2024-04-08 23:55:17.997659030 +0200
++++ curl-8.7.1/configure 2024-04-09 00:03:10.404057041 +0200
+@@ -15627,6 +15627,16 @@
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
++midipix*)
++ version_type=linux # correct to gnu/linux during the next big refactor
++ need_lib_prefix=no
++ need_version=no
++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
++ soname_spec='$libname$release$shared_ext$major'
++ shlibpath_var=LD_LIBRARY_PATH
++ ;;
++
++
+ # This must be glibc/ELF.
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
diff --git a/patches/curl-8.7.1_pre.local.patch b/patches/curl-8.7.1_pre.local.patch
new file mode 100644
index 00000000..568e1bd8
--- /dev/null
+++ b/patches/curl-8.7.1_pre.local.patch
@@ -0,0 +1,56 @@
+diff -ru curl-8.7.1.orig/curl-config.in curl-8.7.1/curl-config.in
+--- curl-8.7.1.orig/curl-config.in 2024-03-06 22:16:03.000000000 +0100
++++ curl-8.7.1/curl-config.in 2024-04-09 00:07:35.445813553 +0200
+@@ -152,13 +152,13 @@
+ if test "X@includedir@" = "X/usr/include"; then
+ echo "$CPPFLAG_CURL_STATICLIB"
+ else
+- echo "${CPPFLAG_CURL_STATICLIB}-I@includedir@"
++ echo "$CPPFLAG_CURL_STATICLIB"
+ fi
+ ;;
+
+ --libs)
+ if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then
+- CURLLIBDIR="-L@libdir@ "
++ CURLLIBDIR=""
+ else
+ CURLLIBDIR=""
+ fi
+diff -ru curl-8.7.1.orig/m4/curl-compilers.m4 curl-8.7.1/m4/curl-compilers.m4
+--- curl-8.7.1.orig/m4/curl-compilers.m4 2024-03-25 09:48:59.000000000 +0100
++++ curl-8.7.1/m4/curl-compilers.m4 2024-04-08 23:23:12.804956865 +0200
+@@ -41,33 +41,6 @@
+ flags_opt_off="unknown"
+ #
+ flags_prefer_cppflags="no"
+- #
+- CURL_CHECK_COMPILER_DEC_C
+- CURL_CHECK_COMPILER_HPUX_C
+- CURL_CHECK_COMPILER_IBM_C
+- CURL_CHECK_COMPILER_INTEL_C
+- CURL_CHECK_COMPILER_CLANG
+- CURL_CHECK_COMPILER_GNU_C
+- CURL_CHECK_COMPILER_SGI_MIPSPRO_C
+- CURL_CHECK_COMPILER_SGI_MIPS_C
+- CURL_CHECK_COMPILER_SUNPRO_C
+- CURL_CHECK_COMPILER_TINY_C
+- #
+- if test "$compiler_id" = "unknown"; then
+- cat <<_EOF 1>&2
+-***
+-*** Warning: This configure script does not have information about the
+-*** compiler you are using, relative to the flags required to enable or
+-*** disable generation of debug info, optimization options or warnings.
+-***
+-*** Whatever settings are present in CFLAGS will be used for this run.
+-***
+-*** If you wish to help the curl project to better support your compiler
+-*** you can report this and the required info on the libcurl development
+-*** mailing list: https://lists.haxx.selistinfo/curl-library/
+-***
+-_EOF
+- fi
+ ])
+
+
diff --git a/patches/cvs-1.12.13.local.patch b/patches/cvs-1.12.13.local.patch
new file mode 100644
index 00000000..5d024d6e
--- /dev/null
+++ b/patches/cvs-1.12.13.local.patch
@@ -0,0 +1,29 @@
+diff -ru cvs-1.12.13.orig/src/main.c cvs-1.12.13/src/main.c
+--- cvs-1.12.13.orig/src/main.c 2022-10-20 15:44:42.306215161 +0200
++++ cvs-1.12.13/src/main.c 2022-10-20 15:50:55.838352069 +0200
+@@ -24,10 +24,6 @@
+ #include "strftime.h"
+ #include "xgethostname.h"
+
+-#ifdef USE_LIBBSD
+-uint32_t arc4random(void);
+-#endif
+-
+ const char *program_name;
+ const char *program_path;
+ const char *cvs_cmd_name;
+@@ -749,10 +745,13 @@
+
+ /* Calculate the cvs global session ID */
+
++ int random;
++ getentropy(&random, sizeof(int));
++
+ global_session_id = Xasprintf("1%010llX%04X%04X",
+ (unsigned long long)time(NULL),
+ (unsigned int)(getpid() & 0xFFFF),
+- (unsigned int)(arc4random() & 0xFFFF));
++ (unsigned int)random & 0xFFFF);
+
+ TRACE (TRACE_FUNCTION, "main: Session ID is %s", global_session_id);
+
diff --git a/patches/cvs-1.12.13_pre.local.patch b/patches/cvs-1.12.13_pre.local.patch
new file mode 100644
index 00000000..3f94dbcf
--- /dev/null
+++ b/patches/cvs-1.12.13_pre.local.patch
@@ -0,0 +1,16025 @@
+diff -ru cvs-1.12.13.orig/src/Makefile.in cvs-1.12.13/src/Makefile.in
+--- cvs-1.12.13.orig/src/Makefile.in 2005-10-03 15:37:18.000000000 +0200
++++ cvs-1.12.13/src/Makefile.in 2022-10-20 16:25:44.014173101 +0200
+@@ -150,7 +150,7 @@
+ release.$(OBJEXT) remove.$(OBJEXT) repos.$(OBJEXT) \
+ root.$(OBJEXT) rsh-client.$(OBJEXT) run.$(OBJEXT) \
+ scramble.$(OBJEXT) server.$(OBJEXT) stack.$(OBJEXT) \
+- status.$(OBJEXT) subr.$(OBJEXT) tag.$(OBJEXT) update.$(OBJEXT) \
++ status.$(OBJEXT) subr.$(OBJEXT) suck.$(OBJEXT) tag.$(OBJEXT) update.$(OBJEXT) \
+ version.$(OBJEXT) vers_ts.$(OBJEXT) watch.$(OBJEXT) \
+ wrapper.$(OBJEXT) zlib.$(OBJEXT)
+ cvs_OBJECTS = $(am_cvs_OBJECTS)
+@@ -304,8 +304,6 @@
+ AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib \
+ -I$(top_srcdir)/diff $(ZLIB_CPPFLAGS)
+
+-bin_SCRIPTS = cvsbug
+-
+ # The cvs executable
+ cvs_SOURCES = \
+ add.c \
+@@ -361,6 +359,7 @@
+ stack.c stack.h \
+ status.c \
+ subr.c subr.h \
++ suck.c \
+ tag.c \
+ update.c \
+ version.c \
+--- cvs-1.12.13+real.orig/AUTHORS
++++ cvs-1.12.13+real/AUTHORS
+@@ -57,6 +57,12 @@
+ There have been many, many contributions not listed here. Consult the
+ individual ChangeLog files in each directory for a more complete idea.
+
++The de-facto (if not… yet… de-iure) new upstream of GNU CVS 1.12.x is
++MirBSD, which also provides the Debian packages incorporating original
++development work and fixes by mirabilos <m@mirbsd.org> and some inspired
++by changes to GNU CVS 1.11.1p1 from other BSDs and by changes from the
++previous Debian package.
++
+ In addition to the above contributors, the following Beta testers
+ deserve special mention for their support. This is only a partial
+ list; if you have helped in this way and would like to be listed, let
+@@ -88,3 +94,6 @@
+ Many contributors have added code to the "contrib" directory. See the
+ README file there for a list of what is available. There is also a
+ contributed GNU Emacs CVS-mode in tools/pcl-cvs.
++
++
++$MirOS: src/gnu/usr.bin/cvs/AUTHORS,v 1.7 2021/01/30 02:05:54 tg Exp $
+--- cvs-1.12.13+real.orig/DEVEL-CVS
++++ cvs-1.12.13+real/DEVEL-CVS
+@@ -7,7 +7,8 @@
+ Policies regarding the CVS source repository:
+
+ By checking items into the repository, developers agree to permit
+-distribution of such items under the terms of the GNU Public License.
++distribution of such items under the terms of the GNU General Public
++License.
+
+ ----------------------------------------------------------------------
+ Procedure for dealing with people who want to be developers:
+--- cvs-1.12.13+real.orig/FAQ
++++ cvs-1.12.13+real/FAQ
+@@ -3097,7 +3097,7 @@
+ If you want to allow read access, check out an entire tree somewhere.
+ You have to do this anyway to build it.
+
+- Note: If you are using a stupid file system that can't inherit file
++ Note: If you are using a stupid filesystem that can't inherit file
+ groups from the parent directory (even with the "setgid" (Octal 2000)
+ bit set), you might have to modify CVS (or RCS) to reset the group
+ every time you create a new file. I have not tested this.
+@@ -7234,7 +7234,7 @@
+
+ It will respond:
+
+- Directory /Repos/<dir> added to the repository
++ Directory /Repos/<dir> put under version control
+
+ and will create both a matching directory in the Repository and a
+ ./CVS administrative directory within the local <dir> directory.
+@@ -7541,7 +7541,7 @@
+ available on Sun, HP, SGI and OSF/1 platforms.
+
+ ClearCase uses a special Unix filesystem type, called "mvfs" for
+- "multi-version file system". Conceptually, mvfs adds another dimension
++ "multi-version filesystem". Conceptually, mvfs adds another dimension
+ to a regular Unix filesystem. The new axis is used to store the
+ different versions of files and to provide a tree-hierarchical view of
+ a collection of objects that might be scattered across any number of
+@@ -7644,7 +7644,7 @@
+
+ Shapetools includes a build mechanism (called Shape, not surprisingly)
+ that is aware of the version mechanism, and some dependency tracking.
+- It is based on a file system extension called Attributed File System,
++ It is based on a filesystem extension called Attributed Filesystem,
+ which allows arbitrary-sized "attributes" to be associated with a
+ file. Files are version controlled in a manner similar to RCS.
+ Configurations are managed through the Shapefile, an extension of the
+--- cvs-1.12.13+real.orig/MINOR-BUGS
++++ cvs-1.12.13+real/MINOR-BUGS
+@@ -59,3 +59,15 @@
+ belong under the "checkout" function? Perhaps it is more logically
+ grouped with the "history" function or we should create a new "info"
+ function?
++
++
++Note that it is the opinion of the MirBSD founder that the CVSROOT
++environment variable ought to *never* be set at all. This prevents
++a lot of trouble. Almost all CVS tutorials stating otherwise (or
++recommending pserver) are perceived bogus.
++
++"cvs annotate -b" does not do what people would expect, I think,
++but neither does it do that under MidnightBSD/DragonFly, where
++it came from.
++
++$MirOS: src/gnu/usr.bin/cvs/MINOR-BUGS,v 1.5 2016/11/08 23:04:31 tg Exp $
+--- cvs-1.12.13+real.orig/NEWS
++++ cvs-1.12.13+real/NEWS
+@@ -1,3 +1,11 @@
++Changes since 1.12.13:
++**********************
++
++* many which are only documented in MirBSD CVS
++
++* A new command line option, --allow-root-regexp, was added which allows
++ acceptable repositories to be specified using a list of regular expressions.
++
+ Changes since 1.12.12:
+ **********************
+
+@@ -669,7 +677,7 @@
+ from the server.
+
+ * The configure script now tests whether it is building CVS on a case
+- insensitive file system. If it is, CVS assumes that all file systems on this
++ insensitive filesystem. If it is, CVS assumes that all filesystems on this
+ platform will be case insensitive. This is useful for getting the case
+ insensitivity flag set correctly when compiling on Mac OS X and under Cygwin
+ on Windows. Autodetection can be overridden using the
+--- cvs-1.12.13+real.orig/TODO
++++ cvs-1.12.13+real/TODO
+@@ -33,14 +33,14 @@
+ 66. Length of the CVS temporary files must be limited to 14 characters for
+ System-V stupid support. As well as the length on the CVS.adm files.
+
+-72. Consider re-design of the module -t options to use the file system more
++72. Consider re-design of the module -t options to use the filesystem more
+ intuitively.
+
+ 73. Consider an option (in .cvsrc?) to automatically add files that are new
+ and specified to commit.
+
+ 79. Might be nice to have some sort of interface to Sun's Translucent
+- (?) File System and tagged revisions.
++ (?) filesystem and tagged revisions.
+
+ 82. Maybe the import stuff should allow an arbitrary revision to be
+ specified.
+@@ -215,7 +215,7 @@
+ machine or directory. But there are other cases, like where the
+ user might want to change from :pserver: to :ext:, use a different
+ server (if there are two server machines which share the
+- repository using a networked file system), etc.
++ repository using a networked filesystem), etc.
+
+ The status quo is a bit of a mess (as of, say, CVS 1.9). It is
+ that the -d global option has two moderately different uses. One
+@@ -334,7 +334,7 @@
+
+ 165. The "import" command will create RCS files automatically, but will
+ screw-up when trying to create long file names on short file name
+- file systems. Perhaps import should be a bit more cautious.
++ filesystems. Perhaps import should be a bit more cautious.
+
+ 166. There really needs to be a "Getting Started" document which describes
+ some of the new CVS philosophies. Folks coming straight from SCCS or
+--- cvs-1.12.13+real.orig/contrib/README
++++ cvs-1.12.13+real/contrib/README
+@@ -74,6 +74,7 @@
+ if it does not already.
+ Copied from the C-News distribution.
+
++ /usr/share/doc/cvs/intro.txt in Debian:
+ intro.doc A user's view of what you need to know to get
+ started with CVS.
+ Contributed by <Steven.Pemberton@cwi.nl>.
+--- cvs-1.12.13+real.orig/contrib/cvs_acls.html
++++ cvs-1.12.13+real/contrib/cvs_acls.html
+@@ -280,7 +280,7 @@
+ <p>A final note about the repository matching pattern. The example above
+ uses ``ALL'' but note that this means that the cvs_acls script will run
+ for each and every commit in your repository. Obviously, in a large
+-repository this adds up to a lot of overhead that may not be necesary.
++repository this adds up to a lot of overhead that may not be necessary.
+ A better strategy is to use a repository pattern that is more specific
+ to the areas that you wish to secure.</p>
+ <p>3. Install this file as $CVSROOT/CVSROOT/cvs_acls and make it executable.</p>
+--- cvs-1.12.13+real.orig/contrib/cvs_acls.in
++++ cvs-1.12.13+real/contrib/cvs_acls.in
+@@ -309,7 +309,7 @@
+ A final note about the repository matching pattern. The example above
+ uses "ALL" but note that this means that the cvs_acls script will run
+ for each and every commit in your repository. Obviously, in a large
+-repository this adds up to a lot of overhead that may not be necesary.
++repository this adds up to a lot of overhead that may not be necessary.
+ A better strategy is to use a repository pattern that is more specific
+ to the areas that you wish to secure.
+
+--- cvs-1.12.13+real.orig/contrib/rcs2log.1
++++ cvs-1.12.13+real/contrib/rcs2log.1
+@@ -1,3 +1,4 @@
++.\" $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.1,v 1.2 2011/05/06 22:44:59 tg Exp $
+ .\"
+ .\" Copyright 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+ .\"
+@@ -25,17 +26,17 @@
+ .Sh SYNOPSIS
+ .Nm rcs2log
+ .Bk -words
++.Op Fl nRv
+ .Op Fl c Ar changelog
+ .Op Fl h Ar hostname
+ .Op Fl i Ar indent
+ .Op Fl l Ar length
+-.Op Fl R
++.Op Fl L Ar file
+ .Op Fl r Ar option
+ .Op Fl t Ar tabwidth
+ .Op Fl u Ar login<TAB>fullname<TAB>mailaddr
+-.Op Fl v
+-.Op Fl -help
+-.Op Fl -version
++.Op Fl \-help
++.Op Fl \-version
+ .Op Ar file ...
+ .Ek
+ .Sh DESCRIPTION
+@@ -62,6 +63,14 @@
+ Try to limit log lines to
+ .Ar length
+ characters (default 79).
++.It Fl L Ar file
++Use rlog-format
++.Ar file
++for source of logs.
++.It Fl n
++Obsolete, use
++.Fl u
++instead (whose syntax differs).
+ .It Fl R
+ If no
+ .Ar file Ns Li (s)
+@@ -83,9 +92,9 @@
+ .Ar mailaddr .
+ .It Fl v
+ Append RCS revision to file names in log lines.
+-.It Fl -help
++.It Fl \-help
+ Output help.
+-.It Fl -version
++.It Fl \-version
+ Output version number.
+ .El
+ .Sh SEE ALSO
+--- cvs-1.12.13+real.orig/contrib/rcs2log.sh
++++ cvs-1.12.13+real/contrib/rcs2log.sh
+@@ -1,4 +1,5 @@
+ #! /bin/sh
++# $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.sh,v 1.6 2011/05/06 22:44:59 tg Exp $
+
+ # Copyright (C) 1995-2005 The Free Software Foundation, Inc.
+
+@@ -31,6 +32,7 @@
+ -i INDENT Indent change log lines by INDENT spaces (default 8).
+ -l LENGTH Try to limit log lines to LENGTH characters (default 79).
+ -L FILE Use rlog-format FILE for source of logs.
++ -n Obsolete, use -u instead (whose syntax differs).
+ -R If no FILEs are given and RCS is used, recurse through working directory.
+ -r OPTION Pass OPTION to subsidiary log command.
+ -t TABWIDTH Tab stops are every TABWIDTH characters (default 8).
+@@ -199,7 +201,7 @@
+ m[9]="Oct"; m[10]="Nov"; m[11]="Dec"
+ '
+
+-logdir=`$MKTEMP -d $TMPDIR/rcs2log.XXXXXX`
++logdir=$($MKTEMP -d $TMPDIR/rcs2log.XXXXXXXXXX)
+ test -n "$logdir" || exit
+ llogout=$logdir/l
+ trap exit 1 2 13 15
+@@ -632,7 +634,7 @@
+ # Sort the log entries, first by date+time (in reverse order),
+ # then by author, then by log entry, and finally by file name and revision
+ # (just in case).
+-sort -t"$SOH" +2 -4r +4 +0 |
++sort -t"$SOH" -k 3,4r -k 5 -k 1 |
+
+ # Finally, reformat the sorted log entries.
+ $AWK -F"$SOH" '
+--- cvs-1.12.13+real.orig/contrib/sccs2rcs.in
++++ cvs-1.12.13+real/contrib/sccs2rcs.in
+@@ -1,4 +1,5 @@
+ #! @CSH@ -f
++# $MirOS: src/gnu/usr.bin/cvs/contrib/sccs2rcs.in,v 1.2 2011/05/06 21:50:27 tg Exp $
+
+ # Copyright (C) 1995-2005 The Free Software Foundation, Inc.
+
+@@ -219,7 +220,7 @@
+ # we expected in the output we have other problems.
+ # Note: Solaris awk does not like the following line. Use gawk
+ # mawk, or nawk instead.
+- set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,0,2)+0<70?20:19) $3, $4; exit}'`
++ set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,1,2)+0<70?20:19) $3, $4; exit}'`
+ set author = `sccs prs -r$rev $file | @AWK@ '/^D / {print $5; exit}'`
+ echo ""
+ echo "==> file $file, rev=$rev, date=$date, author=$author"
+--- cvs-1.12.13+real.orig/debian/NEWS
++++ cvs-1.12.13+real/debian/NEWS
+@@ -0,0 +1,88 @@
++cvs (2:1.12.13+real-23) unstable; urgency=low
++
++ Starting from this version, environment variables that are
++ defined but empty are handled the same as undefined ones,
++ except CVSREAD and CVSREADONLYFS (whose mere presence in
++ the environment enables the functionality).
++
++ -- Thorsten Glaser <tg@mirbsd.de> Fri, 28 Apr 2017 19:10:30 +0200
++
++cvs (2:1.12.13+real-22) unstable; urgency=low
++
++ Newly created repositories (from “cvs init”) now rely on
++ CVSUMASK for the permissions of the “history” and “val-tags”
++ files instead of creating them as world-writable.
++
++ Newly created repositories contain a LogHistory configuration
++ setting to only record write operations in the “history” file.
++
++ If you are used to the previous behaviour, you can restore it
++ by altering (or removing, in which case the (commented-out)
++ default of logging everything will be used) the LogHistory
++ configuration setting and changing the permissions on the
++ “history” and “val-tags” files so that every user can write
++ into them.
++
++ If you did not deliberately open your repository to all users
++ on your system, you might wish to change all existing repos
++ to this behaviour. To do this, check out the CVSROOT module,
++ edit the “config” file adding “LogHistory=TMAR”, check that
++ change in, release the CVSROOT module, and chmod the “history”
++ and “val-tags” files to either 0664 (if all users in the same
++ group should be able to commit) or 0644 (if only you wish to
++ commit), possibly 0660 or 0600 is non-committers should also
++ be denied reading.
++
++ Contact me (mirabilos) in #cvs on irc.freenode.net if you have
++ any questions about this change or require further support.
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 19:54:01 +0200
++
++cvs (2:1.12.13+real-7) unstable; urgency=high
++
++ rcs2log no longer lives in the PATH, the contributed script
++ and its manpage are in /usr/share/cvs/contrib/rcs2log now.
++
++ Some contrib files (and their documentation) are no longer
++ shipped with the binary package (antique, insecure, useless).
++
++ -rHEAD in "cvs diff" now, consistently with all other cvs
++ subcommands, means "tip of the trunk (MAIN branch)"; to
++ access the tip of the another branch, use its name; as a
++ compatibility aid, -r.bhead (only in diff) points to the
++ tip of the sticky branch.
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 04 Dec 2011 20:10:09 +0000
++
++cvs (2:1.12.13+real-5) unstable; urgency=low
++
++ This cvs package is a totally new packaging and has almost
++ nothing in common with what was in Debian before. The most
++ visible changes are outlined below:
++
++ pserver is no longer officially supported; the cvs package
++ does not install any service, inetd, or something similar.
++ If you want to set up a CVS server, use SSH, as shown in:
++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh.html
++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced.html
++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced2.html
++
++ Consequentially, PAM is also no longer supported, and this
++ package does not set up or manage any repositories; that's
++ the system administrator's job now.
++
++ For running "cvs admin" tasks the user must be a member of
++ the new "_cvsadmin" system group, or the repository be set
++ up (UserAdminOptions in CVSROOT/config) to allow everyone.
++
++ The date format for $Id$ and similar in checkouts has been
++ switched back from ISO 8601 to the standard RCS format, to
++ keep checksums over checkouts/exports consistent. This, as
++ well as the fact that only the :local: and :extssh: access
++ methods are officially supported, is not negotiable.
++
++ Please direct feature requests upstream, not to the BTS. I
++ do quite an amount of hacking CVS, but prefer to care only
++ about the packaging bits with "full power" in Debian.
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:01:49 +0000
+--- cvs-1.12.13+real.orig/debian/changelog
++++ cvs-1.12.13+real/debian/changelog
+@@ -0,0 +1,335 @@
++cvs (2:1.12.13+real-28) unstable; urgency=medium
++
++ [ Helmut Grohne ]
++ * Reduce Build-Depends: (Closes: #981313)
++ - Drop unused bsdmainutils and procps
++ - Reduce texlive-{fonts,latex}-recommended to texlive-base
++
++ [ Thorsten Glaser ]
++ * Bump Policy; keep dh5-style build system for now, though (the
++ “good reason” is that the freeze is near)
++ * Bump debhelper
++ * Use /usr/share/dpkg/buildtools.mk to determine ${CC}
++ * Modernise way of setting {C,CPP,LD}FLAGS
++ * Update maintainer scripts
++ * Fix hyphens in cvs-switchroot(1)
++ * Drop pre-wheezy code from maintainer scripts, package relationships
++ * Apply B-D reduction from Helmut Grohne
++ * Update lintian overrides; install (doc-base-referenced) intro.doc
++ to /usr/share/doc/cvs/ not /usr/share/cvs/contrib/ and as intro.txt
++ * Fix several warnings in the code spotted by newer GCC
++ * Reword texinfo documentation to plug overfull/underfull \hbox warnings
++ * Fix texinfo node links for commands (referenced in multiple places)
++ * Plug a memleak, a timing issue and a Y2038 issue on ILP32 and ensure time
++ can’t run backwards within a single invocation
++ * Fix bug in configure.in where old format string support wasn’t disabled
++ * Work around a bug in GCC’s warnings
++ * Retain support for old info format strings for now
++ * Note that running the sanity testsuite needs procps in a comment
++ * corresponding to MirBSD CVS 0AB9.1
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 31 Jan 2021 18:17:11 +0100
++
++cvs (2:1.12.13+real-27) unstable; urgency=low
++
++ * Hardcode path to /bin/mktemp during configure to build reproducibly
++ * Policy 4.3.0.1 (verbosity changes; R³:no)
++ * Use new lintian source override location
++ * Update lintian overrides
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 05 Feb 2019 19:31:19 +0100
++
++cvs (2:1.12.13+real-26) unstable; urgency=low
++
++ * Policy 4.1.3 (no changes)
++ * Debhelper 11, prompted by lintian…
++ * Update VCS-* to new repository caused by Alioth deprecation
++
++ -- Thorsten Glaser <tg@mirbsd.de> Fri, 05 Jan 2018 20:06:42 +0100
++
++cvs (2:1.12.13+real-25) unstable; urgency=low
++
++ * Update from MirBSD (0AB8.4)
++ - support LOGM response
++ * Policy 4.1.1 (no changes)
++ * Use “?=” in debian/rules for dpkg-architecture fields (lintian)
++ * Update watch file
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 19 Nov 2017 18:10:56 +0100
++
++cvs (2:1.12.13+real-24) unstable; urgency=high
++
++ * Update from MirBSD
++ - fix for CVE-2017-12836 (Closes: #871810)
++ - more robust $CVSROOT parsing
++ * Policy 4.0.1
++ - add nodoc build option
++ ‣ I’m unclear on how this mixes with build profiles and/or
++ Build-Depends exclusion; should I exclude ghostscript,
++ groff, texinfo, texlive-* with <!nodocs> now, or are
++ DEB_BUILD_OPTIONS=nodoc and the profile independent of
++ each other? Info and patches welcome.
++ * Drop explicit (thus redundant) autotools-dev B-D (lintian)
++ * Update lintian overrides
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 12 Aug 2017 22:18:41 +0200
++
++cvs (2:1.12.13+real-23) unstable; urgency=low
++
++ * Improve documentation:
++ - on CVSREADONLYFS
++ - regarding the formerly world-writable files
++ - fix typos, thanks lintian
++ * Remove testsuite logfiles on clean properly
++ * With most environment variables, handle them being defined but
++ empty as undefined, not enabled (fixes the testsuite creating
++ spurious ~/.in and ~/.out files); exceptions:
++ - CVS_PASSWORD (just triggers an error, as previously)
++ - CVSREAD, CVSREADONLYFS (mere presence enables them)
++ Note this in the Debian NEWS file
++ * Fix some spelling in the/and comments
++ * Emit better errors when multiple LogHistory config options occur
++ * Fix some corner cases in the testsuite
++ * Repair the noredirect-writeproxy testsuite mode
++ * Apply the OpenBSD patch for flowcontrol with fast HDD and slow network
++ * Override a false positive lintian warning
++
++ -- Thorsten Glaser <tg@mirbsd.de> Fri, 28 Apr 2017 21:33:27 +0200
++
++cvs (2:1.12.13+real-22) unstable; urgency=low
++
++ * cvs init: Change default history logging configuration
++ to only log write operations by adding “LogHistory=TMAR”
++ * Testsuite: Alter to cope with this explicit option
++ * cvs init: Rely on CVSUMASK for history and val-tags files
++ in newly created repositories (Closes: #858769)
++ * Add a NEWS.Debian entry verbosely documenting this change
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 20:01:39 +0200
++
++cvs (2:1.12.13+real-21) unstable; urgency=medium
++
++ [ Sylvain Beucler ]
++ * Add --allow-root-regexp option, for Savannah
++
++ [ Thorsten Glaser ]
++ * Always add --build=/--host= to avoid config.guess being too smart
++ * Fix testsuite for --allow-root-regexp in the “deny” case
++ * Some minor documentation fixes (wording and formatting)
++ * Remove unnecessary autopoint from Build-Depends; optimise them
++ * Harmonise PDF version 1.4 across all generated PDFs
++ * Generate all PDFs using the PA4 paper size (prints on Letter and A4)
++ * Disable parallel build because the testsuite is not safe
++
++ -- Thorsten Glaser <tg@mirbsd.de> Mon, 09 Jan 2017 23:19:38 +0000
++
++cvs (2:1.12.13+real-20) unstable; urgency=low
++
++ * Do not spew into syslog when 'cvs pserver' is called from a tty
++
++ -- Thorsten Glaser <tg@mirbsd.de> Wed, 09 Nov 2016 04:17:18 +0100
++
++cvs (2:1.12.13+real-19) unstable; urgency=low
++
++ * Update from MirBSD CVS:
++ - Fix some spelling mistakes
++ - Greatly improve the manpage introduction (even going so far
++ as to add a “how not to be totally lost in info” section)
++ - Improve documentation cross-references
++ - Apply TCP_NODELAY patch from CVS mailing list
++ * Switch (experimentally) to debhelper compat 10
++ * Enhances cvs2svn (>= 2.4.0-4~) as it’s added relevant patches
++ * Make cross-buildable (Closes: #842847)
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Nov 2016 23:22:39 +0000
++
++cvs (2:1.12.13+real-18) unstable; urgency=low
++
++ [ esr ]
++ * Correct a bug in the manpage
++
++ [ Sergei Trofimovich ]
++ * Fix a memory leak
++
++ [ Thorsten Glaser ]
++ * Several sanity and getdate fixes
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 23 Oct 2016 00:34:10 +0200
++
++cvs (2:1.12.13+real-17) unstable; urgency=medium
++
++ * Fix a use-after-free bug
++ * Correctly use autoconf to detect long double
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 05:42:39 +0200
++
++cvs (2:1.12.13+real-16) unstable; urgency=medium
++
++ * Take back the package (Closes: #764397)
++ * Fix typo in changelog entry for cvs (2:1.12.13+real-9) and others
++ * Bump Policy; no changes
++ * Update code with bugfixes from MirBSD 0AB7.2 (Closes: #839669)
++ * Actually use correct getdate implementation
++ * groff now needs an explicit ghostscript dependency for ps2pdf
++ * Remove stuff unnecessary with dh-autoreconf
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 02:58:34 +0200
++
++cvs (2:1.12.13+real-15) unstable; urgency=low
++
++ * QA upload.
++ * Orphan the package.
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Oct 2014 17:58:58 +0000
++
++cvs (2:1.12.13+real-14) unstable; urgency=low
++
++ * debian/control: Move VCS-* fields to Alioth collab-maint git
++ * Remove now-useless RCS IDs
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Jul 2014 16:10:54 +0200
++
++cvs (2:1.12.13+real-12) unstable; urgency=medium
++
++ * Add texlive-fonts-recommended B-D (thanks Norbert Preining)
++ to fix FTBFS in sid (thanks Daniel Schepler) (Closes: #739138)
++ * Policy 3.9.5 (no changes AFAICT)
++ * Check distfile with upstream signing key (thanks lintian)
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 16 Feb 2014 14:07:36 +0000
++
++cvs (2:1.12.13+real-11) unstable; urgency=medium
++
++ * Add workaround for eglibc crypt(3) returning NULL
++ * If DEB_BUILD_OPTIONS contains “sanity” run testsuite after build
++ * Drop obsolete texi2html B-D (thanks lintian) that was unused anyway
++
++ -- Thorsten Glaser <tg@mirbsd.de> Thu, 18 Jul 2013 21:52:12 +0000
++
++cvs (2:1.12.13+real-10) unstable; urgency=low
++
++ [ Daniel Schepler ]
++ * Use dh-autoreconf to regenerate configure script and avoid unnecessary
++ compilation of mktime.c, which doesn't work on x32 as is.
++ * Add texlive-latex-recommended to fix just another FTBFS
++
++ [ Thorsten Glaser ]
++ * Do not compress *.pdf files (cf. #704093)
++ * Allow root to commit
++ * Policy 3.9.4
++ * Make cvs.texinfo compatible with newer makeinfo (Closes: #711298)
++ * Actually use a fixed mktime.m4 (Closes: #698908)
++
++ -- Thorsten Glaser <tg@mirbsd.de> Wed, 26 Jun 2013 19:40:39 +0000
++
++cvs (2:1.12.13+real-9) unstable; urgency=low
++
++ * Fix watch file: mangle Epoch away, too
++ * Remove old conffile /etc/pam.d/cvs (Closes: #669957)
++ * Policy 3.9.3 (no changes)
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 22 Apr 2012 15:10:16 +0000
++
++cvs (2:1.12.13+real-8) unstable; urgency=high
++
++ * Brown paper bag change: sanity.sh (the testsuite) was corrupted
++ during checkout of the packaging VCS in the -7 (all PASS again)
++ * Bonus change: use hardening build flags; fix resulting warnings
++ * Urgency due to riding on the previous upload’s security fix
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 20:39:42 +0000
++
++cvs (2:1.12.13+real-7) unstable; urgency=high
++
++ * Drop unsafe scripts from contrib, add NEWS entry for that
++ (Closes: #658947)
++ * debian/rules: cleanup (remove install/check, dh_installdirs;
++ switch to dh_prep if extant)
++ * Use -Wl,--as-needed for the link to appease dpkg-shlibdebs
++ * Update maintainer scripts from template jupp (better comments)
++ * Drop csh-using contrib script from package, with NEWS entry
++ * Demote rcs2log(1) to contrib, add NEWS entry
++ * Stop shipping a patch to rcs(1) with the binary package, ffs
++ * Don’t ship cvshelp.man either, it’s antiquated and not useful
++ * Fix meaning of -rHEAD for the diff subcommand (with NEWS entry)
++ * Make the testsuite again usable (full PASS)
++ * Apply suggested patch for CVE-2012-0804 from Petr Pisar
++ * Update lintian overrides
++
++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 18:01:44 +0000
++
++cvs (2:1.12.13+real-6) unstable; urgency=low
++
++ * d/watch: mangle the +real away until 1.12.14 is out,
++ as this is an artefact from the old (epoch 1) packaging
++ * Demote mksh to Suggests, recommended (hah!) by many
++ (Closes: #631110) (merges back
++ 2:1.12.13+real-5debianderivatethatcannotbenamed1)
++ * Honour Policy §11.4; fix by YOSHINO Yoshihito (Closes: #631936)
++ * Use upstream-source-in-CVS packaging, clean up
++ * d/rules: Add build-{arch,indep} targets as aliases to build
++ * Bring d/copyright more in sync with this distfile’s reality
++ * d/control: Reword package description. (Closes: #631826)
++ * If sleeping at exit, sleep another 20 ms (2 HZ), to avoid
++ possible race conditions. (Should work around LP: #12230)
++ * Update in sync with MirPorts 1.12.13-12 = MirOS BSD 0AAF.1
++ * Stop installing cvsbug(8), use reportbug instead
++
++ -- Thorsten Glaser <tg@mirbsd.de> Thu, 28 Jul 2011 16:02:02 +0000
++
++cvs (2:1.12.13+real-5) unstable; urgency=low
++
++ * Drop PAM entirely, it was specific to Debian anyway
++ * Add cvs-switchroot, from src/scripts/mnt-cvsroot (Closes: #41685)
++ * Drop some old and irrelevant changelogs from the binary package
++ * Update from MirPorts 1.12.13-11 = MirOS BSD 0AAE.2
++ * Revert most of 65_login_cvspass_message and just be silent if the
++ pserver client password file doesn't exist and create it silently
++ if needed (Closes: #524146)
++ * Honour noexec flag in 'cvs -n init' (Closes: #151982)
++ * Sync modules option list with cederqvist (Closes: #226888)
++ * Apply patch for assert on negated version numbers on diff
++ (Closes: #297551)
++ From: Peter Moulder <Peter.Moulder@infotech.monash.edu.au>
++ * Change cvs add dir message (Closes: #294094)
++ * Accept port when using extssh connection method (Closes: #151882)
++ * Write a new command for direct ,v file download (Closes: #421119)
++ * Drop broken libbsd.fd.o headers and shut up gcc 4.6 warnings
++ * Fix piuparts breakage: ignore delgroup non-existence on purge
++ * Deliver a NEWS.Debian (Closes: #626106)
++ * d/README.source: Update, call to automake is now also needed
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:32:56 +0000
++
++cvs (2:1.12.13+real-4) unstable; urgency=low
++
++ * Renamed .orig.tar.gz due to archive pathname conflict
++ * d/README.source: Document patch location (VCS-CVS, VCS-Browser alike)
++ * New build from MirPorts 1.12.13-10 = MirOS BSD 0AAE.1
++ - Contains changes from cvs
++ (1:1.12.13-12debianderivatethatcannotbenamed1):
++ + Apply fix from Kees Cook to avoid %n in writable memory (LP: #296453)
++ - Other BTS relevant changes:
++ + Allow CVSROOT-less “version” (LP: #97683) and “cvs version”
++ + Update loginfo documentation, ‘%{t}’ is indeed gone (Closes: #329151)
++ + Lower syslog level from emergency (Closes: #563856)
++ + Fix awk substr start argument, thanks John Hughes (Closes: #518600)
++ + Rename nodes with colons in them (Closes: #113809)
++ + Fix typo (Closes: #464137)
++ + Document missing rcs2log(1) options (Closes: #306354) and fix dashes
++ * Upload new package to Debian unstable (Closes: #306432)
++ (Closes: #458864) (Closes: #464134) (Closes: #479752)
++ (Closes: #576035) (Closes: #614700) (Closes: #617578)
++ - Drop PAM (Closes: #340984) (Closes: #393436)
++ - No longer installs repositories (Closes: #168300)
++ (Closes: #408117) (Closes: #482301) (Closes: #499790)
++ (Closes: #511643) (Closes: #607297)
++ - Deprecate pserver (Closes: #343169) (Closes: #495938)
++ - Drop Origin and Bugs headers again (upload to Debian proper)
++ and old (pre-Debian upload) private repo changelog entries
++ - Thank you, Steve, for handing over package maintainership!
++ * Clarify package description (LP: #377411)
++ * Build with Kerberos V support (Closes: #60800) (LP: #157760)
++ * Recommends: openssh-client; Suggests: rcs
++
++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 07 May 2011 01:00:39 +0000
+--- cvs-1.12.13+real.orig/debian/control
++++ cvs-1.12.13+real/debian/control
+@@ -0,0 +1,40 @@
++Source: cvs
++Section: vcs
++Priority: optional
++Maintainer: Thorsten Glaser <tg@mirbsd.de>
++Homepage: http://www.nongnu.org/cvs/
++Build-Depends: debhelper-compat (= 13),
++ ghostscript, groff, libbsd-dev, libkrb5-dev | heimdal-dev,
++# # optional, for running the sanity suite
++# procps,
++ texinfo, texlive-base, zlib1g-dev
++Standards-Version: 4.5.1
++Rules-Requires-Root: no
++VCS-git: https://evolvis.org/anonscm/git/alioth/cvs.git -b master
++VCS-Browser: https://evolvis.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=alioth/cvs.git;a=shortlog;h=refs/heads/master
++
++Package: cvs
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends}, ${shlibs:Depends}, adduser
++Recommends: openssh-client
++Suggests: mksh, rcs
++Enhances: rcs, cvs2svn (>= 2.4.0-4~)
++Description: Concurrent Versions System
++ CVS is a version control system, which allows you to keep access
++ to old versions of files (usually source code), keep a log of
++ who, when, and why changes occurred, etc., like RCS or SCCS.
++ It handles multiple developers, multiple directories, triggers to
++ enable/log/control various operations, and can work over a wide
++ area network. The texinfo manual provides further information on
++ more tasks that it can perform.
++ .
++ There are some tasks that are not covered by CVS. They can be done in
++ conjunction with CVS but will tend to require some script-writing and
++ software other than CVS. These tasks are bug-tracking, build management
++ (that is, make and make-like tools), and automated testing. However,
++ CVS makes these tasks easier.
++ .
++ This package contains a CVS binary which can act as both client and
++ server, although there is no CVS dæmon; to access remote repositories,
++ please use :extssh: not :pserver: any more.
+--- cvs-1.12.13+real.orig/debian/copyright
++++ cvs-1.12.13+real/debian/copyright
+@@ -0,0 +1,117 @@
++This package was debianised by Thorsten Glaser <tg@mirbsd.de> on
++Wed Sep 15 21:52:29 UTC 2010.
++
++It was downloaded from:
++http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.gz
++
++
++GNU CVS itself is Copyright © 1986-2005
++ The Free Software Foundation, Inc.
++with portions contributed by others.
++
++It is licenced under the GNU General Public License, version 2 or later,
++with a good part available under either GPLv1 or LGPLv2.x. On Debian sy‐
++stems the licence can be found at: /usr/share/common-licenses/GPL-2
++
++Parts of the code are covered by the following GPL-compatible copyright:
++
++ * Copyright (c) 1993 Bob Withers
++ * All Rights Reserved
++ *
++ * Permission to use, copy, modify, and distribute this software and
++ * its documentation for any purpose and without fee is hereby granted
++ * provided that the above copyright notice appears in all copies and
++ * that both the copyright notice and this permission notice appear in
++ * supporting documentation.
++
++One header file, which almost certainly does not fall under copyright
++law, is covered by the four-clause UCB licence, however in 1999 the
++advertising clause was rescinded, so it’s GPL compatible now:
++
++ * Copyright (c) 1989 The Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++
++Parts and the packaging are covered by the following GPL-compatible licence:
++
++# Copyright © 2005, 2008, 2011, 2017, 2021
++# mirabilos <m@mirbsd.org>
++#
++# Provided that these terms and disclaimer and all copyright notices
++# are retained or reproduced in an accompanying document, permission
++# is granted to deal in this work without restriction, including un‐
++# limited rights to use, publicly perform, distribute, sell, modify,
++# merge, give away, or sublicence.
++#
++# This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
++# the utmost extent permitted by applicable law, neither express nor
++# implied; without malicious intent or gross negligence. In no event
++# may a licensor, author or contributor be held liable for indirect,
++# direct, other damage, loss, or other issues arising in any way out
++# of dealing in the work, even if advised of the possibility of such
++# damage or existence of a defect, except proven that it results out
++# of said person’s immediate fault when using the work as intended.
++
++CVS also includes a convenience copy of zlib which is not used;
++it’s covered by these (GPL-compatible) terms:
++
++ Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
++
++ This software is provided 'as-is', without any express or implied
++ warranty. In no event will the authors be held liable for any damages
++ arising from the use of this software.
++
++ Permission is granted to anyone to use this software for any purpose,
++ including commercial applications, and to alter it and redistribute it
++ freely, subject to the following restrictions:
++
++ 1. The origin of this software must not be misrepresented; you must not
++ claim that you wrote the original software. If you use this software
++ in a product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++ 2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++ 3. This notice may not be removed or altered from any source distribution.
++
++zlib, again, contains contributed material under terms as those:
++
++ * Copyright (c) 1997
++ * Christian Michelsen Research AS
++ * Advanced Computing
++ * Fantoftvegen 38, 5036 BERGEN, Norway
++ * http://www.cmr.no
++ *
++ * Permission to use, copy, modify, distribute and sell this software
++ * and its documentation for any purpose is hereby granted without fee,
++ * provided that the above copyright notice appear in all copies and
++ * that both that copyright notice and this permission notice appear
++ * in supporting documentation. Christian Michelsen Research AS makes no
++ * representations about the suitability of this software for any
++ * purpose. It is provided "as is" without express or implied warranty.
+--- cvs-1.12.13+real.orig/debian/cvs-switchroot
++++ cvs-1.12.13+real/debian/cvs-switchroot
+@@ -0,0 +1,99 @@
++#!/bin/mksh
++# $MirOS: src/scripts/mnt-cvsroot,v 1.19 2016/10/21 21:09:59 tg Exp $
++#-
++# Copyright © 2005, 2008, 2011
++# mirabilos <m@mirbsd.org>
++#
++# Provided that these terms and disclaimer and all copyright notices
++# are retained or reproduced in an accompanying document, permission
++# is granted to deal in this work without restriction, including un‐
++# limited rights to use, publicly perform, distribute, sell, modify,
++# merge, give away, or sublicence.
++#
++# This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
++# the utmost extent permitted by applicable law, neither express nor
++# implied; without malicious intent or gross negligence. In no event
++# may a licensor, author or contributor be held liable for indirect,
++# direct, other damage, loss, or other issues arising in any way out
++# of dealing in the work, even if advised of the possibility of such
++# damage or existence of a defect, except proven that it results out
++# of said person’s immediate fault when using the work as intended.
++#-
++# Change CVSROOT of a checked out tree (and save space with it)
++# With option -T: change Tag instead of Root
++
++me=${0##*/}
++function die {
++ print -ru2 -- "$me: $*"
++ exit 1
++}
++
++if [[ $1 = -T ]]; then
++ tagmode=-T
++ fn=Tag
++ shift
++else
++ tagmode=
++ fn=Root
++fi
++newroot=$1
++useroot=0
++if [[ $newroot = - ]]; then
++ shift
++ newroot=$(realpath "$1")
++ [[ -d $newroot ]] && if [[ -d $newroot/CVS ]]; then
++ newroot=$newroot/CVS/$fn
++ else
++ newroot=$newroot/$fn
++ fi
++ useroot=1
++fi
++if [[ -z $newroot || $newroot = -? ]]; then
++ print -u2 "Syntax: $me newroot [dir [...]]"
++ print -u2 "\t$me - .../CVS/Root [dir [...]]"
++ print -u2 "\t$me -T - .../CVS/Tag [dir [...]]"
++ exit 1
++fi
++shift
++
++[[ -n $1 ]] || set -- .
++
++# realpath(2)ise arguments
++set -A arg
++i=0
++for name in "$@"; do
++ arg[i++]=$(realpath "$name")
++done
++
++T="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)" || die fatal: cannot mktemp
++
++if (( useroot )); then
++ rm -f "$T"
++ ln "$newroot" "$T" || cp "$newroot" "$T" || \
++ die "fatal: cannot copy '$newroot' to temporary '$T'"
++fi
++
++trap 'rm -f "$T"; exit 0' 0
++trap 'rm -f "$T"; trap - EXIT; exit 1' 1 2 3 5 13 15
++
++if (( !useroot )); then
++ chmod 664 "$T"
++ print -r -- "$newroot" >"$T"
++fi
++
++let rv=0
++find "${arg[@]}" -path \*/CVS/$fn -print0 |&
++while IFS= read -d '' -pr name; do
++ rm "$name" || die "error: cannot rm <$name>"
++ ln -f "$T" "$name" || if ! U="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)"; then
++ cp "$T" "$name"
++ elif cat "$T" >"$U" && ln -f "$U" "$name"; then
++ rm -f "$T"
++ T="$U"
++ else
++ rm -f "$U"
++ cp "$T" "$name"
++ fi
++done
++
++exit 0
+--- cvs-1.12.13+real.orig/debian/cvs-switchroot.1
++++ cvs-1.12.13+real/debian/cvs-switchroot.1
+@@ -0,0 +1,76 @@
++.Dd June 10, 2011
++.Dt CVS\-SWITCHROOT 1
++.Os
++.Sh NAME
++.Nm cvs\-switchroot
++.Nd change repository or tag in a cvs working copy
++.Sh SYNOPSIS
++.Nm
++.Op Fl T
++.Ar newroot
++.Op Ar
++.Pp
++.Nm
++.Op Fl T
++\-\&
++.Ar srcpath
++.Op Ar
++.Sh DESCRIPTION
++The
++.Nm
++utility manipulates a CVS working copy directly,
++modifying the information stored in the administrative
++subdirectory and saving space by hardlinking if possible.
++.Pp
++If the
++.Fl T
++option is given, the sticky tag is operated on,
++otherwise, the repository path
++.Pq Ev CVSROOT .
++.Pp
++The information (Tag or Root) is set to the same as in
++.Ar srcpath
++if the first non-option argument
++.Ar newroot
++is a sole dash
++.Pq Sq \-\& ,
++the literal value
++.Ar newroot
++otherwise.
++.Sh EXAMPLES
++Change all
++.Pa Root
++information in the current sandbox to
++.Pa /cvs :
++.Bd -literal -offset ident
++$ cvs\-switchroot /cvs .
++.Ed
++.Pp
++Set all roots in the current working directory and all
++its subdirectories to the
++.Pa Root
++of the parent directory:
++.Bd -literal -offset ident
++$ cvs\-switchroot \- .. .
++.Ed
++.Pp
++Hardlink the
++.Pa Tag
++information in the current working directory, for example
++.Pa /usr/src ,
++and
++.Pa /usr/ports
++with each other:
++.Bd -literal -offset ident
++$ cvs\-switchroot \-T \- . . /usr/ports
++.Ed
++.Sh SEE ALSO
++.Xr cvs 1
++.Sh HISTORY
++.Nm
++has existed in the MirBSD source tree since 2005.
++It was added to Debian's cvs package in 2011.
++.Sh CAVEATS
++.Nm
++depends on
++.Nm mksh .
+--- cvs-1.12.13+real.orig/debian/doc-base
++++ cvs-1.12.13+real/debian/doc-base
+@@ -0,0 +1,21 @@
++Document: cvs-doc
++Title: Cederqvist - The CVS manual
++Author: FSF, Derek R. Price, Ximbiot, Signum Support AB, and others
++Abstract: This manual describes how to use and administer CVS.
++ It is both a manual and a tutorial, as well as a reference guide,
++ also known as The Cederqvist, and *the* book to read before using CVS.
++Section: Programming
++
++Format: HTML
++Index: /usr/share/doc/cvs/cvs.html
++Files: /usr/share/doc/cvs/cvs.html*
++
++Format: Text
++Files: /usr/share/doc/cvs/cvs.txt*
++
++Format: PDF
++Files: /usr/share/doc/cvs/cvs.pdf*
++
++Format: Info
++Index: /usr/share/info/cvs.info.gz
++Files: /usr/share/info/cvs.info*
+--- cvs-1.12.13+real.orig/debian/doc-base.client
++++ cvs-1.12.13+real/debian/doc-base.client
+@@ -0,0 +1,18 @@
++Document: cvs-doc-client
++Title: CVS client/server protocol description
++Abstract: This document describes the client/server protocol used by CVS.
++Section: Programming
++
++Format: HTML
++Index: /usr/share/doc/cvs/cvsclient.html
++Files: /usr/share/doc/cvs/cvsclient.html*
++
++Format: Text
++Files: /usr/share/doc/cvs/cvsclient.txt*
++
++Format: PDF
++Files: /usr/share/doc/cvs/cvsclient.pdf*
++
++Format: Info
++Index: /usr/share/info/cvsclient.info.gz
++Files: /usr/share/info/cvsclient.info*
+--- cvs-1.12.13+real.orig/debian/doc-base.faq
++++ cvs-1.12.13+real/debian/doc-base.faq
+@@ -0,0 +1,10 @@
++Document: cvs-doc-faq
++Title: CVS - Frequently Asked Questions
++Author: David Grubbs, Dr. Pascal Molli, and others
++Abstract: Packaged FAQ-O-MATIC dump containing a number of answers
++ to frequently asked questions about CVS. The document may be out of
++ date; http://ximbiot.com/cvs/wiki/CVS%20FAQ contains an updated version.
++Section: Programming
++
++Format: Text
++Files: /usr/share/doc/cvs/FAQ*
+--- cvs-1.12.13+real.orig/debian/doc-base.intro
++++ cvs-1.12.13+real/debian/doc-base.intro
+@@ -0,0 +1,7 @@
++Document: cvs-doc-intro
++Title: Introduction to using CVS
++Author: Steven Pemberton <Steven.Pemberton@cwi.nl>
++Section: Programming
++
++Format: Text
++Files: /usr/share/doc/cvs/intro.txt*
+--- cvs-1.12.13+real.orig/debian/doc-base.paper
++++ cvs-1.12.13+real/debian/doc-base.paper
+@@ -0,0 +1,14 @@
++Document: cvs-doc-paper
++Title: CVS II: Parallelizing Software Development
++Author: Brian Berliner <berliner@prisma.com>
++Abstract: This paper is the cvs USENIX article, Winter 1990.
++ The program described in this paper fills a need in the UNIX community
++ for a freely available tool to manage software revision and release
++ control in a multi-developer, multi-directory, multi-group environment.
++ This tool also addresses the increasing need for tracking third-party
++ vendor source distributions while trying to maintain local modifications
++ to earlier releases.
++Section: Programming
++
++Format: PDF
++Files: /usr/share/doc/cvs/cvs-paper.pdf*
+--- cvs-1.12.13+real.orig/debian/doc-base.rcsfiles
++++ cvs-1.12.13+real/debian/doc-base.rcsfiles
+@@ -0,0 +1,11 @@
++Document: cvs-doc-rcsfiles
++Title: RCS file format description
++Author: Jim Kingdon
++Abstract: This file attempts to document the RCS file format (which is
++ implemented by a great many tools, both free and non-free, both by
++ calling GNU RCS and by reimplementing access to RCS files) in some
++ standard separate from any one tool.
++Section: Programming
++
++Format: Text
++Files: /usr/share/doc/cvs/RCSFILES*
+--- cvs-1.12.13+real.orig/debian/docs
++++ cvs-1.12.13+real/debian/docs
+@@ -0,0 +1,20 @@
++AUTHORS
++BUGS
++DEVEL-CVS
++FAQ
++HACKING
++MINOR-BUGS
++NEWS
++PROJECTS
++README
++TODO
++debian/builddir/doc/*.html
++debian/builddir/doc/*.txt
++debian/builddir/doc/cvs.pdf
++debian/builddir/doc/cvsclient.pdf
++debian/stagedir/clogs/ChangeLog.*
++doc/HACKING.DOCS
++doc/RCSFILES
++doc/cvs-paper.ms
++doc/cvs-paper.pdf
++doc/writeproxy.rtf
+--- cvs-1.12.13+real.orig/debian/info
++++ cvs-1.12.13+real/debian/info
+@@ -0,0 +1 @@
++debian/stagedir/usr/share/info/*.info
+--- cvs-1.12.13+real.orig/debian/install
++++ cvs-1.12.13+real/debian/install
+@@ -0,0 +1,11 @@
++#contrib/cvs_acls.html usr/share/cvs/contrib/
++contrib/descend.man usr/share/cvs/contrib/
++contrib/descend.sh usr/share/cvs/contrib/
++contrib/rcs2log.1 usr/share/cvs/contrib/
++contrib/rcs2sccs.sh usr/share/cvs/contrib/
++contrib/sandbox_status.man usr/share/cvs/contrib/
++debian/cvs-switchroot usr/bin/
++debian/lintian/cvs usr/share/lintian/overrides/
++debian/stagedir/usr/bin/cvs usr/bin/
++#debian/stagedir/usr/bin/cvsbug usr/bin/
++debian/stagedir/usr/share/cvs/contrib/* usr/share/cvs/contrib/
+--- cvs-1.12.13+real.orig/debian/lintian/cvs
++++ cvs-1.12.13+real/debian/lintian/cvs
+@@ -0,0 +1,2 @@
++# not really documentation, more a directory listing / description
++cvs: package-contains-documentation-outside-usr-share-doc usr/share/cvs/contrib/README
+--- cvs-1.12.13+real.orig/debian/manpages
++++ cvs-1.12.13+real/debian/manpages
+@@ -0,0 +1,4 @@
++debian/cvs-switchroot.1
++debian/stagedir/usr/share/man/man1/cvs.1
++debian/stagedir/usr/share/man/man5/cvs.5
++#debian/stagedir/usr/share/man/man8/cvsbug.8
+--- cvs-1.12.13+real.orig/debian/postinst
++++ cvs-1.12.13+real/debian/postinst
+@@ -0,0 +1,50 @@
++#!/bin/sh
++
++set -e
++
++# This maintainer script can be called the following ways:
++#
++# * new-postinst "configure" [$most_recently_configured_version]
++# The package is unpacked; all dependencies are unpacked and, when there
++# are no circular dependencies, configured.
++#
++# * old-postinst "abort-upgrade" $new_version
++# * old-postinst "abort-remove"
++# * conflictors-postinst "abort-remove" "in-favour" $new_package
++# $new_version
++# * deconfigureds-postinst "abort-deconfigure" "in-favour"
++# $failed_install_package $fip_version # new-package
++# ["removing" $conflicting_package $cp_version] # old-package
++# The package is unpacked; all dependencies are at least Half-Installed,
++# previously been configured, and not removed. In some error situations,
++# dependencies may not be even fully unpacked.
++#
++# * postinst "triggered" "${triggers[*]}"
++# For trigger-only calls, i.e. if "configure" is not called.
++#
++# * new-postinst "reconfigure" [$most_recently_configured_version](?)
++# Treat this as just like "configure" for a future extension by debconf.
++
++case $1 in
++(configure|reconfigure)
++ addgroup --force-badname --system _cvsadmin
++ ;;
++
++(abort-upgrade|abort-remove|abort-deconfigure)
++ ;;
++
++(triggered)
++ ;;
++
++(*)
++ echo >&2 "E: postinst called with unknown subcommand '$1'"
++ exit 1
++ ;;
++esac
++
++# dh_installdeb will replace this with shell code automatically
++# generated by other debhelper scripts.
++
++#DEBHELPER#
++
++exit 0
+--- cvs-1.12.13+real.orig/debian/postrm
++++ cvs-1.12.13+real/debian/postrm
+@@ -0,0 +1,50 @@
++#!/bin/sh
++
++set -e
++
++# This maintainer script can be called the following ways:
++#
++# * postrm "remove"
++# * postrm "purge"
++# * old-postrm "upgrade" $new_version
++# * disappearers-postrm "disappear" $overwriter_pkg $overwriter_version
++# The package's files have been removed or replaced; only Essential pak-
++# kages may be available; skip gracefully actions requiring Depends.
++#
++# * new-postrm "failed-upgrade" $old_version
++# * new-postrm "failed-upgrade" $old_version $new_version # 1.18.5, stretch
++# Called when 'old-postrm "upgrade"' fails; the new package is unpacked,
++# Essential packages and Pre-Depends are available; the latter have been
++# configured and never removed but may be Unpacked or Half-Configured.
++#
++# * new-postrm "abort-install" [$old_version]
++# * new-postrm "abort-install" [$old_version $new_version] # 1.18.5, stretch
++# * new-postrm "abort-upgrade" $old_version
++# * new-postrm "abort-upgrade" $old_version $new_version # 1.18.5, stretch
++# Called when preinst fails; package is not unpacked. Essential packages
++# and (unpacked or Half-Configured) Pre-Depends are available.
++
++case $1 in
++(remove)
++ ;;
++
++(purge)
++ test -x /usr/sbin/update-inetd && update-inetd --remove "^cvspserver"
++ (delgroup --system --only-if-empty _cvsadmin || :)
++ ;;
++
++(upgrade|disappear|failed-upgrade|abort-install|abort-upgrade)
++ ;;
++
++(*)
++ echo >&2 "E: postrm called with unknown subcommand '$1'"
++ exit 1
++ ;;
++esac
++
++# dh_installdeb will replace this with shell code automatically
++# generated by other debhelper scripts.
++
++#DEBHELPER#
++
++exit 0
+--- cvs-1.12.13+real.orig/debian/rules
++++ cvs-1.12.13+real/debian/rules
+@@ -0,0 +1,185 @@
++#!/usr/bin/make -f
++
++ifeq (,$(filter terse,${DEB_BUILD_OPTIONS}))
++export DH_VERBOSE=1
++export V=1
++export VERBOSE=1
++endif
++
++LC_ALL:=C
++export LC_ALL
++
++shellescape='$(subst ','\'',$(1))'
++shellexport=$(1)=$(call shellescape,${$(1)})
++
++DEB_BUILD_ARCH?=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
++DEB_HOST_ARCH?=$(shell dpkg-architecture -qDEB_HOST_ARCH)
++DEB_BUILD_GNU_TYPE?=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++DEB_HOST_GNU_TYPE?=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++
++OUR_CPPFLAGS:=
++OUR_CFLAGS:= -Wall -Wformat
++OUR_LDFLAGS:=
++
++OUR_CPPFLAGS+= -D_GNU_SOURCE
++OUR_CPPFLAGS+= -DUSE_LIBBSD
++OUR_CFLAGS+= -fno-strict-aliasing
++# addresses part of #698908
++OUR_CFLAGS+= -fwrapv
++# for now. uses are mostly checked.
++OUR_CFLAGS+= -Wno-unused-result
++
++dpkgbuildflagsmkescape=$(subst \,\\\,$(1))
++export DEB_BUILD_MAINT_OPTIONS:=hardening=+all
++export DEB_CPPFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CPPFLAGS})
++export DEB_CFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CFLAGS})
++export DEB_CXXFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CXXFLAGS})
++export DEB_LDFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_LDFLAGS})
++include /usr/share/dpkg/buildflags.mk
++include /usr/share/dpkg/buildtools.mk
++
++LIBS+= -lbsd
++
++CONFIGURE_ENV:= $(foreach i,CC CPPFLAGS CFLAGS LDFLAGS LIBS,$(call shellexport,$i))
++CONFIGURE_ENV+= CSH=/bin/csh
++CONFIGURE_ENV+= ac_cv_path_MKTEMP=/bin/mktemp
++
++CONFIGURE_ARGS:= --build=${DEB_BUILD_GNU_TYPE} \
++ --host=${DEB_HOST_GNU_TYPE} \
++ --prefix=/usr \
++ --infodir=/usr/share/info \
++ --mandir=/usr/share/man \
++ --sysconfdir=/etc \
++ --disable-dependency-tracking \
++ --disable-maintainer-mode \
++ --disable-pam \
++ --disable-nls \
++ --enable-client \
++ --enable-password-authenticated-client \
++ --enable-server \
++ --enable-proxy \
++ --enable-case-sensitivity \
++ --enable-encryption \
++ --disable-lock-compatibility \
++ --enable-rootcommit \
++ --enable-config-override=no \
++ --without-krb4 \
++ --with-gssapi \
++ --with-external-zlib \
++ --with-rsh=ssh \
++ --with-editor=/usr/bin/editor \
++ --with-tmpdir=/var/tmp \
++ --with-umask=002 \
++ --with-cvs-admin-group=_cvsadmin
++
++MAKE_ARGS:= MAKEINFO=makeinfo
++MAKE_ARGS+= MAKEINFOFLAGS=--no-split
++# ‘u’ is default in Debian and gives warnings (upstream has ‘cru’)
++MAKE_ARGS+= ARFLAGS=rc
++
++CLEANFILES:= autom4te.cache build-aux/config.guess \
++ build-aux/config.sub cvs.spec debian/.*_stamp \
++ debian/CVSTEMP debian/builddir debian/stagedir \
++ doc/cvs-paper.pdf doc/cvs.1 doc/cvs.info* \
++ doc/cvs.pdf doc/cvsclient.info* doc/cvsclient.pdf \
++ doc/getdate-cvs.texi emx/Makefile os2/Makefile \
++ vms/config.h windows-NT/config.h
++
++debian/.configure_stamp:
++ dh_testdir
++ -rm -rf ${CLEANFILES}
++ cp /usr/share/misc/config.guess /usr/share/misc/config.sub build-aux/
++ dh_autoreconf
++ mkdir debian/builddir debian/stagedir
++ cd debian/builddir && \
++ env ${CONFIGURE_ENV} sh ../../configure ${CONFIGURE_ARGS}
++ # generate PDF 1.4 by default
++ ln -s ../../../build-aux/texinfo.tex debian/builddir/doc/texinfo-r.tex
++ printf '%s\n' \
++ '\pdfminorversion4\relax\pdfobjcompresslevel0\relax%' \
++ '\input texinfo-r.tex' \
++ >debian/builddir/doc/texinfo.tex
++ @:>$@
++
++build-indep:
++build build-arch: debian/.build_stamp
++
++debian/.build_stamp: debian/.configure_stamp
++ dh_testdir
++ cd debian/builddir && ${MAKE} ${MAKE_ARGS}
++ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
++ cd debian/builddir && ${MAKE} -C doc ${MAKE_ARGS} doc html info pdf txt
++endif
++ifneq (,$(filter sanity,$(DEB_BUILD_OPTIONS)))
++ # run the testsuite after build (DEB_BUILD_OPTIONS=sanity)
++ # Depends on procps and, if running locally (not in a buildd chroot),
++ # ssh + rsync (logging in to localhost), for testing remote/proxy op.
++ # warning: this takes a *lot* of time!
++ # idea: run this under Valgrind to take even more time ;)
++ cd debian/builddir && ${MAKE} ${MAKE_ARGS} check
++endif
++ @:>$@
++
++clean:
++ dh_testdir
++ dh_autoreconf_clean
++ -rm -rf ${CLEANFILES}
++ dh_clean
++
++binary-indep:
++
++binary-arch: debian/.build_stamp
++ dh_testdir
++ dh_testroot
++ if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi
++ -rm -rf debian/stagedir
++ mkdir -p debian/stagedir/clogs
++ cd debian/builddir && \
++ ${MAKE} ${MAKE_ARGS} DESTDIR=${CURDIR}/debian/stagedir install
++ cat ChangeLog ChangeLog.zoo >debian/stagedir/clogs/ChangeLog
++ cat doc/ChangeLog doc/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.doc
++ #cat lib/ChangeLog lib/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.lib
++ #cat src/ChangeLog src/ChangeLog-97 src/ChangeLog-96 src/ChangeLog-9395 \
++ # src/ChangeLog-9194 >debian/stagedir/clogs/ChangeLog.src
++ cp src/ChangeLog debian/stagedir/clogs/ChangeLog.src
++ cp contrib/ChangeLog debian/stagedir/clogs/ChangeLog.contrib
++ cp diff/ChangeLog debian/stagedir/clogs/ChangeLog.diff
++ #cp m4/ChangeLog debian/stagedir/clogs/ChangeLog.m4
++ #cp man/ChangeLog debian/stagedir/clogs/ChangeLog.man
++ #cp tools/ChangeLog debian/stagedir/clogs/ChangeLog.tools
++ # fat and nonsensical to ship this
++ rm -f debian/stagedir/usr/share/cvs/contrib/rcs-5.7-commitid.patch
++ # uses csh
++ rm -f debian/stagedir/usr/share/cvs/contrib/sccs2rcs
++ # unsafe
++ rm -f debian/stagedir/usr/share/cvs/contrib/commit_prep
++ rm -f debian/stagedir/usr/share/cvs/contrib/cvs_acls
++ rm -f debian/stagedir/usr/share/cvs/contrib/log
++ rm -f debian/stagedir/usr/share/cvs/contrib/log_accum
++ rm -f debian/stagedir/usr/share/cvs/contrib/mfpipe
++ rm -f debian/stagedir/usr/share/cvs/contrib/rcslock
++ # we ship cvs-switchroot(1) instead
++ rm -f debian/stagedir/usr/share/cvs/contrib/newcvsroot
++ dh_installchangelogs debian/stagedir/clogs/ChangeLog
++ifneq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
++ # this will cause lintian warnings as it installs the doc-base files
++endif
++ dh_installdocs
++ dh_install
++ mv debian/cvs/usr/share/cvs/contrib/intro.doc \
++ debian/cvs/usr/share/doc/cvs/intro.txt
++ dh_installinfo
++ dh_installman
++ dh_link
++ dh_strip
++ dh_compress -X.pdf
++ cd debian/cvs/usr/share/cvs/contrib && chmod +x descend.sh rcs2sccs.sh
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb -- -Zgzip -z9
++
++binary: binary-indep binary-arch
++.PHONY: binary binary-arch binary-indep build build-arch build-indep clean
+--- cvs-1.12.13+real.orig/debian/source/format
++++ cvs-1.12.13+real/debian/source/format
+@@ -0,0 +1 @@
++1.0
+--- cvs-1.12.13+real.orig/debian/source/lintian-overrides
++++ cvs-1.12.13+real/debian/source/lintian-overrides
+@@ -0,0 +1,35 @@
++# reused downstream with request to keep compressing with gzip
++cvs source: custom-compression-in-debian-rules
++
++# (well at least for now)
++# not my fault
++cvs source: deprecated-configure-filename
++
++# too near the freeze to change it now
++cvs source: no-dh-sequencer
++
++# desired method of keeping changes is as VCS working tree
++cvs source: older-source-format 1.0
++cvs source: direct-changes-in-diff-but-no-patch-system *
++
++# wtf lintian‽
++cvs source: cute-field
++
++# not part of the binary package, and not legally a problem
++cvs source: license-problem-gfdl-non-official-text doc/getdate-cvs.texi *
++
++# this originates here, but I may just include it in a release later
++cvs source: maintainer-manual-page debian/cvs-switchroot.1
++
++# no, thanks
++cvs source: no-dep5-copyright
++
++# not our examples
++cvs source: package-does-not-install-examples zlib/examples/
++
++# this is… complicated; this package’s upstream is MirBSD,
++# not Savannah (nonGNU), which is the de-facto upstream of
++# (the 1.12.x series) GNU CVS as it is the only place with
++# activity for ages but the Savannah people didn’t manage,
++# yet, to officially transfer this, so let’s not, for now…
++cvs source: upstream-metadata-file-is-missing
+--- cvs-1.12.13+real.orig/debian/upstream/signing-key.asc
++++ cvs-1.12.13+real/debian/upstream/signing-key.asc
+@@ -0,0 +1,25 @@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: GnuPG v1
++
++mQGiBD4u3XQRBACN7F6Ducb4gaJw7LJPCaNbk4+eW/EWjiC+aoJhnNocWGfeKM2d
++NYRDPuyW6IqAmMPGBq0HAdSmi64BQg5mC8Q7NGujfzVDefACELuwQRUxFadbcAXn
++1eGUHGsst93FFwlhY+SH3Yuo1plvNBnlMhDt9ylT3/s38zKG874+A44L4wCg/7fh
++u0zqxFA0w22lXobhkKO4upED/0zA5BJ+d8brNLe6RpIQXTUzPxZ+UoU5RG9wlzv/
++zabSS6eAPpmeoIPeKdSwRO/G0/f3Qn/vxDKVTqRzNKpusKJz8TS+gDBZSFjQ1L3U
++TL6qh5kdnTy/yETg8wiUMXVaTqWtXP2eFEoHoto6dVP46BuULqQK980EmR6jg/ul
++EGC/BACD5iO81tygsm6OBEu59hJ+GykU60+9Mzz1/qPYdejJmJkmdoJZWplJULGD
++270nQlDarPJzMCpyrUzAZYdnmO6dwic/4hIxJENQ3GBrhbdr6YuuNgTxIXJJxTH7
++qTJqRrHLw9Cvk1oPFYlzE2vQuDNlrqxXg/V06l4/ZJfotj3mI7RNRGVyZWsgUi4g
++UHJpY2UgKEdldCBDVlMgU3VwcG9ydCBhdCA8aHR0cDovL3hpbWJpb3QuY29tPiEp
++IDxkZXJla0B4aW1iaW90LmNvbT6IYQQTEQIAGQUCPi7ddAQLBwMCAxUCAwMWAgEC
++HgECF4AAEgkQLD1OTBfyMaQHZUdQRwABAVEoAJ9o9E9Ya1dKUi1xRepkcpWqzjjt
++OgCgqSQSvoBA3NLu8/US2RAb+Xn1vAK5AQ0EPi7dehAEAJgUmO0vNtZJj4qUyyFd
++lw9wH9jQVRwblKxItr/0eO28ta+JOXWH668/wcyJFbVCulanS/o1crbq1bq3662Q
++EiHaZuB4hUJHCmkrfnxSvyw+w3tvk1ByiWw4uhsIiYCLpq6h/w9Yv0bSXOctGWFv
++/dnZw1f/N1PLU955Ze7hofVrAAMGA/9dw6G1LznEO2zjfTYHZtEKSlAtvRGqyOQc
++7htMOXagUpPAF/KGHnBETWVyuEfNNW1c/EQ3LQi+L23q9u0L+cAcWiR4SBCejEII
++3bFE3hPLGxfa0LamJrq0kkSDoYm6OWB4WNPSGBCSZywwdLnLjqXiCU1+rT6qZcvN
++JEKFAJUOA4hOBBgRAgAGBQI+Lt16ABIJECw9TkwX8jGkB2VHUEcAAQE9AACfTWlS
++/WpC3LgkF8rcbbap9M8U/RkAoL2DhkJHX3uYYJzagVUiWJffkLnR
++=hls5
++-----END PGP PUBLIC KEY BLOCK-----
+--- cvs-1.12.13+real.orig/debian/watch
++++ cvs-1.12.13+real/debian/watch
+@@ -0,0 +1,3 @@
++version=4
++opts="dversionmangle=s/^[0-9]+://;s/\+real$//,pgpsigurlmangle=s/$/.sig/" \
++https://ftp.gnu.org/non-gnu/cvs/source/feature/([0-9.]*)/ cvs-([0-9.]*)\.tar\.gz
+--- cvs-1.12.13+real.orig/diff/analyze.c
++++ cvs-1.12.13+real/diff/analyze.c
+@@ -358,7 +358,7 @@
+ else
+ {
+ int c;
+- struct partition part;
++ struct partition part = { 0, 0, 0, 0 };
+
+ /* Find a point of correspondence in the middle of the files. */
+
+--- cvs-1.12.13+real.orig/diff/diff3.c
++++ cvs-1.12.13+real/diff/diff3.c
+@@ -1439,14 +1439,13 @@
+ int const mapping[3], rev_mapping[3];
+ {
+ int i;
+- int oddoneout;
++ int oddoneout = 0;
+ char *cp;
+ struct diff3_block *ptr;
+ int line;
+ size_t length;
+- int dontprint;
++ int dontprint = 0;
+ static int skew_increment[3] = { 2, 3, 1 }; /* 0==>2==>1==>3 */
+- char const *line_prefix = tab_align_flag ? "\t" : " ";
+
+ for (ptr = diff; ptr; ptr = D_NEXT (ptr))
+ {
+@@ -1503,7 +1502,7 @@
+ line = 0;
+ do
+ {
+- printf_output (line_prefix);
++ printf_output (tab_align_flag ? "\t" : " ");
+ cp = D_RELNUM (ptr, realfile, line);
+ length = D_RELLEN (ptr, realfile, line);
+ write_output (cp, length);
+@@ -1555,11 +1554,12 @@
+ int leading_dot, start, num;
+ {
+ write_output (".\n", 2);
+- if (leading_dot)
++ if (leading_dot) {
+ if (num == 1)
+ printf_output ("%ds/^\\.//\n", start);
+ else
+ printf_output ("%d,%ds/^\\.//\n", start, start + num - 1);
++ }
+ }
+
+ /*
+@@ -1750,11 +1750,12 @@
+ do
+ {
+ c = getc (infile);
+- if (c == EOF)
++ if (c == EOF) {
+ if (ferror (infile))
+ diff3_perror_with_exit ("input file");
+ else if (feof (infile))
+ diff3_fatal ("input file shrank");
++ }
+ cc = c;
+ write_output (&cc, 1);
+ }
+@@ -1804,7 +1805,7 @@
+ linesread += i;
+ while (0 <= --i)
+ while ((c = getc (infile)) != '\n')
+- if (c == EOF)
++ if (c == EOF) {
+ if (ferror (infile))
+ diff3_perror_with_exit ("input file");
+ else if (feof (infile))
+@@ -1813,6 +1814,7 @@
+ diff3_fatal ("input file shrank");
+ return conflicts_found;
+ }
++ }
+ }
+ /* Copy rest of common file. */
+ while ((c = getc (infile)) != EOF || !(ferror (infile) | feof (infile)))
+--- cvs-1.12.13+real.orig/diff/ifdef.c
++++ cvs-1.12.13+real/diff/ifdef.c
+@@ -189,7 +189,7 @@
+
+ default:
+ {
+- int value;
++ int value = 0;
+ char *speclim;
+
+ f = scan_printf_spec (spec);
+@@ -322,7 +322,7 @@
+
+ default:
+ {
+- int value;
++ int value = 0;
+ char *speclim;
+
+ f = scan_printf_spec (spec);
+--- cvs-1.12.13+real.orig/diff/side.c
++++ cvs-1.12.13+real/diff/side.c
+@@ -122,7 +122,7 @@
+ break;
+
+ case '\b':
+- if (in_position != 0 && --in_position < out_bound)
++ if (in_position != 0 && --in_position < out_bound) {
+ if (out_position <= in_position)
+ /* Add spaces to make up for suppressed tab past out_bound. */
+ for (; out_position < in_position; out_position++)
+@@ -133,6 +133,7 @@
+ cc = c;
+ write_output (&cc, 1);
+ }
++ }
+ break;
+
+ case '\f':
+--- cvs-1.12.13+real.orig/diff/util.c
++++ cvs-1.12.13+real/diff/util.c
+@@ -235,7 +235,7 @@
+ close (pipes[0]);
+ }
+
+- execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, 0);
++ execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, NULL);
+ pfatal_with_name (PR_PROGRAM);
+ }
+ else
+--- cvs-1.12.13+real.orig/doc/HACKING.DOCS
++++ cvs-1.12.13+real/doc/HACKING.DOCS
+@@ -16,7 +16,9 @@
+ @strong{ ... } Similar to @emph{}, but the effect is to
+ bracket with asterisks in info files (* ... *)
+ and in bold in PDF & probably in postscript &
+- HTML.
++ HTML. It will cause spurious links in info if
++ used in some circumstances; if in doubt, use
++ @empy{ ... } instead then.
+ @noindent Suppresses indentation of the following
+ paragraph. This can ocassionally be useful
+ after examples and the like.
+@@ -44,3 +46,6 @@
+
+ For more on using texinfo docs, see the `info texinfo' documentation or
+ http://www.gnu.org/manual/texinfo/texinfo.html .
++
++
++$MirOS: src/gnu/usr.bin/cvs/doc/HACKING.DOCS,v 1.3 2010/09/19 19:42:52 tg Exp $
+--- cvs-1.12.13+real.orig/doc/Makefile.am
++++ cvs-1.12.13+real/doc/Makefile.am
+@@ -1,4 +1,5 @@
+ ## Process this file with automake to produce Makefile.in
++# $MirOS: src/gnu/usr.bin/cvs/doc/Makefile.am,v 1.5 2017/01/09 22:54:22 tg Exp $
+ # Makefile for GNU CVS documentation (excluding man pages - see ../man).
+ #
+ # Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+@@ -84,7 +85,7 @@
+ # It is possible that an implicit .ms.ps target could be safely defined. I
+ # don't recall looking into it.
+ cvs-paper.ps: cvs-paper.ms
+- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
++ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+ cp cvs-paper.ps-t $@
+ -@rm -f cvs-paper.ps-t
+
+@@ -92,8 +93,8 @@
+ # Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
+ # is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
+ $(srcdir)/cvs-paper.pdf: cvs-paper.ms
+- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+- ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
++ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
++ ps2pdf14 -sPAPERSIZE=pa4 cvs-paper.ps-t cvs-paper.pdf-t
+ cp cvs-paper.pdf-t $@
+ -@rm -f cvs-paper.pdf-t cvs-paper.ps-t
+
+--- cvs-1.12.13+real.orig/doc/cvs-paper.ms
++++ cvs-1.12.13+real/doc/cvs-paper.ms
+@@ -1,4 +1,5 @@
+ .\" soelim cvs.ms | pic | tbl | troff -ms
++.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs-paper.ms,v 1.3 2017/08/12 17:37:55 tg Exp $
+ .\" @(#)cvs.ms 1.2 92/01/30
+ .\"
+ .\" troff source to the cvs USENIX article, Winter 1990, Washington, D.C.
+@@ -108,7 +109,7 @@
+ .SM
+ SCCS
+ .LG
+-[Bell] serialize file modifications by
++[Bell] serialise file modifications by
+ allowing only one developer to have a writable copy of a particular file at
+ any one point in time.
+ That developer is said to
+@@ -312,7 +313,7 @@
+ the copy, and then merges the modified copy with the original.
+ This paradigm allows developers to work in isolation from one another since
+ changes are made to copies of objects.
+-Because locks are not used, development is not serialized and can proceed
++Because locks are not used, development is not serialised and can proceed
+ in parallel.
+ Developers, however, must merge objects after the changes have been made.
+ In particular, a developer must resolve conflicts when the same object has
+@@ -853,7 +854,7 @@
+ it has been checked out, takes only 1.5 wall clock minutes.
+ Updating the \fIcomplete\fP 128 MByte source tree under \fBcvs\fP control
+ (17243 files/1005 directories) takes roughly 28 wall clock minutes and
+-utilizes one-third of the machine.
++utilises one-third of the machine.
+ For now this is entirely acceptable; improvements on these numbers will
+ possibly be made in the future.
+ .NH 2
+@@ -923,7 +924,7 @@
+ .IP \(bu 3
+ Security of the source repository is currently not dealt with directly.
+ The usual UNIX approach of user-group-other security permissions through
+-the file system is utilized, but nothing else.
++the filesystem is utilised, but nothing else.
+ \fBcvs\fP could likely be a set-group-id executable that checks a
+ protected database to verify user access permissions for particular objects
+ before allowing any operations to affect those objects.
+--- cvs-1.12.13+real.orig/doc/cvs.man.footer
++++ cvs-1.12.13+real/doc/cvs.man.footer
+@@ -1,3 +1,4 @@
++.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.footer,v 1.6 2017/01/08 19:42:05 tg Exp $
+ .SH "AUTHORS"
+ .TP
+ Dick Grune
+@@ -26,15 +27,13 @@
+ Have helped maintain
+ .B cvs
+ for many years.
+-.TP
++.PP
+ And many others too numerous to mention here.
+ .SH "SEE ALSO"
+ The most comprehensive manual for CVS is
+-Version Management with CVS by Per Cederqvist et al. Depending on
+-your system, you may be able to get it with the
+-.B info CVS
+-command or it may be available as cvs.pdf (Portable Document Format),
+-cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html.
++Version Management with CVS by Per Cederqvist et al. (see
++.I NOTE
++at top).
+ .SP
+ For CVS updates, more information on documentation, software related
+ to CVS, development of CVS, and more, see:
+@@ -43,7 +42,6 @@
+ .PD 0
+ .IP "" 4
+ .B http://www.nongnu.org/cvs/
+-.in -1i
+ .SP
+ .BR ci ( 1 ),
+ .BR co ( 1 ),
+@@ -54,5 +52,7 @@
+ .BR patch ( 1 ),
+ .BR rcs ( 1 ),
+ .BR rcsdiff ( 1 ),
++.BR rcsintro ( 1 ),
+ .BR rcsmerge ( 1 ),
+-.BR rlog ( 1 ).
++.BR rlog ( 1 ),
++.BR re_format ( 7 ).
+--- cvs-1.12.13+real.orig/doc/cvs.man.header
++++ cvs-1.12.13+real/doc/cvs.man.header
+@@ -1,3 +1,5 @@
++.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.header,v 1.6 2016/11/08 21:12:15 tg Exp $
++.\"
+ .\" This is the man page for CVS. It is auto-generated from the
+ .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
+ .\" there. A full copyright & license notice may also be found in cvs.texinfo.
+@@ -5,6 +7,7 @@
+ .\" Man page autogeneration, including this header file, is
+ .\" Copyright 2004-2005 The Free Software Foundation, Inc.,
+ .\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
++.\" Copyright (c) 2004, 2010, 2012, 2016 mirabilos <m@mirbsd.org>.
+ .\"
+ .\" This documentation is free software; you can redistribute it and/or modify
+ .\" it under the terms of the GNU General Public License as published by
+@@ -23,7 +26,9 @@
+ .ds Rv \\$3
+ .ds Dt \\$4
+ ..
+-.TH CVS 1 "\*(Dt"
++.de IX
++..
++.TH CVS 1
+ .\" Full space in nroff; half space in troff
+ .de SP
+ .if n .sp
+@@ -51,11 +56,82 @@
+ .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
+ .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
+ .IX revisions "cvs command" "" "\fLcvs\fP \- source control"
+-This manpage is a summary of some of the features of
+-\fBcvs\fP. It is auto-generated from an appendix of the CVS manual.
+-For more in-depth documentation, please consult the
+-Cederqvist manual (via the
+-.B info CVS
+-command or otherwise,
+-as described in the SEE ALSO section of this manpage). Cross-references
+-in this man page refer to nodes in the same.
++.\"
++This manual page is a summary of parts of the \fBcvs\fP documentation
++and automatically generated from an appendix of the CVS manual
++(the \fICederqvist\fP), which is also the target of all cross-references
++found in this manual page; please refer to the full CVS manual
++for more in-depth documentation of the Concurrent Versions System.
++.PP
++If you're reading this manual page as part of the MirBSD online (HTML)
++manual pages archive, follow the cvs(GNU) link to the Cederqvist
++(and the cvsclient(GNU) link to the client/server protocol description,
++if necessary).
++.PP
++If you installed
++.B cvs
++via the Debian or MirPorts Framework package management systems,
++.br
++.RS
++.B /usr/mpkg/share/doc/cvs/cvs.pdf
++(MirPorts Framework) or
++.br
++.B /usr/share/doc/cvs/cvs.pdf
++(Debian), respectively,
++.RE
++are versions of the Cederqvist rendered as books, for printing
++and reading on screen.
++.PP
++If you have a Texinfo reader such as
++.B info
++installed (part of the base system on MirBSD; part of the
++.I info
++package on Debian), you can read the Cederqvist by entering:
++.br
++.RS
++.B info
++.I cvs
++.RE
++.PP
++Quick introduction to
++.B info
++so you aren't immediately lost:
++.RS 4n
++.TP 3n
++.I arrow\ keys
++to move on the page
++.TP 3n
++.I Tab
++to move to the next hyperlink
++.TP 3n
++.I Return
++to activate the hyperlink under the cursor
++.TP 3n
++.BI l \ (lowercase\ ell)
++to go to the previously visited page
++.TP 3n
++.IB Page\ Up/ b,\ Page\ Down/Space
++to move by screen pages, including advancing to the previous
++(or next, respectively) section at the first (last) screen page
++.TP 3n
++.B p,\ n
++to go to the previous (next) page on the current navigation hierarchy level
++.TP 3n
++.B t
++to go to the "Top" page, i.e. the start of the document
++.TP 3n
++.BI / <search-term>Return
++to start a search from the current cursor position and jump to the first result
++.TP 3n
++.BI / Return
++to jump to the next result in an ongoing search
++.TP 3n
++.B q
++to exit the
++.B info
++viewer
++.RE
++.PP
++Other ways to read further documentation are described in the
++.I SEE\ ALSO
++section of this manual page.
+--- cvs-1.12.13+real.orig/doc/cvs.texinfo
++++ cvs-1.12.13+real/doc/cvs.texinfo
+@@ -1,6 +1,18 @@
+ \input texinfo @c -*-texinfo-*-
+ @comment Documentation for CVS.
+ @setfilename cvs.info
++@set MBSDPATCHLEVEL -MirOS-0AB9.1
++@tex
++ % set PA4 paper size (can print on both DIN ISO A4 and US Letter)
++ \globaldefs = 1%
++ \afourpaper%
++ \internalpagesizes{46\baselineskip}{160mm}%
++ {\voffset}{\hoffset}%
++ {\bindingoffset}{36pt}%
++ {28truecm}{21truecm}%
++ \globaldefs = 0%
++@end tex
++@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.38 2021/01/30 02:05:55 tg Exp $
+ @macro copyleftnotice
+ @noindent
+ Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+@@ -9,7 +21,11 @@
+
+ @multitable @columnfractions .12 .88
+ @item Portions
+-@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
++@item @tab Copyright @copyright{} 2003, 2004, 2005, 2007, 2009, 2010, 2011,
++ 2013, 2014, 2015, 2016, 2017, 2021
++ mirabilos, The MirOS Project
++@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005,
++ 2007
+ Derek R. Price,
+ @item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
+ Ximbiot @url{http://ximbiot.com},
+@@ -51,6 +67,15 @@
+ @comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ @comment GNU General Public License for more details.
+
++@comment It should be noted that the Texinfo manual is distributed
++@comment under the above notice in all forms, except for the manpage
++@comment generated from it, and that the manual and the source code
++@comment of CVS often need to stay synchronised; therefore, exchanging
++@comment between these three entities under these two licences seems
++@comment to be granted, and the statement above can be interpreted as
++@comment explicit dual-licence grant. As a major contributor to this
++@comment documentation for MirBSD, I do not oppose. --mirabilos
++
+ @c See ../README for A4 vs. US letter size.
+ @c When we provided A4 postscript, and people tried to
+ @c print it on US letter, the usual complaint was that the
+@@ -103,7 +128,7 @@
+ @end direntry
+ @dircategory Individual utilities
+ @direntry
+-* cvs: (cvs)CVS commands. Concurrent Versions System
++* cvs: (cvs)CVS command list. Concurrent Versions System
+ @end direntry
+
+ @comment The titlepage section does not appear in the Info file.
+@@ -111,12 +136,12 @@
+ @sp 4
+ @comment The title is printed in a large font.
+ @center @titlefont{Version Management}
+-@sp
++@sp 1
+ @center @titlefont{with}
+-@sp
++@sp 1
+ @center @titlefont{CVS}
+ @sp 2
+-@center for @sc{cvs} @value{VERSION}
++@center for @sc{cvs} @value{VERSION}@value{MBSDPATCHLEVEL}
+ @comment -release-
+ @sp 3
+ @center Per Cederqvist et al
+@@ -141,13 +166,20 @@
+ @node Top
+ @top
+
++@ifnotinfo
++@anchor{Cederqvist}
++@end ifnotinfo
+ This info manual describes how to use and administer
+-@sc{cvs} version @value{VERSION}.
++@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
+ @end ifnottex
+
+ @ifinfo
+ @copyleftnotice
++@anchor{Cederqvist}
+ @end ifinfo
++@iftex
++@anchor{Cederqvist}
++@end iftex
+
+ @c This menu is pretty long. Not sure how easily that
+ @c can be fixed (no brilliant ideas right away)...
+@@ -181,6 +213,7 @@
+ * Troubleshooting:: Some tips when nothing works
+ * Credits:: Some of the contributors to this manual
+ * BUGS:: Dealing with bugs in CVS or this manual
++* CVS command list:: Alphabetical list of all CVS commands
+ * Index:: Index
+ @end menu
+
+@@ -327,7 +360,7 @@
+ you wind up requiring the entire repository to be
+ checked out.
+
+-If you modularize your work, and construct a build
++If you modularise your work, and construct a build
+ system that will share files (via links, mounts,
+ @code{VPATH} in @file{Makefile}s, etc.), you can
+ arrange your disk usage however you like.
+@@ -483,11 +516,11 @@
+ As a way of introducing @sc{cvs}, we'll go through a
+ typical work-session using @sc{cvs}. The first thing
+ to understand is that @sc{cvs} stores all files in a
+-centralized @dfn{repository} (@pxref{Repository}); this
++centralised @dfn{repository} (@pxref{Repository}); this
+ section assumes that a repository is set up.
+ @c I'm not sure that the sentence concerning the
+ @c repository quite tells the user what they need to
+-@c know at this point. Might need to expand on "centralized"
++@c know at this point. Might need to expand on "centralised"
+ @c slightly (maybe not here, maybe further down in the example?)
+
+ Suppose you are working on a simple compiler. The source
+@@ -742,7 +775,7 @@
+ @c /home/joe/sources. But this node is too long
+ @c as it is; need a little reorganization...
+
+-@cindex :local:, setting up
++@cindex local method, setting up
+ @sc{cvs} can access a repository by a variety of
+ means. It might be on the local computer, or it might
+ be on a computer across the room or across the world.
+@@ -1037,10 +1070,6 @@
+ if you want to allow read-only access to some directories
+ (@pxref{config}).
+
+-@c CVS seems to use CVSUMASK in picking permissions for
+-@c val-tags, but maybe we should say more about this.
+-@c Like val-tags gets created by someone who doesn't
+-@c have CVSUMASK set right?
+ @cindex CVSROOT/val-tags file, and read-only access to projects
+ @cindex val-tags file, and read-only access to projects
+ Also note that users must have write access to the
+@@ -1072,7 +1101,7 @@
+ @c FIXME: Need more discussion of which
+ @c group should own the file in the repository.
+ @c Include a somewhat detailed example of the usual
+-@c case where CVSUMASK is 007, the developers are all
++@c case where CVSUMASK is 002, the developers are all
+ @c in a group, and that group owns stuff in the
+ @c repository. Need to talk about group ownership of
+ @c newly-created directories/files (on some unices,
+@@ -1152,7 +1181,7 @@
+ sure).
+
+ If you are using local @sc{cvs} and the repository is on a
+-networked file system which is served by the Samba SMB
++networked filesystem which is served by the Samba SMB
+ server, some people have reported problems with
+ permissions. Enabling WRITE=YES in the samba
+ configuration is said to fix/workaround it.
+@@ -1551,7 +1580,7 @@
+ This file lists the files and directories in the
+ working directory.
+ The first character of each line indicates what sort of
+-line it is. If the character is unrecognized, programs
++line it is. If the character is unrecognised, programs
+ reading the file should silently skip that line, to
+ allow for future expansion.
+
+@@ -1780,7 +1809,7 @@
+ @cindex CVSROOT, module name
+ @cindex Defining modules (intro)
+
+-@c FIXME: this node should be reorganized into "general
++@c FIXME: this node should be reorganised into "general
+ @c information about admin files" and put the "editing
+ @c admin files" stuff up front rather than jumping into
+ @c the details of modules right away. Then the
+@@ -1931,14 +1960,23 @@
+ on what each developer uses).
+
+ The repository should be accessible
+-(directly or via a networked file system) from all
++(directly or via a networked filesystem) from all
+ machines which want to use @sc{cvs} in server or local
+ mode; the client machines need not have any access to
+ it other than via the @sc{cvs} protocol. It is not
+-possible to use @sc{cvs} to read from a repository
++normally possible to use @sc{cvs} to read from a repository
+ which one only has read access to; @sc{cvs} needs to be
+ able to create lock files (@pxref{Concurrency}).
+
++If the environment variable @code{$CVSREADONLYFS} is defined,
++however, CVS will allow read-only access without creating any
++history entries or reader lock files. This allows doing most
++usual repository operations except checkin in a fast way,
++although if any other user is accessing the same data at the
++same time, it may lead to corrupt data. This mode is best used
++for publicly accessible anonymous CVS mirrors, not the main
++working repository.
++
+ @cindex init (subcommand)
+ To create a repository, run the @code{cvs init}
+ command. It will set up an empty repository in the
+@@ -1954,9 +1992,18 @@
+ you run @code{cvs init} on an already set-up
+ repository.
+
+-@code{cvs init} will enable history logging; if you
+-don't want that, remove the history file after running
+-@code{cvs init}. @xref{history file}.
++The repository is created honouring the @code{$CVSUMASK}
++setting (@pxref{CVSUMASK}), even the @file{history} and
++@file{val-tags} files are not created world-writable any
++more as in previous CVS versions. History logging is,
++accordingly, configured to log write operations only; if
++you don’t want that, edit or remove the @samp{LogHistory}
++entry in the @file{config} file (@pxref{config}) and make
++sure that all users who need to write that file can do so,
++for example by using a @code{$CVSUMASK} of 002 (which is
++also the default) and putting everyone into the same Unix
++group (consider the security implications if you really
++want to enable world-writable logging).
+
+ @node Backing up
+ @section Backing up a repository
+@@ -2103,6 +2150,9 @@
+ * Write proxies:: Distributing load across several CVS servers
+ @end menu
+
++For the protocol specification,
++@pxref{Top, the CVS client/server protocol,, cvsclient, The CVS client/server protocol}.
++
+ @node Server requirements
+ @subsection Server requirements
+
+@@ -2236,19 +2286,19 @@
+ through and @var{port} is the port number on the HTTP proxy server to connect
+ via. @var{port} defaults to 8080.
+
+-@strong{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
++@emph{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
+ server - please see @ref{Write proxies} for more on @sc{cvs} write proxies.}
+
+ For example, to connect pserver via a web proxy listening on port 8000 of
+ www.myproxy.net, you would use a method of:
+
+ @example
+-:pserver;proxy=www.myproxy.net;proxyport=8000:@var{pserver_connection_string}
++:pserver;proxy=www.myproxy.net;proxyport=8000:@var{connstr}
+ @end example
+
+-@strong{NOTE: In the above example, @var{pserver_connection_string} is still
+-required to connect and authenticate to the CVS server, as noted in the
+-upcoming sections on password authentication, @code{gserver}, and
++@emph{NOTE: In the above example, the pserver connection string @var{connstr}
++is still required to connect and authenticate to the CVS server, as noted in
++the upcoming sections on password authentication, @code{gserver}, and
+ @code{kserver}. The example above only demonstrates a modification to the
+ @var{method} portion of the repository name.}
+
+@@ -2369,7 +2419,7 @@
+ machine to the filename of the server you want to use,
+ for example @file{/usr/local/bin/cvs-1.6}.
+ For the @code{ext} and @code{fork} methods, you may
+-also specify @var{CVS_SERVER} as an otpion in the
++also specify @var{CVS_SERVER} as an option in the
+ @var{CVSROOT} so that you may use different servers for
+ differnt roots. See @ref{Remote repositories} for more
+ details.
+@@ -2377,21 +2427,23 @@
+ There is no need to edit @file{inetd.conf} or start a
+ @sc{cvs} server daemon.
+
+-@cindex :server:, setting up
+-@cindex :ext:, setting up
++@cindex server method, setting up
++@cindex ext method, setting up
+ @cindex Kerberos, using kerberized rsh
+ @cindex SSH (rsh replacement)
+ @cindex rsh replacements (Kerberized, SSH, &c)
+ There are two access methods that you use in @code{CVSROOT}
+ for rsh. @code{:server:} specifies an internal rsh
+ client, which is supported only by some @sc{cvs} ports.
++This is not supported on most Unix-style systems.
+ @code{:ext:} specifies an external rsh program. By
+ default this is @code{rsh} (unless otherwise specified
+ by the @file{--with-rsh} flag to configure) but you may set the
+ @code{CVS_RSH} environment variable to invoke another
+ program which can access the remote server (for
+ example, @code{remsh} on HP-UX 9 because @code{rsh} is
+-something different). It must be a program which can
++something different, or @code{ssh} to allow the use of secure
++and/or compressed connections). It must be a program which can
+ transmit data to and from the server without modifying
+ it; for example the Windows NT @code{rsh} is not
+ suitable since it by default translates between CRLF
+@@ -2405,6 +2457,12 @@
+ to be inapplicable; consult the documentation for your rsh
+ replacement.
+
++In the Debian and MirBSD versions of @sc{cvs}, you can
++also specify @code{:extssh:} to force use of the Secure
++Shell, or @code{:ext=prog:} or @code{:ext=/path/to/prog:}
++to specify the remote shell to use without needing to
++touch the @code{CVS_RSH} environment variable.
++
+ You may choose to specify the @var{CVS_RSH} option as a method option
+ in the @var{CVSROOT} string to allow you to use different connection tools
+ for different roots (@pxref{The connection method}). For example, allowing
+@@ -2501,15 +2559,19 @@
+ The @samp{--allow-root} option specifies the allowable
+ @sc{cvsroot} directory. Clients which attempt to use a
+ different @sc{cvsroot} directory will not be allowed to
+-connect. If there is more than one @sc{cvsroot}
+-directory which you want to allow, repeat the option.
++connect. To allow a whole class of @sc{cvsroot}, specify
++a POSIX extended regular expression to match allowed
++directories with the @samp{--allow-root-regexp} option.
++These options may be used in conjunction, and both options
++may be repeated to allow access to multiple @sc{cvsroot}
++directories and classes of directories.
+ (Unfortunately, many versions of @code{inetd} have very small
+ limits on the number of arguments and/or the total length
+ of the command. The usual solution to this problem is
+ to have @code{inetd} run a shell script which then invokes
+ @sc{cvs} with the necessary arguments.)
+
+- If your @code{inetd} wants a symbolic service
++If your @code{inetd} wants a symbolic service
+ name instead of a raw port number, then put this in
+ @file{/etc/services}:
+
+@@ -2675,7 +2737,7 @@
+ (@code{info-cvs@@nongnu.org} or @code{bug-cvs@@nongnu.org}) if you use the
+ @sc{cvs} PAM support.
+
+-@strong{WARNING: Using PAM gives the system administrator much more
++@emph{WARNING: Using PAM gives the system administrator much more
+ flexibility about how @sc{cvs} users are authenticated but
+ no more security than other methods. See below for more.}
+
+@@ -2776,7 +2838,7 @@
+ @cindex Login (subcommand)
+ @cindex Password client, using
+ @cindex Authenticated client, using
+-@cindex :pserver:, setting up
++@cindex pserver method, setting up
+ To run a @sc{cvs} command on a remote repository via
+ the password-authenticating server, one specifies the
+ @code{pserver} protocol, optional username, repository host, an
+@@ -2887,7 +2949,7 @@
+ @c FIXME: The bit about "access to the repository
+ @c implies general access to the system is *not* specific
+ @c to pserver; it applies to kerberos and SSH and
+-@c everything else too. Should reorganize the
++@c everything else too. Should reorganise the
+ @c documentation to make this clear.
+ The separate @sc{cvs} password file (@pxref{Password
+ authentication server}) allows people
+@@ -2940,8 +3002,8 @@
+
+ @cindex GSSAPI
+ @cindex Security, GSSAPI
+-@cindex :gserver:, setting up
+-@cindex Kerberos, using :gserver:
++@cindex gserver method, setting up
++@cindex Kerberos, using gserver method
+ GSSAPI is a generic interface to network security
+ systems such as Kerberos 5.
+ If you have a working GSSAPI library, you can have
+@@ -2992,9 +3054,9 @@
+ @node Kerberos authenticated
+ @subsection Direct connection with Kerberos
+
+-@cindex Kerberos, using :kserver:
++@cindex Kerberos, using kserver method
+ @cindex Security, Kerberos
+-@cindex :kserver:, setting up
++@cindex kserver method, setting up
+ The easiest way to use Kerberos is to use the Kerberos
+ @code{rsh}, as described in @ref{Connecting via rsh}.
+ The main disadvantage of using rsh is that all the data
+@@ -3039,7 +3101,7 @@
+ @subsection Connecting with fork
+
+ @cindex fork, access method
+-@cindex :fork:, setting up
++@cindex fork method, setting up
+ This access method allows you to connect to a
+ repository on your local disk via the remote protocol.
+ In other words it does pretty much the same thing as
+@@ -3065,7 +3127,7 @@
+ cvs -d :fork:/usr/local/cvsroot checkout foo
+ @end example
+
+-@cindex CVS_SERVER, and :fork:
++@cindex CVS_SERVER, and fork method
+ As with @code{:ext:}, the server is called @samp{cvs}
+ by default, or the value of the @code{CVS_SERVER}
+ environment variable.
+@@ -3994,7 +4056,7 @@
+ tag.
+
+ @noindent
+-@strong{WARNING: the commands in this section are
++@emph{WARNING: the commands in this section are
+ dangerous; they permanently discard historical
+ information and it can be difficult or impossible to
+ recover from errors. If you are a @sc{cvs}
+@@ -4024,7 +4086,7 @@
+ trigger warnings and will not be deleted.
+
+ @noindent
+-@strong{WARNING: Moving branch tags is very dangerous! If you think
++@emph{WARNING: Moving branch tags is very dangerous! If you think
+ you need the @code{-B} option, think again and ask your @sc{cvs}
+ administrator about it (if that isn't you). There is almost certainly
+ another way to accomplish what you want to accomplish.}
+@@ -4055,7 +4117,7 @@
+ name are ignored with a warning message.
+
+ @noindent
+-@strong{WARNING: Moving branch tags is very dangerous! If you think you
++@emph{WARNING: Moving branch tags is very dangerous! If you think you
+ need the @code{-B} option, think again and ask your @sc{cvs}
+ administrator about it (if that isn't you). There is almost certainly
+ another way to accomplish what you want to accomplish.}
+@@ -4257,7 +4319,7 @@
+ @c until it is ready for the main trunk. The whole
+ @c thing is generally speaking more akin to the
+ @c "Revision management" node although it isn't clear to
+-@c me whether policy matters should be centralized or
++@c me whether policy matters should be centralised or
+ @c distributed throughout the relevant sections.
+ Suppose that release 1.0 of tc has been made. You are continuing to
+ develop tc, planning to create release 1.1 in a couple of months. After a
+@@ -4904,7 +4966,7 @@
+ directory need not change anything. Therefore, there
+ is no conflict.
+
+-@strong{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
++@emph{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
+ major problem with using @samp{-kk} on merges. Namely, @samp{-kk}
+ overrode any default keyword expansion mode set in the archive file in
+ the repository. This could, unfortunately for some users, cause data
+@@ -5104,7 +5166,7 @@
+ @file{backend.c} to the repository:
+
+ @c This example used to specify
+-@c -m "Optimizer and code generation passes."
++@c -m "Optimiser and code generation passes."
+ @c to the cvs add command, but that doesn't work
+ @c client/server (see log2 in sanity.sh). Should fix CVS,
+ @c but also seems strange to document things which
+@@ -5266,7 +5328,7 @@
+ cvs add: oj.c, version 1.1.1.1, resurrected
+ @end example
+
+-If you realize your mistake before you run the
++If you realise your mistake before you run the
+ @code{remove} command you can use @code{update} to
+ resurrect the file:
+
+@@ -5712,12 +5774,12 @@
+ @node user-defined logging
+ @section User-defined logging
+
+-@c FIXME: probably should centralize this information
++@c FIXME: probably should centralise this information
+ @c here, at least to some extent. Maybe by moving the
+ @c loginfo, etc., nodes here and replacing
+ @c the "user-defined logging" node with one node for
+ @c each method.
+-You can customize @sc{cvs} to log various kinds of
++You can customise @sc{cvs} to log various kinds of
+ actions, in whatever manner you choose. These
+ mechanisms operate by executing a script at various
+ times. The script might append a message to a file
+@@ -5736,7 +5798,7 @@
+ @samp{-o}, @samp{-e}, and @samp{-t} options in the
+ modules file. For a more flexible way of giving
+ notifications to various users, which requires less in
+-the way of keeping centralized scripts up to date, use
++the way of keeping centralised scripts up to date, use
+ the @code{cvs watch add} command (@pxref{Getting
+ Notified}); this command is useful even if you are not
+ using @code{cvs watch on}.
+@@ -5968,7 +6030,7 @@
+ locks, have all developers put "edit -c", "commit -c" in their
+ .cvsrc file, and turn on watches in the repository. This
+ prevents them from doing a @code{cvs edit} if anyone is
+-already editting the file. It also may
++already editing the file. It also may
+ be possible to use plain watches together with suitable
+ procedures (not enforced by software), to avoid having
+ two people edit at the same time.
+@@ -6451,7 +6513,7 @@
+ You can now go ahead and commit this as revision 1.7.
+
+ @example
+-$ cvs commit -m "Initialize scanner. Use symbolic exit values." driver.c
++$ cvs commit -m "Initialise scanner. Use symbolic exit values." driver.c
+ Checking in driver.c;
+ /usr/local/cvsroot/yoyodyne/tc/driver.c,v <-- driver.c
+ new revision: 1.7; previous revision: 1.6
+@@ -6630,7 +6692,7 @@
+ put "edit -c" and "commit -c" into all .cvsrc files,
+ and make files default to read only by turning on watches
+ or putting "cvs -r" into all .cvsrc files.
+-This prevents multiple people from editting a file at
++This prevents multiple people from editing a file at
+ the same time (unless explicitly overriden with @samp{-f}).
+
+ @c I'm a little dissatisfied with this presentation,
+@@ -6875,7 +6937,7 @@
+ There are two additional options that @code{cvs edit} understands as of
+ @sc{cvs} client and server versions 1.12.10 but @code{cvs watch} does not.
+ The first is @code{-c}, which causes @code{cvs edit} to fail if anyone else
+-is editting the file. This is probably only useful when @samp{edit -c} and
++is editing the file. This is probably only useful when @samp{edit -c} and
+ @samp{commit -c} are specified in all developers' @file{.cvsrc} files. This
+ behavior may be overriden this via the @code{-f} option, which overrides
+ @code{-c} and allows multiple edits to succeed.
+@@ -6992,7 +7054,7 @@
+ cons. Let it be said that a lot of this is a matter of
+ opinion or what works given different groups' working
+ styles, but here is a brief description of some of the
+-issues. There are many ways to organize a team of
++issues. There are many ways to organise a team of
+ developers. @sc{cvs} does not try to enforce a certain
+ organization. It is a tool that can be used in several
+ ways.
+@@ -7014,7 +7076,7 @@
+ many groups is that they occur rarely and usually are
+ relatively straightforward to resolve.
+
+-The rarity of serious conflicts may be surprising, until one realizes
++The rarity of serious conflicts may be surprising, until one realises
+ that they occur only when two developers disagree on the proper design
+ for a given section of code; such a disagreement suggests that the
+ team has not been communicating properly in the first place. In order
+@@ -7182,6 +7244,15 @@
+ @item $@splitrcskeyword{Date}$
+ The date and time (UTC) the revision was checked in.
+
++@cindex Mdocdate keyword
++@item $@splitrcskeyword{Mdocdate}$
++The date (UTC) the revision was checked in, in a format suitable
++for the Berkeley mdoc macro processing.
++
++@example
++$Mdocdate: January 30 2021 $
++@end example
++
+ @cindex Header keyword
+ @item $@splitrcskeyword{Header}$
+ A standard header containing the full pathname of the
+@@ -7243,7 +7314,8 @@
+ but for several reasons it can be problematic.
+
+ If the prefix of the @code{$@splitrcskeyword{Log}$} keyword turns out to be
+-longer than @code{MaxCommentLeaderLength}, CVS will skip expansion of this
++longer than the @file{CVSROOT/config} setting @code{MaxCommentLeaderLength},
++CVS will skip expansion of this
+ keyword unless @code{UseArchiveCommentLeader} is also set in
+ @file{CVSROOT/config} and a @samp{comment leader} is set in the RCS archive
+ file, in which case the comment leader will be used instead. For more on
+@@ -7336,7 +7408,7 @@
+ the source files so that it gets passed through to
+ generated files. For example, if you are managing
+ computer program source code, you might include a
+-variable which is initialized to contain that string.
++variable which is initialised to contain that string.
+ Or some C compilers may provide a @code{#pragma ident}
+ directive. Or a document management system might
+ provide a way to pass a string through to generated
+@@ -7550,13 +7622,14 @@
+ A list may be used. The this example:
+
+ @example
+- # Add a "MyBSD" keyword and restrict keyword
+- # expansion to the MyBSD, Name and Date keywords.
++ # Add a "MyBSD" keyword and restrict keyword expansion
++ # to the MyBSD, Name, Date and Mdocdate keywords.
+ LocalKeyword=MyBSD=CVSHeader
+- KeywordExpand=iMyBSD,Name,Date
++ KeywordExpand=iMyBSD,Name,Date,Mdocdate
+ @end example
+
+-would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
++would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$,
++$@splitrcskeyword{Mdocdate} and
+ $@splitrcskeyword{Date}$ to be expanded.
+
+ It is also possible to configure an exclusion list
+@@ -7595,7 +7668,7 @@
+ has been around a long time. However, that patch
+ implemented these features using @code{tag=} and
+ @code{tagexpand=} keywords and those keywords are NOT
+-recognized.
++recognised.
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ @node Log keyword
+@@ -7742,7 +7815,7 @@
+ $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
+ @end example
+
+-@strong{WARNING: If you use a release tag that already exists in one of the
++@emph{WARNING: If you use a release tag that already exists in one of the
+ repository archives, files removed by an import may not be detected.}
+
+ For files that have not been modified locally, the newly created
+@@ -7786,7 +7859,12 @@
+
+ You can also revert local changes completely and return
+ to the latest vendor release by changing the `head'
+-revision back to the vendor branch on all files. For
++revision back to the vendor branch on all files. This
++does, however, produce weird results if you should ever
++edit this file again, for anyone looking at the output
++from the @code{log} command or CVSweb. To fix this,
++first commit a revision of the file which equals the
++vendor branch, then use @code{admin} @samp{-b}. For
+ example, if you have a checked-out copy of the sources
+ in @file{~/work.d/wdiff}, and you want to revert to the
+ vendor's version for all the files in that directory,
+@@ -7853,6 +7931,10 @@
+ @code{cvs import}. It takes as an argument the vendor
+ branch to import to. The default is @samp{-b 1.1.1}.
+
++Vendor branches can only be in the format 1.1.x where
++@samp{x} is an @emph{uneven} number, because branch
++tags use even numbers.
++
+ For example, suppose that there are two teams, the red
+ team and the blue team, that are sending you sources.
+ You want to import the red team's efforts to branch
+@@ -8030,7 +8112,7 @@
+
+ When @code{PreservePermissions} is in use, some @sc{cvs}
+ operations (such as @samp{cvs status}) will not
+-recognize a file's hard link structure, and so will
++recognise a file's hard link structure, and so will
+ emit spurious warnings about mismatching hard links.
+ The reason is that @sc{cvs}'s internal structure does not
+ make it easy for these operations to collect all the
+@@ -8094,16 +8176,18 @@
+ This appendix describes the overall structure of
+ @sc{cvs} commands, and describes some commands in
+ detail (others are described elsewhere; for a quick
+-reference to @sc{cvs} commands, @pxref{Invoking CVS}).
++reference to @sc{cvs} commands, @pxref{Invoking CVS},
++and for an alphabetical list of all @sc{cvs} commands,
++@pxref{CVS command list}).
+ @c The idea is that we want to move the commands which
+ @c are described here into the main body of the manual,
+ @c in the process reorganizing the manual to be
+-@c organized around what the user wants to do, not
+-@c organized around CVS commands.
++@c organised around what the user wants to do, not
++@c organised around CVS commands.
+ @c
+ @c Note that many users do expect a manual which is
+-@c organized by command. At least some users do.
+-@c One good addition to the "organized by command"
++@c organised by command. At least some users do.
++@c One good addition to the "organised by command"
+ @c section (if any) would be "see also" links.
+ @c The awk manual might be a good example; it has a
+ @c reference manual which is more verbose than Invoking
+@@ -8117,19 +8201,20 @@
+ * Global options:: Options you give to the left of cvs_command
+ * Common options:: Options you give to the right of cvs_command
+ * Date input formats:: Acceptable formats for date specifications
+-* admin:: Administration
++* admin:: Administration front-end for RCS
+ * annotate:: What revision modified each line of a file?
+ * checkout:: Checkout sources for editing
+ * commit:: Check files into the repository
+ * diff:: Show differences between revisions
+ * export:: Export sources from CVS, similar to checkout
+-* history:: Show status of files and users
++* history:: Show repository access history
+ * import:: Import sources into CVS, using vendor branches
+-* log:: Show log messages for files
++* log:: Print out history information for files
+ * ls & rls:: List files in the repository
+-* rdiff:: 'patch' format diffs between releases
++* rdiff:: Create 'patch' format diffs between revisions
+ * release:: Indicate that a directory is no longer in use
+ * server & pserver:: Act as a server for a client on stdin/stdout
++* suck:: Download RCS ,v file raw
+ * update:: Bring work tree in sync with repository
+ @end menu
+
+@@ -8375,6 +8460,31 @@
+ @samp{-N} in the @file{~/.cvsrc} entry for @samp{log},
+ you may need to use @samp{-f} to show the tag names.
+
++@item -g
++Forges group-writable permissions on files in the working copy.
++This option is typically used when you have multiple users sharing
++a single checked out source tree, allowing them to operate their
++shells with a less dangerous umask at the expense of @sc{cvs} security.
++To use this feature, create a directory to hold the checked-out
++source tree, set it to a private group, and set up the directory
++such that files created under it inherit the gid of the directory.
++On BSD systems, this occurs automatically. On SYSV systems and
++GNU/Linux, the sgid bit must be set on the directory for this.
++The users who are to share the checked out tree must be placed in
++that group which owns the directory.
++
++Note that the sharing of a single checked-out source tree is very
++different from giving several users access to a common @sc{cvs} repository.
++Access to a common @sc{cvs} repository already maintains shared group-write
++permissions and does not require this option.
++
++Due to the security implications, setting this option globally in
++your @file{.cvsrc} file is strongly discouraged; if you must, ensure
++all source checkouts are "firewalled" within a private group or a
++private mode 0700 directory.
++
++This option is a MidnightBSD extension merged into Debian and MirBSD @sc{cvs}.
++
+ @item -H
+ @itemx --help
+ Display usage information about the specified @samp{cvs_command}
+@@ -8498,7 +8608,7 @@
+ which are listed with the individual commands, may have
+ different behavior from one @sc{cvs} command to the other).
+
+-@strong{Note: the @samp{history} command is an exception; it supports
++@emph{Note: the @samp{history} command is an exception; it supports
+ many options that conflict even with these standard options.}
+
+ @table @code
+@@ -8523,7 +8633,7 @@
+ slightly different way; @pxref{history options}).
+
+ For a complete description of the date formats accepted by @sc{cvs},
+-@ref{Date input formats}.
++@pxref{Date input formats}.
+ @c What other formats should we accept? I don't want
+ @c to start accepting a whole mess of non-standard
+ @c new formats (there are a lot which are in wide use in
+@@ -8610,7 +8720,7 @@
+ @code{annotate}, @code{checkout}, @code{export},
+ @code{rdiff}, @code{rtag}, and @code{update}.
+
+-@strong{WARNING: The @code{commit} and @code{remove}
++@emph{WARNING: The @code{commit} and @code{remove}
+ commands also have a
+ @samp{-f} option, but it has a different behavior for
+ those commands. See @ref{commit options}, and
+@@ -8631,7 +8741,7 @@
+ @code{checkout}, @code{diff}, @code{export}, @code{import},
+ @code{rdiff}, and @code{update} commands.
+
+-@strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
++@emph{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
+ overrode the @samp{-kb} indication for a binary file. This could
+ sometimes corrupt binary files. @xref{Merging and keywords}, for
+ more.}
+@@ -8660,7 +8770,7 @@
+ specified to run in the modules
+ database (@pxref{modules}); this option bypasses it).
+
+-@strong{Note: this is not the same as the @samp{cvs -n}
++@emph{Note: this is not the same as the @samp{cvs -n}
+ program option, which you can specify to the left of a cvs command!}
+
+ Available with the @code{checkout}, @code{commit}, @code{export},
+@@ -8688,14 +8798,21 @@
+ @item -r @var{tag}[:@var{date}]
+ @cindex HEAD, special tag
+ @cindex BASE, special tag
++@cindex BASE, special date
+ Use the revision specified by the @var{tag} argument (and the @var{date}
+ argument for the commands which accept it) instead of the
+ default @dfn{head} revision. As well as arbitrary tags defined
+ with the @code{tag} or @code{rtag} command, two special tags are
+ always available: @samp{HEAD} refers to the most recent version
+-available in the repository, and @samp{BASE} refers to the
++available in the repository (also known as the tip of the @samp{MAIN}
++branch, also known as trunk; the name of a branch refers to its tip;
++this version of @sc{cvs} introduces @samp{.bhead}, but only for the
++@sc{diff} command, for the same), and @samp{BASE} refers to the
+ revision you last checked out into the current working directory.
+
++@c fixed: HEAD is changed now; .bhead is the name of the branch,
++@c but added for cases where it is unknown.
++@c --mirabilos
+ @c FIXME: What does HEAD really mean? I believe that
+ @c the current answer is the head of the default branch
+ @c for all cvs commands except diff. For diff, it
+@@ -8735,12 +8852,19 @@
+ the name of a branch is interpreted as the most recent
+ revision on that branch.
+
++As a Debian and MirBSD @sc{cvs} extension, specifying @samp{BASE} as the
++@var{date} portion of the argument yields the @emph{base revision} of the
++branch specified by the @var{tag} portion of the argument, i.e. the revision
++on the parent branch the @var{tag} branch split off, or, where both
++branches were the same.
++This option has not received very much testing, beware!
++
+ Specifying the @samp{-q} global option along with the
+ @samp{-r} command option is often useful, to suppress
+ the warning messages when the @sc{rcs} file
+ does not contain the specified tag.
+
+-@strong{Note: this is not the same as the overall @samp{cvs -r} option,
++@emph{Note: this is not the same as the overall @samp{cvs -r} option,
+ which you can specify to the left of a @sc{cvs} command!}
+
+ @samp{-r @var{tag}} is available with the @code{commit} and @code{history}
+@@ -8764,8 +8888,8 @@
+ @include getdate-cvs.texi
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node admin
+-@appendixsec admin---Administration
++@node admin, annotate, Date input formats, CVS commands
++@appendixsec admin---Administration front-end for RCS
+ @cindex Admin (subcommand)
+
+ @itemize @bullet
+@@ -8863,7 +8987,7 @@
+ a future release of @sc{cvs}.
+
+ @item -i
+-Useless with @sc{cvs}. This creates and initializes a
++Useless with @sc{cvs}. This creates and initialises a
+ new @sc{rcs} file, without depositing a revision. With
+ @sc{cvs}, add files with the @code{cvs add} command
+ (@pxref{Adding files}).
+@@ -9129,13 +9253,16 @@
+ @end table
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node annotate
++@node annotate, checkout, admin, CVS commands
+ @appendixsec annotate---What revision modified each line of a file?
+ @cindex annotate (subcommand)
+
+ @itemize @bullet
+ @item
+-Synopsis: annotate [options] files@dots{}
++Synopsis:
++annotate [options] files@dots{}
++
++rannotate [options] files@dots{}
+ @item
+ Requires: repository.
+ @item
+@@ -9144,7 +9271,10 @@
+
+ For each file in @var{files}, print the head revision
+ of the trunk, together with information on the last
+-modification for each line.
++modification for each line. If backwards annotation
++is requested, show the first modification after the
++specified revision. (Backwards annotation currently
++appears to be broken.)
+
+ @menu
+ * annotate options:: annotate options
+@@ -9160,6 +9290,10 @@
+ them):
+
+ @table @code
++@item -b
++Backwards, show when a line was removed.
++Currently appears to be broken.
++
+ @item -l
+ Local directory only, no recursion.
+
+@@ -9215,7 +9349,7 @@
+ @c changed this line *before* 1.4"...).
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node checkout
++@node checkout, commit, annotate, CVS commands
+ @appendixsec checkout---Check out sources for editing
+ @cindex checkout (subcommand)
+ @cindex co (subcommand)
+@@ -9449,14 +9583,13 @@
+ @end example
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node commit
++@node commit, diff, checkout, CVS commands
+ @appendixsec commit---Check files into the repository
+ @cindex commit (subcommand)
+
+ @itemize @bullet
+ @item
+-Synopsis: commit [-lnRf] [-m 'log_message' |
+--F file] [-r revision] [files@dots{}]
++Synopsis: commit [-lnRf] [-m 'log_message' | -F file] [-r revision] [files@dots{}]
+ @item
+ Requires: working directory, repository.
+ @item
+@@ -9501,8 +9634,11 @@
+
+ At @code{commit}, a unique commitid is placed in the @sc{rcs}
+ file inside the repository. All files committed at once
+-get the same commitid. The commitid can be retrieved with
+-the @code{log} and @code{status} command; see @ref{log},
++get the same commitid, a string consisting only of hexadecimal
++digits (usually 16 in GNU @sc{cvs}, 19 in Debian and MirBSD @sc{cvs}).
++FSF GNU @sc{cvs} 1.11 and OpenBSD OpenCVS do not support commitids yet.
++The commitid can be retrieved with
++the @code{log} and @code{status} command; see @ref{log} and
+ @ref{File status}.
+
+ @menu
+@@ -9621,7 +9757,7 @@
+ group would like to work on this software with you, but
+ without disturbing main-line development, you could
+ commit your change to a new branch. Others can then
+-checkout your experimental stuff and utilize the full
++checkout your experimental stuff and utilise the full
+ benefit of @sc{cvs} conflict resolution. The scenario might
+ look like:
+
+@@ -9662,7 +9798,7 @@
+ @end example
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node diff
++@node diff, export, commit, CVS commands
+ @appendixsec diff---Show differences between revisions
+ @cindex diff (subcommand)
+
+@@ -9685,7 +9821,7 @@
+ under them will be compared.
+
+ The exit status for diff is different than for other
+-@sc{cvs} commands; for details @ref{Exit status}.
++@sc{cvs} commands; for details @pxref{Exit status}.
+
+ @menu
+ * diff options:: diff options
+@@ -10295,7 +10431,7 @@
+ @end example
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node export
++@node export, history, diff, CVS commands
+ @appendixsec export---Export sources from CVS, similar to checkout
+ @cindex export (subcommand)
+
+@@ -10393,8 +10529,8 @@
+ @end ignore
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node history
+-@appendixsec history---Show status of files and users
++@node history, import, export, CVS commands
++@appendixsec history---Show repository access history
+ @cindex history (subcommand)
+
+ @itemize @bullet
+@@ -10425,7 +10561,7 @@
+ (@file{$CVSROOT/CVSROOT/history}) with read and write permissions for all
+ users (@pxref{Creating a repository}).
+
+-@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
++@emph{Note: @code{history} uses @samp{-f}, @samp{-l},
+ @samp{-n}, and @samp{-p} in ways that conflict with the
+ normal use inside @sc{cvs} (@pxref{Common options}).}
+
+@@ -10587,7 +10723,7 @@
+ @end ignore
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node import
++@node import, log, history, CVS commands
+ @appendixsec import---Import sources into CVS, using vendor branches
+ @cindex import (subcommand)
+
+@@ -10721,9 +10857,9 @@
+ the new file is @code{dead}, resetting the new file's default branch,
+ and placing the file in the Attic (@pxref{Attic}) directory.
+
+-Use of this option can be forced on a repository-wide basis
+-by setting the @samp{ImportNewFilesToVendorBranchOnly} option in
+-CVSROOT/config (@pxref{config}).
++Setting the @samp{ImportNewFilesToVendorBranchOnly} option in
++CVSROOT/config (@pxref{config}) forces use of this option on
++a repository-wide basis.
+ @end table
+
+ @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+@@ -10773,13 +10909,15 @@
+ See @ref{Tracking sources}, and @ref{From files}.
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node log
+-@appendixsec log---Print out log information for files
++@node log, ls & rls, import, CVS commands
++@appendixsec log---Print out history information for files
+ @cindex log (subcommand)
+
+ @itemize @bullet
+ @item
+ Synopsis: log [options] [files@dots{}]
++
++rlog [options] [files@dots{}]
+ @item
+ Requires: repository, working directory.
+ @item
+@@ -10805,7 +10943,7 @@
+ the @code{$TZ} environment variable, which can be set to
+ govern how @code{log} displays dates.
+
+-@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
++@emph{Note: @code{log} uses @samp{-R} in a way that conflicts
+ with the normal use inside @sc{cvs} (@pxref{Common options}).}
+
+ @menu
+@@ -10997,13 +11135,15 @@
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ @node ls & rls
+-@appendixsec ls & rls
++@appendixsec ls & rls---List files in the repository
+ @cindex ls (subcommand)
+ @cindex rls (subcommand)
+
+ @itemize @bullet
+ @item
+ ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
++
++rls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
+ @item
+ Requires: repository for @code{rls}, repository & working directory for
+ @code{ls}.
+@@ -11094,8 +11234,8 @@
+ @end example
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node rdiff
+-@appendixsec rdiff---'patch' format diffs between releases
++@node rdiff, release, ls & rls, CVS commands
++@appendixsec rdiff---Create 'patch' format diffs between revisions
+ @cindex rdiff (subcommand)
+
+ @itemize @bullet
+@@ -11173,6 +11313,9 @@
+ @item -c
+ Use the context diff format. This is the default format.
+
++@item -p
++Show which C function each change is in.
++
+ @item -s
+ Create a summary change report instead of a patch. The
+ summary includes information about files that were
+@@ -11230,8 +11373,8 @@
+ @end example
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node release
+-@appendixsec release---Indicate that a Module is no longer in use
++@node release, server & pserver, rdiff, CVS commands
++@appendixsec release---Indicate that a directory is no longer in use
+ @cindex release (subcommand)
+
+ @itemize @bullet
+@@ -11282,7 +11425,7 @@
+ succeeds. If this flag is not given your files will
+ remain in your working directory.
+
+-@strong{WARNING: The @code{release} command deletes
++@emph{WARNING: The @code{release} command deletes
+ all directories and files recursively. This
+ has the very serious side-effect that any directory
+ that you have created inside your checked-out sources,
+@@ -11379,14 +11522,33 @@
+ @cindex configuration file
+ @table @code
+ @item -c path
+-Load configuration from @var{path} rather than the default location
+-@file{$CVSROOT/CVSROOT/config} (@pxref{config}). @var{path} must be
+-@file{/etc/cvs.conf} or prefixed by @file{/etc/cvs/}. This option is
+-supported beginning with @sc{cvs} release 1.12.13.
++Load configuration from the given @var{path} rather than from the
++default location @file{$CVSROOT/CVSROOT/config} (@pxref{config}).
++@var{path} must be @file{/etc/cvs.conf} or prefixed by @file{/etc/cvs/}.
++This option is supported beginning with @sc{cvs} release 1.12.13.
+ @end table
+
+ @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-@node update
++@node suck, update, server & pserver, CVS commands
++@appendixsec suck---Download RCS ,v file raw
++@cindex suck (subcommand)
++
++@itemize @bullet
++@item
++suck module/pa/th
++@item
++Requires: repository
++@end itemize
++
++Locates the file module/pa/th,v or module/pa/Attic/th,v and downloads
++it raw as RCS comma-v file.
++
++Output consists of the real pathname of the comma-v file, relative to
++the CVS repository, followed by a newline and the binary file content
++immediately thereafter.
++
++@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++@node update, , suck, CVS commands
+ @appendixsec update---Bring work tree in sync with repository
+ @cindex update (subcommand)
+
+@@ -11635,6 +11797,8 @@
+ references to where each command or feature is
+ described in detail. For other references run the
+ @code{cvs --help} command, or see @ref{Index}.
++For an alphabetical list of all @sc{cvs} commands,
++@pxref{CVS command list}).
+
+ A @sc{cvs} command looks like:
+
+@@ -11646,10 +11810,15 @@
+
+ @table @code
+ @item --allow-root=@var{rootdir}
+-Specify legal @sc{cvsroot} directory (server only) (not
+-in @sc{cvs} 1.9 and older). See @ref{Password
++Specify acceptable @sc{cvsroot} directory (server only).
++Appeared in @sc{cvs} 1.10. See @ref{Password
+ authentication server}.
+
++@item --allow-root-regexp=@var{rootdir}
++Specify a POSIX extended regular expression which matches acceptable
++@sc{cvsroot} directories (server only). Appeared in @sc{cvs}
++1.12.14. See @ref{Password authentication server}.
++
+ @item -a
+ Authenticate all communication (client only) (not in @sc{cvs}
+ 1.9 and older). See @ref{Global options}.
+@@ -11669,6 +11838,10 @@
+ Do not read the @file{~/.cvsrc} file. See @ref{Global
+ options}.
+
++@item -g
++Set the umask to allow group writable permissions in
++the working copy. See @ref{Global options}.
++
+ @item -H
+ @itemx --help
+ Print a help message. See @ref{Global options}.
+@@ -11730,6 +11903,7 @@
+ @example
+ $@splitrcskeyword{Author}: joe $
+ $@splitrcskeyword{Date}: 1993/12/09 03:21:13 $
++$@splitrcskeyword{Mdocdate}: December 9 1993 $
+ $@splitrcskeyword{CVSHeader}: files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+ $@splitrcskeyword{Header}: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+ $@splitrcskeyword{Id}: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+@@ -11756,6 +11930,7 @@
+
+ @table @code
+ @c ------------------------------------------------------------
++@anchor{add}
+ @item add [@var{options}] [@var{files}@dots{}]
+ Add a new file/directory. See @ref{Adding files}.
+
+@@ -11877,7 +12052,8 @@
+ @item -j @var{tag}[:@var{date}]
+ Merge in the change specified by @var{tag}, or when @var{date} is specified
+ and @var{tag} is a branch tag, the version from the branch @var{tag} as it
+-existed on @var{date}. See @ref{checkout options}.
++existed on @var{date}. See @ref{checkout options}. Also,
++see @ref{Common options}.
+
+ @item -k @var{kflag}
+ Use @var{kflag} keyword expansion. See
+@@ -11907,7 +12083,7 @@
+ @item -r @var{tag}[:@var{date}]
+ Checkout the revision already tagged with @var{tag} or, when @var{date} is
+ specified and @var{tag} is a branch tag, the version from the branch @var{tag}
+-as it existed on @var{date}. This . See @ref{Common options}.
++as it existed on @var{date}. See @ref{Common options}.
+
+ @item -s
+ Like -c, but include module status. See @ref{checkout options}.
+@@ -11992,6 +12168,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{edit}
+ @item edit [@var{options}] [@var{files}@dots{}]
+ Get ready to edit a watched file. See @ref{Editing files}.
+
+@@ -12003,7 +12180,7 @@
+ @ref{Editing files}.
+
+ @item -c
+-Check edits: Edit fails if someone else is already editting the file.
++Check edits: Edit fails if someone else is already editing the file.
+ Requires a @sc{cvs} client and server both of version 1.12.10 or greater.
+
+ @item -f
+@@ -12018,6 +12195,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{editors}
+ @item editors [@var{options}] [@var{files}@dots{}]
+ See who is editing a watched file. See @ref{Watch information}.
+
+@@ -12163,14 +12341,17 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{init}
+ @item init
+ Create a @sc{cvs} repository if it doesn't exist. See
+ @ref{Creating a repository}.
+
+ @c ------------------------------------------------------------
++@anchor{kserver}
+ @item kserver
+ Kerberos authenticated server.
+-See @ref{Kerberos authenticated}.
++@xref{server & pserver}.
++@xref{Kerberos authenticated}.
+
+ @c ------------------------------------------------------------
+ @item log [@var{options}] [@var{files}@dots{}]
+@@ -12211,21 +12392,55 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{login}
+ @item login
+ Prompt for password for authenticating server. See
+ @ref{Password authentication client}.
+
+ @c ------------------------------------------------------------
++@anchor{logout}
+ @item logout
+ Remove stored password for authenticating server. See
+ @ref{Password authentication client}.
+
+ @c ------------------------------------------------------------
++@anchor{ls}
++@item ls [@var{options}] [@var{path}@dots{}]
++List files available from CVS. See @ref{ls & rls}.
++
++@table @code
++@item -d
++Show dead revisions (with tag when specified).
++See @ref{ls & rls options}.
++
++@item -e
++Display in CVS/Entries format.
++
++@item -l
++Display all details.
++
++@item -P
++Prune empty directories. See @ref{Moving directories}.
++
++@item -R
++List recursively. @xref{Recursive behavior}.
++
++@item -D @var{date}
++Show files from date. See @ref{Common options}.
++
++@item -r @var{rev}
++Show files with revision or tag.
++@end table
++
++@c ------------------------------------------------------------
++@anchor{pserver}
+ @item pserver
+ Password authenticated server.
+-See @ref{Password authentication server}.
++@xref{server & pserver}.
++@xref{Password authentication server}.
+
+ @c ------------------------------------------------------------
++@anchor{rannotate}
+ @item rannotate [@var{options}] [@var{modules}@dots{}]
+ Show last revision where each line was modified. See
+ @ref{annotate}.
+@@ -12298,7 +12513,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
+-@item release [@var{options}] @var{directory}
++@item release [@var{options}] @var{directories}@dots{}
+ Indicate that a directory is no longer in use. See
+ @ref{release}.
+
+@@ -12308,6 +12523,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{remove}
+ @item remove [@var{options}] [@var{files}@dots{}]
+ Remove an entry from the repository. See @ref{Removing files}.
+
+@@ -12324,6 +12540,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{rlog}
+ @item rlog [@var{options}] [@var{files}@dots{}]
+ Print out history information for modules. See @ref{log}.
+
+@@ -12361,9 +12578,40 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{rls}
++@item rls [@var{options}] [@var{path}@dots{}]
++List files in a module. See @ref{ls & rls}.
++
++@table @code
++@item -d
++Show dead revisions (with tag when specified).
++See @ref{ls & rls options}.
++
++@item -e
++Display in CVS/Entries format.
++
++@item -l
++Display all details.
++
++@item -P
++Prune empty directories. See @ref{Moving directories}.
++
++@item -R
++List recursively. @xref{Recursive behavior}.
++
++@item -D @var{date}
++Show files from date. See @ref{Common options}.
++
++@item -r @var{rev}
++Show files with revision or tag.
++@end table
++
++@c ------------------------------------------------------------
++@anchor{rtag}
+ @item rtag [@var{options}] @var{tag} @var{modules}@dots{}
+ Add a symbolic tag to a module.
+-See @ref{Revisions} and @ref{Branching and merging}.
++@xref{Tagging by date/tag}.
++@xref{Creating a branch}.
+
+ @table @code
+ @item -a
+@@ -12407,10 +12655,18 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{server}
+ @item server
+-Rsh server. See @ref{Connecting via rsh}.
++SSH/rsh server.
++@xref{server & pserver}.
++@xref{Connecting via rsh}.
+
+ @c ------------------------------------------------------------
++@item suck @var{module/filename}
++Download RCS ,v file raw. See @ref{suck}.
++
++@c ------------------------------------------------------------
++@anchor{status}
+ @item status [@var{options}] @var{files}@dots{}
+ Display status information in a working directory. See
+ @ref{File status}.
+@@ -12427,9 +12683,11 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{tag}
+ @item tag [@var{options}] @var{tag} [@var{files}@dots{}]
+ Add a symbolic tag to checked out version of files.
+-See @ref{Revisions} and @ref{Branching and merging}.
++@xref{Tagging the working directory}.
++@xref{Creating a branch}.
+
+ @table @code
+ @item -b
+@@ -12465,6 +12723,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{unedit}
+ @item unedit [@var{options}] [@var{files}@dots{}]
+ Undo an edit command. See @ref{Editing files}.
+
+@@ -12541,6 +12800,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{version}
+ @item version
+ @cindex version (subcommand)
+
+@@ -12548,6 +12808,7 @@
+ is remote, display both the client and server versions.
+
+ @c ------------------------------------------------------------
++@anchor{watch}
+ @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
+
+ on/off: turn on/off read-only checkouts of files. See
+@@ -12572,6 +12833,7 @@
+ @end table
+
+ @c ------------------------------------------------------------
++@anchor{watchers}
+ @item watchers [@var{options}] [@var{files}@dots{}]
+ See who is watching a file. See @ref{Watch information}.
+
+@@ -12711,7 +12973,7 @@
+ @item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
+ In the simplest case, this form of module definition
+ reduces to @samp{@var{mname} @var{dir}}. This defines
+-all the files in directory @var{dir} as module mname.
++all the files in directory @var{dir} as module @var{mname}.
+ @var{dir} is a relative path (from @code{$CVSROOT}) to a
+ directory of source in the source repository. In this
+ case, on checkout, a single directory called
+@@ -12934,7 +13196,7 @@
+ @sc{cvs} will execute this program on the server from a temporary
+ directory. The path is searched for this program.
+
+-If using ``local access'' (on a local or remote NFS file system, i.e.
++If using ``local access'' (on a local or remote NFS filesystem, i.e.
+ repository set just to a path),
+ the program will be executed from the newly checked-out tree, if
+ found there, or alternatively searched for in the path if not.
+@@ -12975,7 +13237,7 @@
+ mechanisms outside @sc{cvs}, to insert any necessary
+ changes.
+
+-@strong{WARNING: do not use @code{COPY} with
++@emph{WARNING: do not use @code{COPY} with
+ @sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will
+ copy one version of your file over the other, wiping
+ out the previous contents.}
+@@ -13292,7 +13554,7 @@
+ @file{module}:
+
+ @example
+-^module\(/\|$\) (echo; echo %p; echo %@{sVv@}; cat) >>$CVSROOT/CVSROOT/commitlog
++^module\(/\|$\) (echo; echo %p: %@{sVv@}; cat) >>$CVSROOT/CVSROOT/commitlog
+ @end example
+
+ Using this same line and assuming a commit of new revisions
+@@ -13353,7 +13615,7 @@
+
+ There are three kinds of programs that can be run on
+ commit. They are specified in files in the repository,
+-as described below. The following table summarizes the
++as described below. The following table summarises the
+ file names and the purpose of the corresponding
+ programs.
+
+@@ -13466,10 +13728,10 @@
+ your @file{loginfo} command line templates, you will most likely have to
+ rewrite any scripts called by the hook to handle the new argument format.
+
+-Also note that the way @samp{%} followed by unrecognized characters and by
++Also note that the way @samp{%} followed by unrecognised characters and by
+ @samp{@{@}} was treated in past versions of CVS is not strictly adhered to as
+ there were bugs in the old versions. Specifically, @samp{%@{@}} would eat the
+-next character and unrecognized strings resolved only to the empty string,
++next character and unrecognised strings resolved only to the empty string,
+ which was counter to what was stated in the documentation. This version will
+ do what the documentation said it should have (if you were using only some
+ combination of @samp{%@{sVv@}}, e.g. @samp{%@{sVv@}}, @samp{%@{sV@}}, or
+@@ -13749,7 +14011,7 @@
+
+ The @file{loginfo} file is used to control where log information is sent after
+ versioned changes are made to repository archive files and after directories
+-are added ot the repository. @ref{posttag} for how to log tagging
++are added to the repository. @ref{posttag} for how to log tagging
+ information and @ref{postadmin} for how to log changes due to the @code{admin}
+ command.
+
+@@ -13779,14 +14041,11 @@
+ @file{loginfo} supports:
+
+ @table @t
+-@item @{stVv@}
++@item @{sVv@}
+ File attributes, where:
+ @table @t
+ @item s
+ file name
+-@item T
+-tag name of destination, or the empty string when there is no associated
+-tag name (this usually means the trunk)
+ @item V
+ old version number (pre-checkin)
+ @item v
+@@ -13795,7 +14054,7 @@
+ @end table
+
+ For example, some valid format strings are @samp{%%},
+-@samp{%s}, @samp{%@{s@}}, and @samp{%@{stVv@}}.
++@samp{%s}, @samp{%@{s@}}, and @samp{%@{sVv@}}.
+
+ @cindex loginfo (admin file), updating legacy repositories
+ @cindex compatibility notes, loginfo admin file
+@@ -13843,9 +14102,9 @@
+ @c directory, it is kind of awkward if
+ @c only the first matching line is used.
+ @example
+-ALL /usr/local/bin/cvs-log $CVSROOT/CVSROOT/commitlog $USER
+-^CVSROOT\(/\|$\) /usr/local/bin/cvs-log /usr/adm/cvsroot-log $USER
+-^prog1\(/\|$\) Mail -s "%p %s" ceder
++ALL /usr/local/bin/cvs-log $CVSROOT/CVSROOT/commitlog $USER
++^CVSROOT\(/\|$\) /usr/local/bin/cvs-log /usr/adm/cvsroot-log $USER
++^prog1\(/\|$\) Mail -s "%p %s" ceder
+ @end example
+
+ The shell-script @file{/usr/local/bin/cvs-log} looks
+@@ -14210,7 +14469,7 @@
+
+ @itemize @bullet
+ @item
+-The list is initialized to include certain file name
++The list is initialised to include certain file name
+ patterns: names associated with @sc{cvs}
+ administration, or with other common source control
+ systems; common names for patch files, object files,
+@@ -14378,7 +14637,7 @@
+ the server machine, and don't get any reasonable
+ expansion if pserver (@pxref{Password authenticated})
+ is in use; therefore user variables (see below) may be
+-a better choice to customize behavior based on the user
++a better choice to customise behavior based on the user
+ running @sc{cvs}.
+ @c Based on these limitations, should we deprecate ~?
+ @c What is it good for? Are people using it?
+@@ -14442,6 +14701,7 @@
+ random string of printable characters of at least 16
+ characters length. Users should assume that it may
+ someday grow to at most 256 characters in length.
++Currently, Debian and MirBSD @sc{cvs} uses 19 characters.
+ @end table
+
+ If you want to pass a value to the administrative files
+@@ -14613,7 +14873,7 @@
+ @cindex KeywordExpand, in CVSROOT/config
+ @item KeywordExpand=@var{value}
+ Specify @samp{i} followed by a list of keywords to be expanded
+-(for example, @samp{KeywordExpand=iMYCVS,Name,Date}),
++(for example, @samp{KeywordExpand=iMYCVS,Name,Date,Mdocdate}),
+ or @samp{e} followed by a list of keywords not to be expanded
+ (for example, @samp{KeywordExpand=eCVSHeader}).
+ For more on keyword expansion, see @ref{Configuring keyword expansion}.
+@@ -14621,8 +14881,8 @@
+ @cindex LocalKeyword, in CVSROOT/config
+ @item LocalKeyword=@var{value}
+ Specify a local alias for a standard keyword.
+-For example, @samp{LocalKeyword=MYCVS=CVSHeader}.
+-For more on local keywords, see @ref{Keyword substitution}.
++See @ref{Keyword substitution} for more information in local keywords.
++Example: @samp{LocalKeyword=MYCVS=CVSHeader}
+
+ @cindex LockDir, in CVSROOT/config
+ @item LockDir=@var{directory}
+@@ -14632,7 +14892,7 @@
+ write access only to @var{directory}, not to the
+ repository.
+ It can also be used to put the locks on a very fast
+-in-memory file system to speed up locking and unlocking
++in-memory filesystem to speed up locking and unlocking
+ the repository.
+ You need to create @var{directory}, but
+ @sc{cvs} will create subdirectories of @var{directory} as it
+@@ -14657,7 +14917,9 @@
+ Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log
+ all transactions. Any subset of the default is
+ legal. (For example, to only log transactions that modify the
+-@file{*,v} files, use @samp{LogHistory=TMAR}.) To disable history logging
++@file{*,v} files, use @samp{LogHistory=TMAR} which is nowadays
++set by @code{cvs init} by default.)
++To disable history logging
+ completely, use @samp{LogHistory=}.
+
+ @cindex MaxCommentLeaderLength, in CVSROOT/config
+@@ -14743,11 +15005,11 @@
+ the log message should always be reread; @samp{no}
+ or @samp{never}, indicating that it should never be
+ reread; or @var{value} may be @samp{stat}, indicating
+-that the file should be checked with the file system
++that the file should be checked with the filesystem
+ @samp{stat()} function to see if it has changed (see warning below)
+ before rereading. The default value is @samp{always}.
+
+-@strong{Note: the `stat' mode can cause CVS to pause for up to
++@emph{Note: the `stat' mode can cause CVS to pause for up to
+ one extra second per directory committed. This can be less IO and
+ CPU intensive but is not recommended for use with large repositories}
+
+@@ -14879,11 +15141,12 @@
+ check out from a read-only repository, such as within
+ an anoncvs server, or from a @sc{cd-rom} repository.
+
+-It has the same effect as if the @samp{-R} command-line
++Setting this has the same effect as if the @samp{-R} command-line
+ option is used. This can also allow the use of
+ read-only NFS repositories.
+
+ @item $CVSUMASK
++@anchor{CVSUMASK}
+ Controls permissions of files in the repository. See
+ @ref{File permissions}.
+
+@@ -14977,11 +15240,24 @@
+
+ @cindex CVS_CLIENT_LOG, environment variable
+ @item $CVS_CLIENT_LOG
+-Used for debugging only in client-server
+-mode. If set, everything sent to the server is logged
+-into @file{@code{$CVS_CLIENT_LOG}.in} and everything
+-sent from the server is logged into
+-@file{@code{$CVS_CLIENT_LOG}.out}.
++Used for debugging only in client-server mode.
++If set and not empty, everything sent to the server is logged
++into @file{@code{$CVS_CLIENT_LOG}.in}, and everything received
++from the server is logged into @file{@code{$CVS_CLIENT_LOG}.out}.
++
++@cindex CVS_SECONDARY_LOG, environment variable
++@item $CVS_SECONDARY_LOG
++Used for debugging only in secondary write proxy mode.
++If set and not empty, everything sent to the primary server is logged
++into @file{@code{$CVS_SECONDARY_LOG}.in}, and everything received
++from the primary server is logged into @file{@code{$CVS_SECONDARY_LOG}.out}.
++
++@cindex CVS_SERVER_LOG, environment variable
++@item $CVS_SERVER_LOG
++Used for debugging only in client-server mode.
++If set and not empty, everything sent to the client is logged
++into @file{@code{$CVS_SERVER_LOG}.in}, and everything received
++from the client is logged into @file{@code{$CVS_SERVER_LOG}.out}.
+
+ @cindex CVS_SERVER_SLEEP, environment variable
+ @item $CVS_SERVER_SLEEP
+@@ -15047,7 +15323,7 @@
+ @c If you "cvs rm" and commit using 1.3, then you'll
+ @c want to run "rcs -sdead <file,v>" on each of the
+ @c files in the Attic if you then want 1.5 and
+-@c later to recognize those files as dead (I think the
++@c later to recognise those files as dead (I think the
+ @c symptom if this is not done is that files reappear
+ @c in joins). (Wait: the above will work but really to
+ @c be strictly correct we should suggest checking
+@@ -15172,6 +15448,7 @@
+ specific reason for denying authorization. Check that
+ the username and password specified are correct and
+ that the @code{CVSROOT} specified is allowed by @samp{--allow-root}
++or @samp{--allow-root-regexp}
+ in @file{inetd.conf}. See @ref{Password authenticated}.
+
+ @item cvs @var{command}: conflict: removed @var{file} was modified by second party
+@@ -15614,21 +15891,21 @@
+ access method you are using.
+
+ @table @code
+-@cindex :ext:, troubleshooting
++@cindex ext method, troubleshooting
+ @item :ext:
+ Try running the rsh program from the command line. For
+ example: "rsh servername cvs -v" should print @sc{cvs}
+ version information. If this doesn't work, you need to
+ fix it before you can worry about @sc{cvs} problems.
+
+-@cindex :server:, troubleshooting
++@cindex server method, troubleshooting
+ @item :server:
+ You don't need a command line rsh program to use this
+ access method, but if you have an rsh program around,
+ it may be useful as a debugging tool. Follow the
+ directions given for :ext:.
+
+-@cindex :pserver:, troubleshooting
++@cindex pserver method, troubleshooting
+ @item :pserver:
+ Errors along the lines of "connection refused" typically indicate
+ that inetd isn't even listening for connections on port 2401
+@@ -15806,6 +16083,16 @@
+ the file @file{doc/ChangeLog} in the @sc{cvs} source
+ distribution.
+
++MirBSD is the de-facto (if not de-iure yet) new upstream of
++@sc{gnu} @sc{cvs} since 2012 or so; this version is provided
++in Debian as well. Responsible is:
++
++@display
++mirabilos <@t{m@@mirbsd.org}>
++@end display
++
++CVS Homepage: @url{http://www.nongnu.org/cvs/}
++
+ @c ---------------------------------------------------------------------
+ @node BUGS
+ @appendix Dealing with bugs in CVS or this manual
+@@ -15887,7 +16174,7 @@
+ relevant information. The way to report bugs is to
+ send email to @email{bug-cvs@@nongnu.org}. Note
+ that submissions to @email{bug-cvs@@nongnu.org} may be distributed
+-under the terms of the @sc{gnu} Public License, so if
++under the terms of the @sc{gnu} General Public License, so if
+ you don't like this, don't submit them. There is
+ usually no justification for sending mail directly to
+ one of the @sc{cvs} maintainers rather than to
+@@ -15910,6 +16197,49 @@
+ comprehensive, detailed list of known bugs.
+
+ @c ---------------------------------------------------------------------
++@node CVS command list
++@appendix Alphabetical list of all CVS commands
++
++@xref{Cederqvist, the introduction into the manual, CVS manual Table of Contents}.
++
++@menu
++* add:: Add a new file/directory to the repository
++* admin:: Administration front-end for RCS
++* annotate:: Show last revision where each line was modified
++* checkout:: Checkout sources for editing
++* commit:: Check files into the repository
++* diff:: Show differences between revisions
++* edit:: Get ready to edit a watched file
++* editors:: See who is editing a watched file
++* export:: Export sources from CVS, similar to checkout
++* history:: Show repository access history
++* import:: Import sources into CVS, using vendor branches
++* init:: Create a CVS repository
++* kserver:: Act in Kerberos server mode
++* log:: Print out history information for files
++* login:: Prompt for password for authenticating server
++* logout:: Removes entry in .cvspass for remote repository
++* ls:: List files available from CVS
++* pserver:: Act in password server mode
++* rannotate:: Show last revision where each line of module was modified
++* rdiff:: Create 'patch' format diffs between revisions
++* release:: Indicate that a work subdirectory is no longer in use
++* remove:: Remove an entry from the repository
++* rlog:: Print out history information for a module
++* rls:: List files in a module
++* rtag:: Add a symbolic tag to a module
++* server:: Act in server mode
++* suck:: Download RCS ,v file raw
++* status:: Display status information on checked out files
++* tag:: Add a symbolic tag to checked out version of files
++* unedit:: Undo an edit command
++* update:: Bring work tree in sync with repository
++* version:: Show current CVS version(s)
++* watch:: Set watches
++* watchers:: See who is watching a file
++@end menu
++
++@c ---------------------------------------------------------------------
+ @node Index
+ @unnumbered Index
+ @cindex Index
+--- cvs-1.12.13+real.orig/doc/cvsclient.texi
++++ cvs-1.12.13+real/doc/cvsclient.texi
+@@ -1,6 +1,18 @@
+ \input texinfo @c -*- texinfo -*-
+
+ @setfilename cvsclient.info
++@set MBSDPATCHLEVEL -MirOS-0AB9.1
++@tex
++ % set PA4 paper size (can print on both DIN ISO A4 and US Letter)
++ \globaldefs = 1%
++ \afourpaper%
++ \internalpagesizes{46\baselineskip}{160mm}%
++ {\voffset}{\hoffset}%
++ {\bindingoffset}{36pt}%
++ {28truecm}{21truecm}%
++ \globaldefs = 0%
++@end tex
++@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvsclient.texi,v 1.14 2021/01/30 05:14:20 tg Exp $
+ @include version-client.texi
+
+ @dircategory Programming
+@@ -8,14 +20,26 @@
+ * cvsclient: (cvsclient). The CVS client/server protocol.
+ @end direntry
+
++@iftex
++@titlepage
++@sp 2
++@center @titlefont{CVS}
++@sp 1
++@center @titlefont{Client/Server}
++@sp 1
++@center @titlefont{protocol}
++@sp 3
++@end iftex
++@ifnottex
+ @node Top
+ @top CVS Client/Server
++@end ifnottex
+
+ This document describes the client/server protocol used by CVS. It does
+-not describe how to use or administer client/server CVS; see the regular
+-CVS manual for that. This is version @value{VERSION} of the protocol
+-specification---@xref{Introduction}, for more on what this version number
+-means.
++not describe how to use or administer client/server CVS; for that,
++@pxref{Top, the regular CVS manual,, cvs, the regular CVS manual}.
++This specification applies to
++@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
+
+ @menu
+ * Introduction:: What is CVS and what is the client/server protocol for?
+@@ -25,6 +49,9 @@
+ * Protocol:: Complete description of the protocol
+ * Protocol Notes:: Possible enhancements, limitations, etc. of the protocol
+ @end menu
++@iftex
++@end titlepage
++@end iftex
+
+ @node Introduction
+ @chapter Introduction
+@@ -53,7 +80,7 @@
+ user documentation, @file{cvs.texinfo}, for that information. The
+ protocol is non-proprietary (anyone who wants to is encouraged to
+ implement it) and an implementation, known as CVS, is available under
+-the GNU Public License. The CVS distribution, containing this
++the GNU General Public License. The CVS distribution, containing this
+ implementation, @file{cvs.texinfo}, and a copy (possibly more or less up
+ to date than what you are reading now) of this document,
+ @file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a
+@@ -149,7 +176,7 @@
+ the client proceeds to start the cvs protocol.
+
+ @item kserver
+-The kerberized server listens on a port (in the current implementation,
++The kerberised server listens on a port (in the current implementation,
+ by having inetd call "cvs kserver") which defaults to 1999. The client
+ connects, sends the usual kerberos authentication information, and then
+ starts the cvs protocol. Note: port 1999 is officially registered for
+@@ -217,7 +244,7 @@
+ close the connection. The @var{code} is a code describing why it
+ failed, intended for computer consumption. The only code currently
+ defined is @samp{0} which is nonspecific, but clients must silently
+-treat any unrecognized codes as nonspecific.
++treat any unrecognised codes as nonspecific.
+ The @var{text} should be supplied to the
+ user. Compatibility note: @sc{cvs} 1.9.10 and older clients will print
+ @code{unrecognized auth response} and @var{text}, and then exit, upon
+@@ -393,13 +420,13 @@
+ @var{mode-type} is an identifier composed of alphanumeric characters.
+ Currently specified: @samp{u} for user, @samp{g} for group, @samp{o}
+ for other (see below for discussion of whether these have their POSIX
+-meaning or are more loose). Unrecognized values of @var{mode-type}
++meaning or are more loose). Unrecognised values of @var{mode-type}
+ are silently ignored.
+
+ @var{data} consists of any data not containing @samp{,}, @samp{\0} or
+ @samp{\n}. For @samp{u}, @samp{g}, and @samp{o} mode types, data
+ consists of alphanumeric characters, where @samp{r} means read, @samp{w}
+-means write, @samp{x} means execute, and unrecognized letters are
++means write, @samp{x} means execute, and unrecognised letters are
+ silently ignored.
+
+ The two most obvious ways in which the mode matters are: (1) is it
+@@ -471,12 +498,13 @@
+ In various contexts, for example the @code{Argument} request and the
+ @code{M} response, one transmits what is essentially an arbitrary
+ string. Often this will have been supplied by the user (for example,
+-the @samp{-m} option to the @code{ci} request). The protocol has no
+-mechanism to specify the character set of such strings; it would be
+-fairly safe to stick to the invariant ISO 646 character set but the
+-existing practice is probably to just transmit whatever the user
+-specifies, and hope that everyone involved agrees which character set is
+-in use, or sticks to a common subset.
++the @samp{-m} option to the @code{ci} request will show up in the
++@code{LOGM} response). The protocol has no mechanism to specify the
++character set of such strings; it would have been, initially, fairly
++safe to stick to the invariant ISO 646 character set but the existing
++practice is probably to just transmit whatever the user specifies,
++and hope that everyone involved agrees which character set is in use,
++or sticks to a common subset. In modern times, UTF-8 should be used.
+
+ @node Dates
+ @section Dates
+@@ -513,7 +541,7 @@
+
+ By convention, requests which begin with a capital letter do not elicit
+ a response from the server, while all others do -- save one. The
+-exception is @samp{gzip-file-contents}. Unrecognized requests will
++exception is @samp{gzip-file-contents}. Unrecognised requests will
+ always elicit a response from the server, even if that request begins
+ with a capital letter.
+
+@@ -568,7 +596,7 @@
+ Response expected: no.
+ Notify a primary server of a server which referred us. Intended to allow
+ a primary (write) server to update the read-only mirror a client is using
+-for reads to minimize races on any subsequent updates from the client.
++for reads to minimise races on any subsequent updates from the client.
+
+ @item Directory @var{local-directory} \n
+ @itemx Relative-directory @var{local-directory} \n
+@@ -828,7 +856,7 @@
+ @end example
+
+ There is no requirement that the client and server clocks be
+-synchronized. The client just sends its recommendation for a timestamp
++synchronised. The client just sends its recommendation for a timestamp
+ (based on file timestamps or whatever), and the server should just believe
+ it (this means that the time might be in the future, for example).
+
+@@ -1227,6 +1255,13 @@
+ directory and @emph{not} a fully qualified @code{CVSROOT} variable.
+ The @code{Root} request need not have been previously sent.
+
++@item suck \n
++Response expected: yes.
++Actually do a @code{cvs suck} command.
++This uses a previous @code{Argument} request (only one, because the
++@code{cvs suck} CLI command takes only one).
++This is an extension specific to MirBSD, MirPorts and Debian.
++
+ @item update \n
+ Response expected: yes. Actually do a @code{cvs update} command. This
+ uses any previous @code{Argument}, @code{Directory}, @code{Entry},
+@@ -1268,7 +1303,7 @@
+ C: Directory .
+ C: 1dir
+ C: add
+-S: M Directory /u/cvsroot/1dir/nsdir added to the repository
++S: M Directory /u/cvsroot/1dir/nsdir put under version control
+ S: ok
+ @end example
+
+@@ -1414,7 +1449,7 @@
+
+ @item @var{other-request} @var{text} \n
+ Response expected: yes.
+-Any unrecognized request expects a response, and does not
++Any unrecognised request expects a response, and does not
+ contain any additional data. The response will normally be something like
+ @samp{error unrecognized request}, but it could be a different error if
+ a previous request which doesn't expect a response produced an error.
+@@ -1640,7 +1675,7 @@
+ @end example
+
+ There is no requirement that the client and server clocks be
+-synchronized. The server just sends its recommendation for a timestamp
++synchronised. The server just sends its recommendation for a timestamp
+ (based on its own clock, presumably), and the client should just believe
+ it (this means that the time might be in the future, for example).
+
+@@ -1757,15 +1792,22 @@
+ exact text which is output is subject to vary at the discretion of the
+ server and the example output given in this document is just that,
+ example output. Servers are encouraged to use the @samp{MT} response,
+-and future versions of this document will hopefully standardize more of
++and future versions of this document will hopefully standardise more of
+ the @samp{MT} tags; see @ref{Text tags}.
+
++@item LOGM @var{text} \n
++Exactly the same as @code{M} but only sent if the client indicates
++supporting it via @code{Valid-responses}, used exclusively for log
++message payload (that is, in @code{cvs log} and @code{cvs rlog},
++the text body the user originally has entered with the @samp{-m}
++option to the @code{ci} request).
++
+ @item Mbinary \n
+ Additional data: file transmission (note: compressed file transmissions
+-are not supported). This is like @samp{M}, except the contents of the
++are not supported). This is like @code{M}, except the contents of the
+ file transmission are binary and should be copied to standard output
+ without translation to local text file conventions. To transmit a text
+-file to standard output, servers should use a series of @samp{M} requests.
++file to standard output, servers should use a series of @code{M} requests.
+
+ @item E @var{text} \n
+ Same as @code{M} but send to stderr not stdout.
+@@ -1789,12 +1831,12 @@
+
+ The @var{tagname} can have several forms. If it starts with @samp{a}
+ to @samp{z} or @samp{A} to @samp{Z}, then it represents tagged text.
+-If the implementation recognizes @var{tagname}, then it may interpret
++If the implementation recognises @var{tagname}, then it may interpret
+ @var{data} in some particular fashion. If the implementation does not
+-recognize @var{tagname}, then it should simply treat @var{data} as
+-text to be sent to the user (similar to an @samp{M} response). There
++recognise @var{tagname}, then it should simply treat @var{data} as
++text to be sent to the user (similar to an @code{M} response). There
+ are two tags which are general purpose. The @samp{text} tag is
+-similar to an unrecognized tag in that it provides text which will
++similar to an unrecognised tag in that it provides text which will
+ ordinarily be sent to the user. The @samp{newline} tag is used
+ without @var{data} and indicates that a newline will ordinarily be
+ sent to the user (there is no provision for embedding newlines in the
+@@ -2133,13 +2175,13 @@
+ The protocol uses an extra network turnaround for protocol negotiation
+ (@code{valid-requests}). It might be nice to avoid this by having the
+ client be able to send requests and tell the server to ignore them if
+-they are unrecognized (different requests could produce a fatal error if
+-unrecognized). To do this there should be a standard syntax for
++they are unrecognised (different requests could produce a fatal error if
++unrecognised). To do this there should be a standard syntax for
+ requests. For example, perhaps all future requests should be a single
+ line, with mechanisms analogous to @code{Argumentx}, or several requests
+ working together, to provide greater amounts of information. Or there
+ might be a standard mechanism for counted data (analogous to that used
+-by @code{Modified}) or continuation lines (like a generalized
++by @code{Modified}) or continuation lines (like a generalised
+ @code{Argumentx}). It would be useful to compare what HTTP is planning
+ in this area; last I looked they were contemplating something called
+ Protocol Extension Protocol but I haven't looked at the relevant IETF
+--- cvs-1.12.13+real.orig/doc/getdate.texi
++++ cvs-1.12.13+real/doc/getdate.texi
+@@ -1,14 +1,22 @@
+ @c GNU date syntax documentation
++@c $MirOS: src/gnu/usr.bin/cvs/doc/getdate.texi,v 1.9 2021/01/30 02:06:00 tg Exp $
+
+ @c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ @c 2003, 2004, 2005 Free Software Foundation, Inc.
+
+-@c Permission is granted to copy, distribute and/or modify this document
+-@c under the terms of the GNU Free Documentation License, Version 1.1 or
+-@c any later version published by the Free Software Foundation; with no
+-@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+-@c Texts. A copy of the license is included in the ``GNU Free
+-@c Documentation License'' file as part of this distribution.
++@c Copyright (c) 2007, 2010 mirabilos <m@mirbsd.org>
++
++@comment This file is part of the CVS distribution.
++
++@comment CVS is free software; you can redistribute it and/or modify
++@comment it under the terms of the GNU General Public License as published by
++@comment the Free Software Foundation; either version 2, or (at your option)
++@comment any later version.
++
++@comment CVS is distributed in the hope that it will be useful,
++@comment but WITHOUT ANY WARRANTY; without even the implied warranty of
++@comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++@comment GNU General Public License for more details.
+
+ @node Date input formats
+ @chapter Date input formats
+@@ -55,8 +63,7 @@
+ * Day of week items:: Monday and others.
+ * Relative items in date strings:: next tuesday, 2 years ago.
+ * Pure numbers in date strings:: 19931219, 1440.
+-* Seconds since the Epoch:: @@1078100502.
+-* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
++* Seconds since the Epoch:: @@1101064456
+ * Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al.
+ @end menu
+
+@@ -113,8 +120,7 @@
+
+ @cindex language, in dates
+ @cindex time zone item
+-The output of the @command{date} command
+-is not always acceptable as a date string,
++The output of @command{date} is not always acceptable as a date string,
+ not only because of the language problem, but also because there is no
+ standard meaning for time zone items like @samp{IST}. When using
+ @command{date} to generate a date string intended to be parsed later,
+@@ -124,15 +130,21 @@
+
+ @example
+ $ LC_ALL=C TZ=UTC0 date
+-Mon Mar 1 00:21:42 UTC 2004
+-$ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
+-2004-03-01 00:21:42Z
++Fri Dec 15 19:48:05 UTC 2000
++$ TZ=UTC0 date +"%Y-%m-%d %H:%M:%SZ"
++2000-12-15 19:48:05Z
++$ date --iso-8601=seconds # a GNU extension
++2000-12-15T11:48:05-0800
++$ date --iso-8601=ns # a GNU extension
++2004-02-29T16:21:42,692722128-0800
+ $ date --iso-8601=ns | tr T ' ' # --iso-8601 is a GNU extension.
+ 2004-02-29 16:21:42,692722128-0800
+ $ date --rfc-2822 # a GNU extension
+-Sun, 29 Feb 2004 16:21:42 -0800
+-$ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
+-2004-02-29 16:21:42 -0800
++Fri, 15 Dec 2000 11:48:05 -0800
++$ date +"%Y-%m-%d %H:%M:%S %z" # %z is a GNU extension.
++2000-12-15 11:48:05 -0800
++$ date +'@@%s' # %s is a MirBSD extension.
++@@1101064210
+ $ date +'@@%s.%N' # %s and %N are GNU extensions.
+ @@1078100502.692722128
+ @end example
+@@ -234,11 +246,10 @@
+ More generally, the time of day may be given as
+ @samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is
+ a number between 0 and 23, @var{minute} is a number between 0 and
+-59, and @var{second} is a number between 0 and 59 possibly followed by
+-@samp{.} or @samp{,} and a fraction containing one or more digits.
+-Alternatively,
+-@samp{:@var{second}} can be omitted, in which case it is taken to
+-be zero.
++59, and @var{second} is a number between 0 and 59, with an optional
++fraction separated by @samp{.} or @samp{,} consisting of digits.
++Alternatively, @samp{:@var{second}} can be omitted, in which case
++it is taken to be zero.
+
+ @findex am @r{in date strings}
+ @findex pm @r{in date strings}
+@@ -299,8 +310,7 @@
+ described in the previous section.
+
+ If neither a time zone item nor a time zone correction is supplied,
+-time stamps are interpreted using the rules of the default time zone
+-(@pxref{Specifying time zone rules}).
++time stamps are interpreted using the rules of the default time zone.
+
+
+ @node Day of week items
+@@ -389,7 +399,7 @@
+ date strings like @samp{this thursday}.
+
+ When a relative item causes the resulting date to cross a boundary
+-where the clocks were adjusted, typically for daylight saving time,
++where the clocks were adjusted, typically for daylight-saving time,
+ the resulting date and time are adjusted accordingly.
+
+ The fuzz in units can cause problems with relative items. For
+@@ -401,7 +411,7 @@
+ @example
+ $ date -R
+ Thu, 31 Jul 2003 13:02:39 -0700
+-$ date --date='-1 month' +'Last month was %B?'
++$ date --date="-1 month" +'Last month was %B?'
+ Last month was July?
+ $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
+ Last month was June!
+@@ -440,86 +450,49 @@
+ @node Seconds since the Epoch
+ @section Seconds since the Epoch
+
+-If you precede a number with @samp{@@}, it represents an internal time
+-stamp as a count of seconds. The number can contain an internal
+-decimal point (either @samp{.} or @samp{,}); any excess precision not
+-supported by the internal representation is truncated toward minus
+-infinity. Such a number cannot be combined with any other date
+-item, as it specifies a complete time stamp.
++If you give a string consisting of @samp{@@} followed by a decimal
++number, it is parsed as an internal time stamp, @sc{utc} for
++@acronym{POSIX} compliant systems, @sc{tai} for systems which keep
++time correctly, and directly mapped to a kernel time. The implementation
++handles an optional fraction separated by @samp{.} or @samp{,} and
++truncates to a supported internal precision, rounding towards the
++negative infinity. Since the kernel time stamp represents complete
++date and time information, it cannot be combined with any other
++format given.
+
+ @cindex beginning of time, for @acronym{POSIX}
+ @cindex epoch, for @acronym{POSIX}
+-Internally, computer times are represented as a count of seconds since
+-an epoch---a well-defined point of time. On @acronym{GNU} and
+-@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so
+-@samp{@@0} represents this time, @samp{@@1} represents 1970-01-01
+-00:00:01 @sc{utc}, and so forth. @acronym{GNU} and most other
+-@acronym{POSIX}-compliant systems support such times as an extension
+-to @acronym{POSIX}, using negative counts, so that @samp{@@-1}
+-represents 1969-12-31 23:59:59 @sc{utc}.
+-
+-Traditional Unix systems count seconds with 32-bit two's-complement
+-integers and can represent times from 1901-12-13 20:45:52 through
+-2038-01-19 03:14:07 @sc{utc}. More modern systems use 64-bit counts
+-of seconds with nanosecond subcounts, and can represent all the times
+-in the known lifetime of the universe to a resolution of 1 nanosecond.
+-
+-On most systems, these counts ignore the presence of leap seconds.
+-For example, on most systems @samp{@@915148799} represents 1998-12-31
+-23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00
+-@sc{utc}, and there is no way to represent the intervening leap second
+-1998-12-31 23:59:60 @sc{utc}.
+-
+-@node Specifying time zone rules
+-@section Specifying time zone rules
+-
+-@vindex TZ
+-Normally, dates are interpreted using the rules of the current time
+-zone, which in turn are specified by the @env{TZ} environment
+-variable, or by a system default if @env{TZ} is not set. To specify a
+-different set of default time zone rules that apply just to one date,
+-start the date with a string of the form @samp{TZ="@var{rule}"}. The
+-two quote characters (@samp{"}) must be present in the date, and any
+-quotes or backslashes within @var{rule} must be escaped by a
+-backslash.
+-
+-For example, with the @acronym{GNU} @command{date} command you can
+-answer the question ``What time is it in New York when a Paris clock
+-shows 6:30am on October 31, 2004?'' by using a date beginning with
+-@samp{TZ="Europe/Paris"} as shown in the following shell transcript:
+-
+-@example
+-$ export TZ="America/New_York"
+-$ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
+-Sun Oct 31 01:30:00 EDT 2004
+-@end example
++Although the date syntax here can represent any possible time since the
++year zero, computer integers often cannot represent such a wide range of
++time. On @acronym{POSIX} systems, the clock starts at 1970-01-01 00:00:00
++@sc{utc}: @acronym{POSIX} does not require support for times before the
++@acronym{POSIX} Epoch and times far in the future. @acronym{GNU} and
++traditional Unix systems have 32-bit signed @code{time_t} and can represent
++times from 1901-12-13 20:45:52 through 2038-01-19 03:14:07 @sc{utc}, such
++that @samp{@@0} represents the epoch, @samp{@@1} represents 1970-01-01
++00:00:01 @sc{utc}, and so forth, whereas @samp{@@-1}, not mandated by
++@acronym{POSIX}, represents 1969-12-31 23:59:59 @sc{utc}. Systems with
++64-bit signed @code{time_t} can represent all the times in the known
++lifetime of the universe. Modern @acronym{UNIX} systems also can give
++precise timecounters in the nanosecond or even attosecond range with
++a resolution often only a small multiply, like 10000, of the CPU
++frequency (on fast machines).
++
++@acronym{POSIX} conformant systems do not count leap seconds, and their
++kernel time is a seconds-since-epoch representation of @sc{utc} (which
++is a calendar time); the MirOS family of operating systems keeps time
++as seconds since the epoch, @sc{tai}, correctly counting leap seconds
++and providing conversion functions. Most MirBSD ports have already
++switched to a 64-bit signed @code{time_t}, some are using a
++@sc{djb}-compatible @code{tai_t} internally. The rest of this
++document has not been throughoutly checked for @sc{utc} vs @sc{tai}
++correctness. For @acronym{POSIX}ly broken systems, @samp{@@915148799}
++represents 1998-12-31 23:59:59 @sc{utc}, @samp{@@915148800} represents
++1999-01-01 00:00:00 @sc{utc}, and there is no way to represent the
++intervening leap second 1998-12-31 23:59:60 @sc{utc}. Also, calculation
++of time deltas is wrong, such as the age of the MirBSD founder is already
++off by more than 10 seconds in 2000.
+
+-In this example, the @option{--date} operand begins with its own
+-@env{TZ} setting, so the rest of that operand is processed according
+-to @samp{Europe/Paris} rules, treating the string @samp{2004-10-31
+-06:30} as if it were in Paris. However, since the output of the
+-@command{date} command is processed according to the overall time zone
+-rules, it uses New York time. (Paris was normally six hours ahead of
+-New York in 2004, but this example refers to a brief Halloween period
+-when the gap was five hours.)
+-
+-A @env{TZ} value is a rule that typically names a location in the
+-@uref{http://www.twinsun.com/tz/tz-link.htm, @samp{tz} database}.
+-A recent catalog of location names appears in the
+-@uref{http://twiki.org/cgi-bin/xtra/tzdate, TWiki Date and Time
+-Gateway}. A few non-@acronym{GNU} hosts require a colon before a
+-location name in a @env{TZ} setting, e.g.,
+-@samp{TZ=":America/New_York"}.
+-
+-The @samp{tz} database includes a wide variety of locations ranging
+-from @samp{Arctic/Longyearbyen} to @samp{Antarctica/South_Pole}, but
+-if you are at sea and have your own private time zone, or if you are
+-using a non-@acronym{GNU} host that does not support the @samp{tz}
+-database, you may need to use a @acronym{POSIX} rule instead. Simple
+-@acronym{POSIX} rules like @samp{UTC0} specify a time zone without
+-daylight saving time; other rules can specify simple daylight saving
+-regimes. @xref{TZ Variable,, Specifying the Time Zone with @code{TZ},
+-libc, The GNU C Library}.
+
+ @node Authors of get_date
+ @section Authors of @code{get_date}
+@@ -545,3 +518,10 @@
+ This chapter was originally produced by Fran@,{c}ois Pinard
+ (@email{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code,
+ and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).
++
++The version of this chapter you are reading comes with MirBSD @sc{gnu}
++@sc{cvs} 1.12 (also in Debian); it is based upon an older version of
++the @sc{gnu} coreutils manual which is @emph{not} yet GFDL-licenced.
++Appropriate changes for the in-tree @code{get_date} version of CVS
++have been applied.
++The MirBSD version is maintained by mirabilos @email{m@@mirbsd.org}.
+--- cvs-1.12.13+real.orig/doc/mkman.pl
++++ cvs-1.12.13+real/doc/mkman.pl
+@@ -1,10 +1,12 @@
+ #! @PERL@
++# $MirOS: src/gnu/usr.bin/cvs/doc/mkman.pl,v 1.7 2021/01/30 02:06:01 tg Exp $
+ #
+ # Generate a man page from sections of a Texinfo manual.
+ #
+ # Copyright 2004 The Free Software Foundation,
+ # Derek R. Price,
+ # & Ximbiot <http://ximbiot.com>
++# Copyright (c) 2004, 2010, 2021 mirabilos <m@mirbsd.org>
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -62,7 +64,7 @@
+ if $keyword =~ /^(strong|sc|code|file|samp)$/;
+ return "\\fI"
+ if $keyword =~ /^(emph|var|dfn)$/;
+- die "no handler for keyword \`$keyword', found at line $. of file \`$file'\n";
++ die "no handler for keyword '$keyword', found at line $. of file '$file'\n";
+ }
+
+
+@@ -72,8 +74,12 @@
+ {
+ my ($file, $parent, $keyword, $content) = @_;
+
+- return "see node \`$content\\(aq in the CVS manual"
+- if $keyword =~ /^(p?x)?ref$/;
++ return "node \\(aq$content\\(aq in the CVS manual"
++ if $keyword =~ /^ref$/;
++ return "See node \\(aq$content\\(aq in the CVS manual"
++ if $keyword =~ /^xref$/;
++ return "see node \\(aq$content\\(aq in the CVS manual"
++ if $keyword =~ /^pxref$/;
+ return "\\fP\\fP$content"
+ if $keyword =~ /^splitrcskeyword$/;
+
+@@ -91,11 +97,11 @@
+ for my $file (@ARGV)
+ {
+ my $fh = new IO::File "< $file"
+- or die "Failed to open file \`$file': $!";
++ or die "Failed to open file '$file': $!";
+
+ if ($file !~ /\.(texinfo|texi|txi)$/)
+ {
+- print stderr "Passing \`$file' through unprocessed.\n";
++ print stderr "Passing '$file' through unprocessed.\n";
+ # Just cat any file that doesn't look like a Texinfo source.
+ while (my $line = $fh->getline)
+ {
+@@ -104,7 +110,7 @@
+ next;
+ }
+
+- print stderr "Processing \`$file'.\n";
++ print stderr "Processing '$file'.\n";
+ $texi_num++;
+ my $gotone = 0;
+ my $inblank = 0;
+@@ -140,8 +146,11 @@
+ s/'/\\(aq/g;
+ s/`/\\`/g;
+ s/(?<!-)---(?!-)/\\(em/g;
+- s/\@bullet({}|\b)/\\(bu/g;
+- s/\@dots({}|\b)/\\&.../g;
++ s/\@bullet(\{}|\b)/\\(bu/g;
++ s/\@dots(\{}|\b)/\\&.../g;
++
++ # Hack for GNU groff with nroff -Tutf8
++ s/-/\\-/g;
+
+ # Examples should be indented and otherwise untouched
+ if (/^\@example$/)
+@@ -356,7 +365,7 @@
+ s/\@([{}])/$1/g;
+
+ # Verify we haven't left commands unprocessed.
+- die "Unprocessed command at line $. of file \`$file': "
++ die "Unprocessed command at line $. of file '$file': "
+ . ($1 ? "$1\n" : "<EOL>\n")
+ if /^(?>(?:[^\@]|\@\@)*)\@(\w+|.|$)/;
+
+--- cvs-1.12.13+real.orig/lib/Makefile.am
++++ cvs-1.12.13+real/lib/Makefile.am
+@@ -131,16 +131,11 @@
+ ## CVS test scripts for getdate.
+ TESTS += test-getdate.sh
+ MOSTLYCLEANFILES += getdate-expected getdate-got getdate.diff
+-DISTCLEANFILES += getdate.log
++DISTCLEANFILES += getdate.log getdate.log~
+ # Program required by test-getdate.sh for testing getdate.y.
+ check_PROGRAMS += getdate
+ getdate_SOURCES = \
+- error.c \
+- getdate.y
+-## This source file was added only for the getdate test program when compiled
+-## with GNULIB's error.c.
+-getdate_SOURCES += \
+- progname.c
++ getdate.c
+ getdate_CPPFLAGS = -DTEST
+ getdate_LDADD = \
+ $(noinst_LIBRARIES) \
+--- cvs-1.12.13+real.orig/lib/__fpending.h
++++ cvs-1.12.13+real/lib/__fpending.h
+@@ -1,7 +1,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+
+-#if HAVE_STDIO_EXT_H
++#if defined(HAVE_STDIO_EXT_H) && (HAVE_STDIO_EXT_H)
+ # include <stdio_ext.h>
+ #endif
+
+--- cvs-1.12.13+real.orig/lib/allocsa.h
++++ cvs-1.12.13+real/lib/allocsa.h
+@@ -19,7 +19,9 @@
+ #ifndef _ALLOCSA_H
+ #define _ALLOCSA_H
+
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+ #include <stddef.h>
+ #include <stdlib.h>
+
+--- cvs-1.12.13+real.orig/lib/chdir-long.c
++++ cvs-1.12.13+real/lib/chdir-long.c
+@@ -39,9 +39,7 @@
+ # define O_DIRECTORY 0
+ #endif
+
+-#ifndef PATH_MAX
+-# error "compile this file only if your system defines PATH_MAX"
+-#endif
++#ifdef PATH_MAX
+
+ struct cd_buf
+ {
+@@ -269,6 +267,8 @@
+ }
+ #endif
+
++#endif /* PATH_MAX */
++
+ /*
+ Local Variables:
+ compile-command: "gcc -DTEST_CHDIR=1 -DHAVE_CONFIG_H -I.. -g -O -W -Wall chdir-long.c libcoreutils.a"
+--- cvs-1.12.13+real.orig/lib/closeout.c
++++ cvs-1.12.13+real/lib/closeout.c
+@@ -59,7 +59,7 @@
+ when it tries to write out that buffered data. Thus, you would be
+ left with an incomplete output file and the offending program would
+ exit successfully. Even calling fflush is not always sufficient,
+- since some file systems (NFS and CODA) buffer written/flushed data
++ since some filesystems (NFS and CODA) buffer written/flushed data
+ until an actual close call.
+
+ Besides, it's wasteful to check the return value from every call
+--- cvs-1.12.13+real.orig/lib/error.c
++++ cvs-1.12.13+real/lib/error.c
+@@ -1,6 +1,7 @@
+ /* Error handler for noninteractive utilities
+ Copyright (C) 1990-1998, 2000-2003, 2004 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
++ Copyright (c) 2021 mirabilos <m@mirbsd.org>
++ This file is part of GNU CVS.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -133,7 +134,7 @@
+ }
+
+ static void
+-error_tail (int status, int errnum, const char *message, va_list args)
++warning_tail (int errnum, const char *message, va_list args)
+ {
+ #if _LIBC
+ if (_IO_fwide (stderr, 0) > 0)
+@@ -176,17 +177,15 @@
+ #endif
+ putc ('\n', stderr);
+ fflush (stderr);
+- if (status)
+- exit (status);
+ }
+
+-
++#if 0 /* disabled in CVS */
+ /* Print the program name and error message MESSAGE, which is a printf-style
+ format string with optional args.
+ If ERRNUM is nonzero, print its corresponding system error message.
+- Exit with status STATUS if it is nonzero. */
++*/
+ void
+-error (int status, int errnum, const char *message, ...)
++warning (int errnum, const char *message, ...)
+ {
+ va_list args;
+
+@@ -215,7 +214,7 @@
+ }
+
+ va_start (args, message);
+- error_tail (status, errnum, message, args);
++ warning_tail (errnum, message, args);
+
+ #ifdef _LIBC
+ _IO_funlockfile (stderr);
+@@ -224,13 +223,14 @@
+ # endif
+ #endif
+ }
++#endif
+
+ /* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+ int error_one_per_line;
+
+ void
+-error_at_line (int status, int errnum, const char *file_name,
++warning_at_line (int errnum, const char *file_name,
+ unsigned int line_number, const char *message, ...)
+ {
+ va_list args;
+@@ -285,7 +285,7 @@
+ }
+
+ va_start (args, message);
+- error_tail (status, errnum, message, args);
++ warning_tail (errnum, message, args);
+
+ #ifdef _LIBC
+ _IO_funlockfile (stderr);
+--- cvs-1.12.13+real.orig/lib/error.h
++++ cvs-1.12.13+real/lib/error.h
+@@ -1,6 +1,8 @@
++/* $MirOS: src/gnu/usr.bin/cvs/lib/error.h,v 1.2 2021/01/30 02:06:03 tg Exp $ */
+ /* Declaration for error-reporting function
+ Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
++ Copyright (c) 2021 mirabilos <m@mirbsd.org>
++ This file is part of GNU CVS.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -19,6 +21,9 @@
+ #ifndef _ERROR_H
+ #define _ERROR_H 1
+
++/* for exit(3) */
++#include <stdlib.h>
++
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later. */
+ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+@@ -40,12 +45,46 @@
+ if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+ If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
+
+-extern void error (int __status, int __errnum, const char *__format, ...)
+- __attribute__ ((__format__ (__printf__, 3, 4)));
++/* changed for CVS: if STATUS is nonzero, use EXIT_FAILURE */
++
++#if 0
++#define error(status,...) do { \
++ int CVS_error_st = (status); \
++ \
++ warning(__VA_ARGS__); \
++ if (CVS_error_st) \
++ exit(CVS_error_st); \
++} while (/* CONSTCOND */ 0)
++
++extern void warning (int __errnum, const char *__format, ...)
++ __attribute__ ((__format__ (__printf__, 2, 3)));
++
++#else /* ↑ lib │ ↓ CVS */
++
++#define error(...) do { \
++ if (warning(__VA_ARGS__)) \
++ exit(EXIT_FAILURE); \
++} while (/* CONSTCOND */ 0)
++
++extern int warning(int status, int errnum, const char *message, ...)
++ __attribute__((__format__(__printf__, 3, 4)));
++#endif
++
++#define error_at_line(status,...) do { \
++ int CVS_error_st = (status); \
++ \
++ warning_at_line(__VA_ARGS__); \
++ if (CVS_error_st) \
++ exit(CVS_error_st); \
++} while (/* CONSTCOND */ 0)
+
+-extern void error_at_line (int __status, int __errnum, const char *__fname,
++extern void warning_at_line (int __errnum, const char *__fname,
+ unsigned int __lineno, const char *__format, ...)
+- __attribute__ ((__format__ (__printf__, 5, 6)));
++ __attribute__ ((__format__ (__printf__, 4, 5)));
++
++/*XXX this calls for some trickery with __builtin_constant_p
++ to eliminate the if, if not the exit, but let’s just
++ rely on the optimiser for constant arguments; this API sucks */
+
+ /* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+--- cvs-1.12.13+real.orig/lib/filenamecat.c
++++ cvs-1.12.13+real/lib/filenamecat.c
+@@ -50,7 +50,7 @@
+ newly-allocated storage and return the result.
+ The resulting file name F is such that the commands "ls F" and "(cd
+ DIR; ls BASE)" refer to the same file, where BASE is ABASE with any
+- file system prefixes and leading separators removed.
++ filesystem prefixes and leading separators removed.
+ Arrange for a directory separator if necessary between DIR and BASE
+ in the result, removing any redundant separators.
+ In any case, if BASE_IN_RESULT is non-NULL, set
+--- cvs-1.12.13+real.orig/lib/fncase.c
++++ cvs-1.12.13+real/lib/fncase.c
+@@ -1,4 +1,4 @@
+-/* fncase.c -- CVS support for case insensitive file systems.
++/* fncase.c -- CVS support for case insensitive filesystems.
+ Jim Blandy <jimb@cyclic.com>
+
+ This file is part of GNU CVS.
+--- cvs-1.12.13+real.orig/lib/getcwd.c
++++ cvs-1.12.13+real/lib/getcwd.c
+@@ -151,7 +151,7 @@
+ size_t allocated = size;
+ size_t used;
+
+-#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD
++#if HAVE_PARTLY_WORKING_GETCWD
+ /* The system getcwd works, except it sometimes fails when it
+ shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If
+ AT_FDCWD is not defined, the algorithm below is O(N**2) and this
+@@ -204,6 +204,9 @@
+ ino_t dotino;
+ bool mount_point;
+ int parent_status;
++ size_t dirroom;
++ size_t namlen;
++ bool use_d_ino = true;
+
+ /* Look at the parent directory. */
+ #ifdef AT_FDCWD
+@@ -244,110 +247,131 @@
+ goto lose;
+ dotlist[dotlen++] = '/';
+ #endif
+- /* Clear errno to distinguish EOF from error if readdir returns
+- NULL. */
+- __set_errno (0);
+- while ((d = __readdir (dirstream)) != NULL)
++ for (;;)
+ {
++ /* Clear errno to distinguish EOF from error if readdir returns
++ NULL. */
++ __set_errno (0);
++ d = __readdir (dirstream);
++
++ /* When we've iterated through all directory entries without finding
++ one with a matching d_ino, rewind the stream and consider each
++ name again, but this time, using lstat. This is necessary in a
++ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where
++ .., ../.., ../../.., etc. all had the same device number, yet the
++ d_ino values for entries in / did not match those obtained
++ via lstat. */
++ if (d == NULL && errno == 0 && use_d_ino)
++ {
++ use_d_ino = false;
++ rewinddir (dirstream);
++ d = __readdir (dirstream);
++ }
++
++ if (d == NULL)
++ {
++ if (errno == 0)
++ /* EOF on dirstream, which can mean e.g., that the current
++ directory has been removed. */
++ __set_errno (ENOENT);
++ goto lose;
++ }
+ if (d->d_name[0] == '.' &&
+ (d->d_name[1] == '\0' ||
+ (d->d_name[1] == '.' && d->d_name[2] == '\0')))
+ continue;
+- if (MATCHING_INO (d, thisino) || mount_point)
++
++ if (use_d_ino)
+ {
+- int entry_status;
++ bool match = (MATCHING_INO (d, thisino) || mount_point);
++ if (! match)
++ continue;
++ }
++
++ {
++ int entry_status;
+ #ifdef AT_FDCWD
+- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
++ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
+ #else
+- /* Compute size needed for this file name, or for the file
+- name ".." in the same directory, whichever is larger.
+- Room for ".." might be needed the next time through
+- the outer loop. */
+- size_t name_alloc = _D_ALLOC_NAMLEN (d);
+- size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
+-
+- if (filesize < dotlen)
+- goto memory_exhausted;
++ /* Compute size needed for this file name, or for the file
++ name ".." in the same directory, whichever is larger.
++ Room for ".." might be needed the next time through
++ the outer loop. */
++ size_t name_alloc = _D_ALLOC_NAMLEN (d);
++ size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
++
++ if (filesize < dotlen)
++ goto memory_exhausted;
++
++ if (dotsize < filesize)
++ {
++ /* My, what a deep directory tree you have, Grandma. */
++ size_t newsize = MAX (filesize, dotsize * 2);
++ size_t i;
++ if (newsize < dotsize)
++ goto memory_exhausted;
++ if (dotlist != dots)
++ free (dotlist);
++ dotlist = malloc (newsize);
++ if (dotlist == NULL)
++ goto lose;
++ dotsize = newsize;
+
+- if (dotsize < filesize)
+- {
+- /* My, what a deep directory tree you have, Grandma. */
+- size_t newsize = MAX (filesize, dotsize * 2);
+- size_t i;
+- if (newsize < dotsize)
+- goto memory_exhausted;
+- if (dotlist != dots)
+- free (dotlist);
+- dotlist = malloc (newsize);
+- if (dotlist == NULL)
+- goto lose;
+- dotsize = newsize;
+-
+- i = 0;
+- do
+- {
+- dotlist[i++] = '.';
+- dotlist[i++] = '.';
+- dotlist[i++] = '/';
+- }
+- while (i < dotlen);
+- }
++ i = 0;
++ do
++ {
++ dotlist[i++] = '.';
++ dotlist[i++] = '.';
++ dotlist[i++] = '/';
++ }
++ while (i < dotlen);
++ }
+
+- strcpy (dotlist + dotlen, d->d_name);
+- entry_status = __lstat (dotlist, &st);
++ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d));
++ entry_status = __lstat (dotlist, &st);
+ #endif
+- /* We don't fail here if we cannot stat() a directory entry.
+- This can happen when (network) file systems fail. If this
+- entry is in fact the one we are looking for we will find
+- out soon as we reach the end of the directory without
+- having found anything. */
+- if (entry_status == 0 && S_ISDIR (st.st_mode)
+- && st.st_dev == thisdev && st.st_ino == thisino)
+- break;
+- }
++ /* We don't fail here if we cannot stat() a directory entry.
++ This can happen when (network) filesystems fail. If this
++ entry is in fact the one we are looking for we will find
++ out soon as we reach the end of the directory without
++ having found anything. */
++ if (entry_status == 0 && S_ISDIR (st.st_mode)
++ && st.st_dev == thisdev && st.st_ino == thisino)
++ break;
++ }
+ }
+- if (d == NULL)
+- {
+- if (errno == 0)
+- /* EOF on dirstream, which means that the current directory
+- has been removed. */
+- __set_errno (ENOENT);
+- goto lose;
+- }
+- else
+- {
+- size_t dirroom = dirp - dir;
+- size_t namlen = _D_EXACT_NAMLEN (d);
+
+- if (dirroom <= namlen)
++ dirroom = dirp - dir;
++ namlen = _D_EXACT_NAMLEN (d);
++
++ if (dirroom <= namlen)
++ {
++ if (size != 0)
+ {
+- if (size != 0)
+- {
+- __set_errno (ERANGE);
+- goto lose;
+- }
+- else
+- {
+- char *tmp;
+- size_t oldsize = allocated;
+-
+- allocated += MAX (allocated, namlen);
+- if (allocated < oldsize
+- || ! (tmp = realloc (dir, allocated)))
+- goto memory_exhausted;
+-
+- /* Move current contents up to the end of the buffer.
+- This is guaranteed to be non-overlapping. */
+- dirp = memcpy (tmp + allocated - (oldsize - dirroom),
+- tmp + dirroom,
+- oldsize - dirroom);
+- dir = tmp;
+- }
++ __set_errno (ERANGE);
++ goto lose;
++ }
++ else
++ {
++ char *tmp;
++ size_t oldsize = allocated;
++
++ allocated += MAX (allocated, namlen);
++ if (allocated < oldsize
++ || ! (tmp = realloc (dir, allocated)))
++ goto memory_exhausted;
++
++ /* Move current contents up to the end of the buffer.
++ This is guaranteed to be non-overlapping. */
++ dirp = memcpy (tmp + allocated - (oldsize - dirroom),
++ tmp + dirroom,
++ oldsize - dirroom);
++ dir = tmp;
+ }
+- dirp -= namlen;
+- memcpy (dirp, d->d_name, namlen);
+- *--dirp = '/';
+ }
++ dirp -= namlen;
++ memcpy (dirp, d->d_name, namlen);
++ *--dirp = '/';
+
+ thisdev = dotdev;
+ thisino = dotino;
+--- cvs-1.12.13+real.orig/lib/getdate.c
++++ cvs-1.12.13+real/lib/getdate.c
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -74,6 +87,7 @@
+ tUDECIMAL_NUMBER = 276
+ };
+ #endif
++/* Tokens. */
+ #define tAGO 258
+ #define tDST 259
+ #define tDAY 260
+@@ -102,8 +116,11 @@
+
+ /* Parse a string into an internal time stamp.
+
+- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software
+- Foundation, Inc.
++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
++ Free Software Foundation, Inc.
++
++ Copyright (c) 2005, 2006, 2007, 2010, 2016, 2017, 2021
++ mirabilos <m@mirbsd.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -139,6 +156,10 @@
+
+ #include "getdate.h"
+
++#ifdef USE_LIBBSD
++size_t strlcat(char *, const char *, size_t);
++#endif
++
+ /* There's no need to extend the stack, so there's no need to involve
+ alloca. */
+ #define YYSTACK_USE_ALLOCA 0
+@@ -166,10 +187,44 @@
+ #include <stdlib.h>
+ #include <string.h>
+
++#ifndef _STDLIB_H
++#define _STDLIB_H 1 /* GNU bison needs this */
++#endif
++
++#ifndef IN_RCS
+ #include "setenv.h"
+ #include "xalloc.h"
++#else /* IN_RCS */
++#include <unistd.h>
++
++#define HAVE_STRUCT_TM_TM_ZONE 1
++#define HAVE_TM_GMTOFF 1
++
++#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts))
+
+-#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
++static void *
++xmalloc(size_t s)
++{
++ static const char xmalloc_enomem[] = "memory exhausted\n";
++ void *x;
++
++ if ((x = malloc(s)) == NULL) {
++ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1);
++ exit(1);
++ }
++
++ return (x);
++}
++
++static void *
++xmemdup(void const *p, size_t s)
++{
++ return (memcpy(xmalloc(s), p, s));
++}
++#endif /* IN_RCS */
++
++#if (defined(STDC_HEADERS) && STDC_HEADERS) || \
++ (!defined(isascii) && !HAVE_ISASCII)
+ # define IN_CTYPE_DOMAIN(c) 1
+ #else
+ # define IN_CTYPE_DOMAIN(c) isascii (c)
+@@ -188,7 +243,8 @@
+ of `digit' even when the host does not conform to POSIX. */
+ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
+
+-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \
++ (defined(__STRICT_ANSI__) && __STRICT_ANSI__)
+ # define __attribute__(x)
+ #endif
+
+@@ -196,6 +252,15 @@
+ # define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+ #endif
+
++#ifndef __IDSTRING
++#define __IDSTRING(varname, string) \
++ static const char varname[] __attribute__((__used__)) = \
++ "@(""#)" #varname ": " string
++#endif
++
++__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.c,v 1.19 2021/01/30 02:30:17 tg Exp $");
++__IDSTRING(rcsid_bron, "$miros: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.14 2021/01/30 02:28:27 tg Exp $");
++
+ /* Shift A right by B bits portably, by dividing A by 2**B and
+ truncating towards minus infinity. A and B should be free of side
+ effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
+@@ -292,7 +357,7 @@
+
+ union YYSTYPE;
+ static int yylex (union YYSTYPE *, parser_control *);
+-static int yyerror (parser_control *, char *);
++static int yyerror (parser_control *, const char *);
+ static long int time_zone_hhmm (textint, long int);
+
+
+@@ -310,15 +375,22 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+-#line 209 "getdate.y"
+-typedef union YYSTYPE {
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
++#line 260 "getdate.y"
++{
+ long int intval;
+ textint textintval;
+ struct timespec timespec;
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 322 "getdate.c"
++}
++/* Line 193 of yacc.c. */
++#line 393 "getdate.c"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -329,56 +401,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 334 "getdate.c"
++/* Line 216 of yacc.c. */
++#line 406 "getdate.c"
++
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
++
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
++# endif
++#endif
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifndef YY_
++# if defined(YYENABLE_NLS) && YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -388,24 +575,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -423,39 +610,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
++ while (YYID (0))
+
+ #endif
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+-#endif
+-
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 12
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 88
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 26
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 19
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 78
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 96
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 276
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -490,7 +671,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned char yyprhs[] =
++static const yytype_uint8 yyprhs[] =
+ {
+ 0, 0, 3, 5, 7, 10, 11, 14, 16, 18,
+ 20, 22, 24, 26, 28, 31, 36, 42, 49, 57,
+@@ -502,8 +683,8 @@
+ 207, 209, 211, 213, 215, 217, 218, 221, 222
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 27, 0, -1, 28, -1, 29, -1, 22, 39, -1,
+ -1, 29, 30, -1, 31, -1, 32, -1, 33, -1,
+@@ -531,22 +712,22 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+- 0, 230, 230, 231, 235, 242, 244, 248, 250, 252,
+- 254, 256, 258, 260, 264, 272, 280, 290, 297, 309,
+- 314, 322, 324, 326, 328, 330, 335, 340, 345, 350,
+- 358, 363, 383, 390, 398, 406, 411, 417, 422, 431,
+- 441, 445, 447, 449, 451, 453, 455, 457, 459, 461,
+- 463, 465, 467, 469, 471, 473, 475, 477, 479, 481,
+- 483, 485, 489, 491, 493, 495, 497, 499, 503, 503,
+- 506, 507, 512, 513, 518, 556, 557, 563, 564
++ 0, 281, 281, 282, 286, 293, 295, 299, 301, 303,
++ 305, 307, 309, 311, 315, 323, 331, 341, 348, 360,
++ 365, 373, 375, 377, 379, 381, 386, 391, 396, 401,
++ 409, 414, 434, 441, 449, 457, 462, 468, 473, 482,
++ 492, 496, 498, 500, 502, 504, 506, 508, 510, 512,
++ 514, 516, 518, 520, 522, 524, 526, 528, 530, 532,
++ 534, 536, 540, 542, 544, 546, 548, 550, 554, 554,
++ 557, 558, 563, 564, 569, 607, 608, 614, 615
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT",
+@@ -563,7 +744,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -572,7 +753,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 26, 27, 27, 28, 29, 29, 30, 30, 30,
+ 30, 30, 30, 30, 31, 31, 31, 31, 31, 32,
+@@ -585,7 +766,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 1, 1, 2, 0, 2, 1, 1, 1,
+ 1, 1, 1, 1, 2, 4, 5, 6, 7, 1,
+@@ -600,7 +781,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 5, 0, 0, 2, 3, 71, 73, 70, 72, 4,
+ 68, 69, 1, 26, 49, 24, 52, 19, 55, 0,
+@@ -614,8 +795,8 @@
+ 16, 77, 31, 75, 17, 18
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const yysigned_char yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int8 yydefgoto[] =
+ {
+ -1, 2, 3, 4, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 9, 10, 11, 38, 77, 88
+@@ -624,7 +805,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -43
+-static const yysigned_char yypact[] =
++static const yytype_int8 yypact[] =
+ {
+ -18, 48, 9, -43, 19, -43, -43, -43, -43, -43,
+ -43, -43, -43, 32, -43, -43, -43, 54, -43, 28,
+@@ -639,7 +820,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const yysigned_char yypgoto[] =
++static const yytype_int8 yypgoto[] =
+ {
+ -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
+ -43, -43, 55, -43, -43, -11, -43, -42, -7
+@@ -650,7 +831,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -1
+-static const unsigned char yytable[] =
++static const yytype_uint8 yytable[] =
+ {
+ 59, 60, 50, 61, 1, 62, 63, 64, 65, 12,
+ 66, 67, 53, 68, 54, 85, 51, 55, 69, 56,
+@@ -663,7 +844,7 @@
+ 81, 82, 83, 84, 94, 92, 0, 0, 76
+ };
+
+-static const yysigned_char yycheck[] =
++static const yytype_int8 yycheck[] =
+ {
+ 5, 6, 4, 8, 22, 10, 11, 12, 13, 0,
+ 15, 16, 6, 18, 8, 10, 18, 11, 23, 13,
+@@ -678,7 +859,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 22, 27, 28, 29, 18, 19, 20, 21, 39,
+ 40, 41, 0, 5, 6, 7, 8, 9, 11, 12,
+@@ -692,22 +873,6 @@
+ 43, 41, 19, 18, 44, 43
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -733,30 +898,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror (pc, "syntax error: cannot back up");\
++ { \
++ yyerror (pc, YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if defined(YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -777,42 +975,99 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value, pc); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++ parser_control *pc;
++#endif
++{
++ if (!yyvaluep)
++ return;
++ YYUSE (pc);
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep, pc)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++ parser_control *pc;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -821,45 +1076,53 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule, parser_control *pc)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule, pc)
++ YYSTYPE *yyvsp;
+ int yyrule;
++ parser_control *pc;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ , pc);
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule, pc); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -874,13 +1137,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -890,45 +1149,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -938,70 +1199,194 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
++
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
+
+-
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
+
+- switch (yytype)
+- {
+- default:
+- break;
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
++
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_control *pc)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep, pc)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
++ parser_control *pc;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++ YYUSE (pc);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -1009,14 +1394,14 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
+-int yyparse ( parser_control *pc );
++#if defined __STDC__ || defined __cplusplus
++int yyparse (parser_control *pc);
+ #else
+ int yyparse ();
+ #endif
+@@ -1032,39 +1417,49 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+-yyparse ( parser_control *pc )
++yyparse (parser_control *pc)
+ #else
+ int
+ yyparse (pc)
+- parser_control *pc ;
++ parser_control *pc;
+ #endif
+ #endif
+ {
+- /* The lookahead symbol. */
++ /* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+ int yynerrs;
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -1075,18 +1470,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -1095,9 +1490,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -1121,8 +1516,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -1135,18 +1529,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1157,21 +1551,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1202,19 +1596,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1229,7 +1621,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1249,22 +1641,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1300,272 +1691,272 @@
+ switch (yyn)
+ {
+ case 4:
+-#line 236 "getdate.y"
++#line 287 "getdate.y"
+ {
+- pc->seconds = yyvsp[0].timespec;
++ pc->seconds = (yyvsp[(2) - (2)].timespec);
+ pc->timespec_seen = true;
+- }
++ ;}
+ break;
+
+ case 7:
+-#line 249 "getdate.y"
+- { pc->times_seen++; }
++#line 300 "getdate.y"
++ { pc->times_seen++; ;}
+ break;
+
+ case 8:
+-#line 251 "getdate.y"
+- { pc->local_zones_seen++; }
++#line 302 "getdate.y"
++ { pc->local_zones_seen++; ;}
+ break;
+
+ case 9:
+-#line 253 "getdate.y"
+- { pc->zones_seen++; }
++#line 304 "getdate.y"
++ { pc->zones_seen++; ;}
+ break;
+
+ case 10:
+-#line 255 "getdate.y"
+- { pc->dates_seen++; }
++#line 306 "getdate.y"
++ { pc->dates_seen++; ;}
+ break;
+
+ case 11:
+-#line 257 "getdate.y"
+- { pc->days_seen++; }
++#line 308 "getdate.y"
++ { pc->days_seen++; ;}
+ break;
+
+ case 12:
+-#line 259 "getdate.y"
+- { pc->rels_seen = true; }
++#line 310 "getdate.y"
++ { pc->rels_seen = true; ;}
+ break;
+
+ case 14:
+-#line 265 "getdate.y"
++#line 316 "getdate.y"
+ {
+- pc->hour = yyvsp[-1].textintval.value;
++ pc->hour = (yyvsp[(1) - (2)].textintval).value;
+ pc->minutes = 0;
+ pc->seconds.tv_sec = 0;
+ pc->seconds.tv_nsec = 0;
+- pc->meridian = yyvsp[0].intval;
+- }
++ pc->meridian = (yyvsp[(2) - (2)].intval);
++ ;}
+ break;
+
+ case 15:
+-#line 273 "getdate.y"
++#line 324 "getdate.y"
+ {
+- pc->hour = yyvsp[-3].textintval.value;
+- pc->minutes = yyvsp[-1].textintval.value;
++ pc->hour = (yyvsp[(1) - (4)].textintval).value;
++ pc->minutes = (yyvsp[(3) - (4)].textintval).value;
+ pc->seconds.tv_sec = 0;
+ pc->seconds.tv_nsec = 0;
+- pc->meridian = yyvsp[0].intval;
+- }
++ pc->meridian = (yyvsp[(4) - (4)].intval);
++ ;}
+ break;
+
+ case 16:
+-#line 281 "getdate.y"
++#line 332 "getdate.y"
+ {
+- pc->hour = yyvsp[-4].textintval.value;
+- pc->minutes = yyvsp[-2].textintval.value;
++ pc->hour = (yyvsp[(1) - (5)].textintval).value;
++ pc->minutes = (yyvsp[(3) - (5)].textintval).value;
+ pc->seconds.tv_sec = 0;
+ pc->seconds.tv_nsec = 0;
+ pc->meridian = MER24;
+ pc->zones_seen++;
+- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval);
+- }
++ pc->time_zone = time_zone_hhmm ((yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval));
++ ;}
+ break;
+
+ case 17:
+-#line 291 "getdate.y"
++#line 342 "getdate.y"
+ {
+- pc->hour = yyvsp[-5].textintval.value;
+- pc->minutes = yyvsp[-3].textintval.value;
+- pc->seconds = yyvsp[-1].timespec;
+- pc->meridian = yyvsp[0].intval;
+- }
++ pc->hour = (yyvsp[(1) - (6)].textintval).value;
++ pc->minutes = (yyvsp[(3) - (6)].textintval).value;
++ pc->seconds = (yyvsp[(5) - (6)].timespec);
++ pc->meridian = (yyvsp[(6) - (6)].intval);
++ ;}
+ break;
+
+ case 18:
+-#line 298 "getdate.y"
++#line 349 "getdate.y"
+ {
+- pc->hour = yyvsp[-6].textintval.value;
+- pc->minutes = yyvsp[-4].textintval.value;
+- pc->seconds = yyvsp[-2].timespec;
++ pc->hour = (yyvsp[(1) - (7)].textintval).value;
++ pc->minutes = (yyvsp[(3) - (7)].textintval).value;
++ pc->seconds = (yyvsp[(5) - (7)].timespec);
+ pc->meridian = MER24;
+ pc->zones_seen++;
+- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval);
+- }
++ pc->time_zone = time_zone_hhmm ((yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval));
++ ;}
+ break;
+
+ case 19:
+-#line 310 "getdate.y"
++#line 361 "getdate.y"
+ {
+- pc->local_isdst = yyvsp[0].intval;
+- pc->dsts_seen += (0 < yyvsp[0].intval);
+- }
++ pc->local_isdst = (yyvsp[(1) - (1)].intval);
++ pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval));
++ ;}
+ break;
+
+ case 20:
+-#line 315 "getdate.y"
++#line 366 "getdate.y"
+ {
+ pc->local_isdst = 1;
+- pc->dsts_seen += (0 < yyvsp[-1].intval) + 1;
+- }
++ pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1;
++ ;}
+ break;
+
+ case 21:
+-#line 323 "getdate.y"
+- { pc->time_zone = yyvsp[0].intval; }
++#line 374 "getdate.y"
++ { pc->time_zone = (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 22:
+-#line 325 "getdate.y"
+- { pc->time_zone = yyvsp[-1].intval; pc->rels_seen = true; }
++#line 376 "getdate.y"
++ { pc->time_zone = (yyvsp[(1) - (2)].intval); pc->rels_seen = true; ;}
+ break;
+
+ case 23:
+-#line 327 "getdate.y"
+- { pc->time_zone = yyvsp[-2].intval + time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval); }
++#line 378 "getdate.y"
++ { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm ((yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); ;}
+ break;
+
+ case 24:
+-#line 329 "getdate.y"
+- { pc->time_zone = yyvsp[0].intval + 60; }
++#line 380 "getdate.y"
++ { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; ;}
+ break;
+
+ case 25:
+-#line 331 "getdate.y"
+- { pc->time_zone = yyvsp[-1].intval + 60; }
++#line 382 "getdate.y"
++ { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; ;}
+ break;
+
+ case 26:
+-#line 336 "getdate.y"
++#line 387 "getdate.y"
+ {
+ pc->day_ordinal = 1;
+- pc->day_number = yyvsp[0].intval;
+- }
++ pc->day_number = (yyvsp[(1) - (1)].intval);
++ ;}
+ break;
+
+ case 27:
+-#line 341 "getdate.y"
++#line 392 "getdate.y"
+ {
+ pc->day_ordinal = 1;
+- pc->day_number = yyvsp[-1].intval;
+- }
++ pc->day_number = (yyvsp[(1) - (2)].intval);
++ ;}
+ break;
+
+ case 28:
+-#line 346 "getdate.y"
++#line 397 "getdate.y"
+ {
+- pc->day_ordinal = yyvsp[-1].intval;
+- pc->day_number = yyvsp[0].intval;
+- }
++ pc->day_ordinal = (yyvsp[(1) - (2)].intval);
++ pc->day_number = (yyvsp[(2) - (2)].intval);
++ ;}
+ break;
+
+ case 29:
+-#line 351 "getdate.y"
++#line 402 "getdate.y"
+ {
+- pc->day_ordinal = yyvsp[-1].textintval.value;
+- pc->day_number = yyvsp[0].intval;
+- }
++ pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value;
++ pc->day_number = (yyvsp[(2) - (2)].intval);
++ ;}
+ break;
+
+ case 30:
+-#line 359 "getdate.y"
++#line 410 "getdate.y"
+ {
+- pc->month = yyvsp[-2].textintval.value;
+- pc->day = yyvsp[0].textintval.value;
+- }
++ pc->month = (yyvsp[(1) - (3)].textintval).value;
++ pc->day = (yyvsp[(3) - (3)].textintval).value;
++ ;}
+ break;
+
+ case 31:
+-#line 364 "getdate.y"
++#line 415 "getdate.y"
+ {
+ /* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
+ otherwise as MM/DD/YY.
+ The goal in recognizing YYYY/MM/DD is solely to support legacy
+ machine-generated dates like those in an RCS log listing. If
+ you want portability, use the ISO 8601 format. */
+- if (4 <= yyvsp[-4].textintval.digits)
++ if (4 <= (yyvsp[(1) - (5)].textintval).digits)
+ {
+- pc->year = yyvsp[-4].textintval;
+- pc->month = yyvsp[-2].textintval.value;
+- pc->day = yyvsp[0].textintval.value;
++ pc->year = (yyvsp[(1) - (5)].textintval);
++ pc->month = (yyvsp[(3) - (5)].textintval).value;
++ pc->day = (yyvsp[(5) - (5)].textintval).value;
+ }
+ else
+ {
+- pc->month = yyvsp[-4].textintval.value;
+- pc->day = yyvsp[-2].textintval.value;
+- pc->year = yyvsp[0].textintval;
++ pc->month = (yyvsp[(1) - (5)].textintval).value;
++ pc->day = (yyvsp[(3) - (5)].textintval).value;
++ pc->year = (yyvsp[(5) - (5)].textintval);
+ }
+- }
++ ;}
+ break;
+
+ case 32:
+-#line 384 "getdate.y"
++#line 435 "getdate.y"
+ {
+ /* ISO 8601 format. YYYY-MM-DD. */
+- pc->year = yyvsp[-2].textintval;
+- pc->month = -yyvsp[-1].textintval.value;
+- pc->day = -yyvsp[0].textintval.value;
+- }
++ pc->year = (yyvsp[(1) - (3)].textintval);
++ pc->month = -(yyvsp[(2) - (3)].textintval).value;
++ pc->day = -(yyvsp[(3) - (3)].textintval).value;
++ ;}
+ break;
+
+ case 33:
+-#line 391 "getdate.y"
++#line 442 "getdate.y"
+ {
+ /* e.g. 17-JUN-1992. */
+- pc->day = yyvsp[-2].textintval.value;
+- pc->month = yyvsp[-1].intval;
+- pc->year.value = -yyvsp[0].textintval.value;
+- pc->year.digits = yyvsp[0].textintval.digits;
+- }
++ pc->day = (yyvsp[(1) - (3)].textintval).value;
++ pc->month = (yyvsp[(2) - (3)].intval);
++ pc->year.value = -(yyvsp[(3) - (3)].textintval).value;
++ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits;
++ ;}
+ break;
+
+ case 34:
+-#line 399 "getdate.y"
++#line 450 "getdate.y"
+ {
+ /* e.g. JUN-17-1992. */
+- pc->month = yyvsp[-2].intval;
+- pc->day = -yyvsp[-1].textintval.value;
+- pc->year.value = -yyvsp[0].textintval.value;
+- pc->year.digits = yyvsp[0].textintval.digits;
+- }
++ pc->month = (yyvsp[(1) - (3)].intval);
++ pc->day = -(yyvsp[(2) - (3)].textintval).value;
++ pc->year.value = -(yyvsp[(3) - (3)].textintval).value;
++ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits;
++ ;}
+ break;
+
+ case 35:
+-#line 407 "getdate.y"
++#line 458 "getdate.y"
+ {
+- pc->month = yyvsp[-1].intval;
+- pc->day = yyvsp[0].textintval.value;
+- }
++ pc->month = (yyvsp[(1) - (2)].intval);
++ pc->day = (yyvsp[(2) - (2)].textintval).value;
++ ;}
+ break;
+
+ case 36:
+-#line 412 "getdate.y"
++#line 463 "getdate.y"
+ {
+- pc->month = yyvsp[-3].intval;
+- pc->day = yyvsp[-2].textintval.value;
+- pc->year = yyvsp[0].textintval;
+- }
++ pc->month = (yyvsp[(1) - (4)].intval);
++ pc->day = (yyvsp[(2) - (4)].textintval).value;
++ pc->year = (yyvsp[(4) - (4)].textintval);
++ ;}
+ break;
+
+ case 37:
+-#line 418 "getdate.y"
++#line 469 "getdate.y"
+ {
+- pc->day = yyvsp[-1].textintval.value;
+- pc->month = yyvsp[0].intval;
+- }
++ pc->day = (yyvsp[(1) - (2)].textintval).value;
++ pc->month = (yyvsp[(2) - (2)].intval);
++ ;}
+ break;
+
+ case 38:
+-#line 423 "getdate.y"
++#line 474 "getdate.y"
+ {
+- pc->day = yyvsp[-2].textintval.value;
+- pc->month = yyvsp[-1].intval;
+- pc->year = yyvsp[0].textintval;
+- }
++ pc->day = (yyvsp[(1) - (3)].textintval).value;
++ pc->month = (yyvsp[(2) - (3)].intval);
++ pc->year = (yyvsp[(3) - (3)].textintval);
++ ;}
+ break;
+
+ case 39:
+-#line 432 "getdate.y"
++#line 483 "getdate.y"
+ {
+ pc->rel_ns = -pc->rel_ns;
+ pc->rel_seconds = -pc->rel_seconds;
+@@ -1574,216 +1965,215 @@
+ pc->rel_day = -pc->rel_day;
+ pc->rel_month = -pc->rel_month;
+ pc->rel_year = -pc->rel_year;
+- }
++ ;}
+ break;
+
+ case 41:
+-#line 446 "getdate.y"
+- { pc->rel_year += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 497 "getdate.y"
++ { pc->rel_year += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 42:
+-#line 448 "getdate.y"
+- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 499 "getdate.y"
++ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 43:
+-#line 450 "getdate.y"
+- { pc->rel_year += yyvsp[0].intval; }
++#line 501 "getdate.y"
++ { pc->rel_year += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 44:
+-#line 452 "getdate.y"
+- { pc->rel_month += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 503 "getdate.y"
++ { pc->rel_month += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 45:
+-#line 454 "getdate.y"
+- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 505 "getdate.y"
++ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 46:
+-#line 456 "getdate.y"
+- { pc->rel_month += yyvsp[0].intval; }
++#line 507 "getdate.y"
++ { pc->rel_month += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 47:
+-#line 458 "getdate.y"
+- { pc->rel_day += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 509 "getdate.y"
++ { pc->rel_day += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 48:
+-#line 460 "getdate.y"
+- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 511 "getdate.y"
++ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 49:
+-#line 462 "getdate.y"
+- { pc->rel_day += yyvsp[0].intval; }
++#line 513 "getdate.y"
++ { pc->rel_day += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 50:
+-#line 464 "getdate.y"
+- { pc->rel_hour += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 515 "getdate.y"
++ { pc->rel_hour += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 51:
+-#line 466 "getdate.y"
+- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 517 "getdate.y"
++ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 52:
+-#line 468 "getdate.y"
+- { pc->rel_hour += yyvsp[0].intval; }
++#line 519 "getdate.y"
++ { pc->rel_hour += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 53:
+-#line 470 "getdate.y"
+- { pc->rel_minutes += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 521 "getdate.y"
++ { pc->rel_minutes += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 54:
+-#line 472 "getdate.y"
+- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 523 "getdate.y"
++ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 55:
+-#line 474 "getdate.y"
+- { pc->rel_minutes += yyvsp[0].intval; }
++#line 525 "getdate.y"
++ { pc->rel_minutes += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 56:
+-#line 476 "getdate.y"
+- { pc->rel_seconds += yyvsp[-1].intval * yyvsp[0].intval; }
++#line 527 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 57:
+-#line 478 "getdate.y"
+- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 529 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 58:
+-#line 480 "getdate.y"
+- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; }
++#line 531 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 59:
+-#line 482 "getdate.y"
+- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; }
++#line 533 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 60:
+-#line 484 "getdate.y"
+- { pc->rel_seconds += yyvsp[0].intval; }
++#line 535 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+ case 62:
+-#line 490 "getdate.y"
+- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 541 "getdate.y"
++ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 63:
+-#line 492 "getdate.y"
+- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 543 "getdate.y"
++ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 64:
+-#line 494 "getdate.y"
+- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 545 "getdate.y"
++ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 65:
+-#line 496 "getdate.y"
+- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 547 "getdate.y"
++ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 66:
+-#line 498 "getdate.y"
+- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 549 "getdate.y"
++ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 67:
+-#line 500 "getdate.y"
+- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
++#line 551 "getdate.y"
++ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
+ break;
+
+ case 71:
+-#line 508 "getdate.y"
+- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; }
++#line 559 "getdate.y"
++ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;}
+ break;
+
+ case 73:
+-#line 514 "getdate.y"
+- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; }
++#line 565 "getdate.y"
++ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;}
+ break;
+
+ case 74:
+-#line 519 "getdate.y"
++#line 570 "getdate.y"
+ {
+ if (pc->dates_seen && ! pc->year.digits
+- && ! pc->rels_seen && (pc->times_seen || 2 < yyvsp[0].textintval.digits))
+- pc->year = yyvsp[0].textintval;
++ && ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits))
++ pc->year = (yyvsp[(1) - (1)].textintval);
+ else
+ {
+- if (4 < yyvsp[0].textintval.digits)
++ if (4 < (yyvsp[(1) - (1)].textintval).digits)
+ {
+ pc->dates_seen++;
+- pc->day = yyvsp[0].textintval.value % 100;
+- pc->month = (yyvsp[0].textintval.value / 100) % 100;
+- pc->year.value = yyvsp[0].textintval.value / 10000;
+- pc->year.digits = yyvsp[0].textintval.digits - 4;
++ pc->day = (yyvsp[(1) - (1)].textintval).value % 100;
++ pc->month = ((yyvsp[(1) - (1)].textintval).value / 100) % 100;
++ pc->year.value = (yyvsp[(1) - (1)].textintval).value / 10000;
++ pc->year.digits = (yyvsp[(1) - (1)].textintval).digits - 4;
+ }
+ else
+ {
+ pc->times_seen++;
+- if (yyvsp[0].textintval.digits <= 2)
++ if ((yyvsp[(1) - (1)].textintval).digits <= 2)
+ {
+- pc->hour = yyvsp[0].textintval.value;
++ pc->hour = (yyvsp[(1) - (1)].textintval).value;
+ pc->minutes = 0;
+ }
+ else
+ {
+- pc->hour = yyvsp[0].textintval.value / 100;
+- pc->minutes = yyvsp[0].textintval.value % 100;
++ pc->hour = (yyvsp[(1) - (1)].textintval).value / 100;
++ pc->minutes = (yyvsp[(1) - (1)].textintval).value % 100;
+ }
+ pc->seconds.tv_sec = 0;
+ pc->seconds.tv_nsec = 0;
+ pc->meridian = MER24;
+ }
+ }
+- }
++ ;}
+ break;
+
+ case 75:
+-#line 556 "getdate.y"
+- { yyval.intval = -1; }
++#line 607 "getdate.y"
++ { (yyval.intval) = -1; ;}
+ break;
+
+ case 76:
+-#line 558 "getdate.y"
+- { yyval.intval = yyvsp[0].textintval.value; }
++#line 609 "getdate.y"
++ { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; ;}
+ break;
+
+ case 77:
+-#line 563 "getdate.y"
+- { yyval.intval = MER24; }
++#line 614 "getdate.y"
++ { (yyval.intval) = MER24; ;}
+ break;
+
+ case 78:
+-#line 565 "getdate.y"
+- { yyval.intval = yyvsp[0].intval; }
++#line 616 "getdate.y"
++ { (yyval.intval) = (yyvsp[(1) - (1)].intval); ;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 2171 "getdate.c"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1782 "getdate.c"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1812,99 +2202,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (pc, YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (pc, yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror (pc, "syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror (pc, "syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (pc, yymsg);
++ }
++ else
++ {
++ yyerror (pc, YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval, pc);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1914,15 +2270,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1951,9 +2309,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp, pc);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1961,11 +2320,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1985,25 +2345,43 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror (pc, "parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (pc, YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval, pc);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp, pc);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+-#line 568 "getdate.y"
++#line 619 "getdate.y"
+
+
+ static table const meridian_table[] =
+@@ -2520,7 +2898,7 @@
+
+ /* Do nothing if the parser reports an error. */
+ static int
+-yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED)
++yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED)
+ {
+ return 0;
+ }
+@@ -2563,9 +2941,9 @@
+ if (tz)
+ {
+ size_t tzsize = strlen (tz) + 1;
+- tz = (tzsize <= TZBUFSIZE
++ tz = (tzsize == 1 ? NULL : (tzsize <= TZBUFSIZE
+ ? memcpy (tzbuf, tz, tzsize)
+- : xmemdup (tz, tzsize));
++ : xmemdup (tz, tzsize)));
+ }
+ return tz;
+ }
+@@ -2793,7 +3171,8 @@
+ + sizeof pc.time_zone * CHAR_BIT / 3];
+ if (!tz_was_altered)
+ tz0 = get_tz (tz0buf);
+- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
++ snprintf(tz1buf, sizeof(tz1buf),
++ "XXX%s%ld:%02d", "-" + (time_zone < 0),
+ abs_time_zone_hour, abs_time_zone_min);
+ if (setenv ("TZ", tz1buf, 1) != 0)
+ goto fail;
+@@ -2891,46 +3270,67 @@
+ ok = false;
+ done:
+ if (tz_was_altered)
+- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0;
++ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0;
+ if (tz0 != tz0buf)
+ free (tz0);
+ return ok;
+ }
+
+ #if TEST
++ATTRIBUTE_NORETURN void
++xalloc_die(void)
++{
++ fprintf(stderr, "memory exhausted\n");
++ exit(EXIT_FAILURE);
++}
+
+ int
+-main (int ac, char **av)
++main(int argc, char **argv)
+ {
+ char buff[BUFSIZ];
++ int cmd = 0;
+
+- printf ("Enter date, or blank line to exit.\n\t> ");
++ if (argc > 1) {
++ int i = 1;
++ buff[0] = '\0';
++ while (i < argc) {
++ if (i > 1)
++ strlcat(buff, " ", BUFSIZ);
++ strlcat(buff, argv[i++], BUFSIZ);
++ }
++ cmd++;
++ goto once;
++ }
++
++ printf("Enter date, or blank line to exit.\n> ");
+ fflush (stdout);
+
+ buff[BUFSIZ - 1] = '\0';
+- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
++ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] &&
++ buff[0] != '\r' && buff[0] != '\n')
+ {
+ struct timespec d;
+ struct tm const *tm;
++ once:
+ if (! get_date (&d, buff, NULL))
+ printf ("Bad format - couldn't convert.\n");
+ else if (! (tm = localtime (&d.tv_sec)))
+ {
+- long int sec = d.tv_sec;
+- printf ("localtime (%ld) failed\n", sec);
++ printf ("localtime (%lld) failed\n", (long long)d.tv_sec);
+ }
+ else
+ {
+ int ns = d.tv_nsec;
+- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
+- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday,
++ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
++ (long long)d.tv_sec, (long)tm->tm_year + 1900,
++ tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec, ns);
+ }
+- printf ("\t> ");
++ if (cmd)
++ return 0;
++ printf ("> ");
+ fflush (stdout);
+ }
+ return 0;
+ }
+ #endif /* TEST */
+-
+-
+--- cvs-1.12.13+real.orig/lib/getdate.h
++++ cvs-1.12.13+real/lib/getdate.h
+@@ -1,6 +1,9 @@
++/* $MirOS: src/gnu/usr.bin/cvs/lib/getdate.h,v 1.7 2016/10/22 20:15:03 tg Exp $ */
++
+ /* Parse a string into an internal time stamp.
+
+- Copyright (C) 1995, 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -16,7 +19,17 @@
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
++#ifndef GETDATE_H
++#define GETDATE_H
++
+ #include <stdbool.h>
++#ifndef IN_RCS
+ #include "timespec.h"
++#else
++#include <sys/time.h>
++#include <time.h>
++#endif
+
+ bool get_date (struct timespec *, char const *, struct timespec const *);
++
++#endif /* GETDATE_H */
+--- cvs-1.12.13+real.orig/lib/getdate.y
++++ cvs-1.12.13+real/lib/getdate.y
+@@ -1,8 +1,11 @@
+ %{
+ /* Parse a string into an internal time stamp.
+
+- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software
+- Foundation, Inc.
++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
++ Free Software Foundation, Inc.
++
++ Copyright (c) 2005, 2006, 2007, 2010, 2016, 2017, 2021
++ mirabilos <m@mirbsd.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -38,6 +41,10 @@
+
+ #include "getdate.h"
+
++#ifdef USE_LIBBSD
++size_t strlcat(char *, const char *, size_t);
++#endif
++
+ /* There's no need to extend the stack, so there's no need to involve
+ alloca. */
+ #define YYSTACK_USE_ALLOCA 0
+@@ -65,10 +72,44 @@
+ #include <stdlib.h>
+ #include <string.h>
+
++#ifndef _STDLIB_H
++#define _STDLIB_H 1 /* GNU bison needs this */
++#endif
++
++#ifndef IN_RCS
+ #include "setenv.h"
+ #include "xalloc.h"
++#else /* IN_RCS */
++#include <unistd.h>
++
++#define HAVE_STRUCT_TM_TM_ZONE 1
++#define HAVE_TM_GMTOFF 1
++
++#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts))
++
++static void *
++xmalloc(size_t s)
++{
++ static const char xmalloc_enomem[] = "memory exhausted\n";
++ void *x;
++
++ if ((x = malloc(s)) == NULL) {
++ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1);
++ exit(1);
++ }
++
++ return (x);
++}
++
++static void *
++xmemdup(void const *p, size_t s)
++{
++ return (memcpy(xmalloc(s), p, s));
++}
++#endif /* IN_RCS */
+
+-#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
++#if (defined(STDC_HEADERS) && STDC_HEADERS) || \
++ (!defined(isascii) && !HAVE_ISASCII)
+ # define IN_CTYPE_DOMAIN(c) 1
+ #else
+ # define IN_CTYPE_DOMAIN(c) isascii (c)
+@@ -87,7 +128,8 @@
+ of `digit' even when the host does not conform to POSIX. */
+ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
+
+-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \
++ (defined(__STRICT_ANSI__) && __STRICT_ANSI__)
+ # define __attribute__(x)
+ #endif
+
+@@ -95,6 +137,15 @@
+ # define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+ #endif
+
++#ifndef __IDSTRING
++#define __IDSTRING(varname, string) \
++ static const char varname[] __attribute__((__used__)) = \
++ "@(""#)" #varname ": " string
++#endif
++
++__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.14 2021/01/30 02:28:27 tg Exp $");
++/* placeholder line for __IDSTRING(rcsid_bron, "$miros: ..."); so that cpp #line directives work */
++
+ /* Shift A right by B bits portably, by dividing A by 2**B and
+ truncating towards minus infinity. A and B should be free of side
+ effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
+@@ -191,7 +242,7 @@
+
+ union YYSTYPE;
+ static int yylex (union YYSTYPE *, parser_control *);
+-static int yyerror (parser_control *, char *);
++static int yyerror (parser_control *, const char *);
+ static long int time_zone_hhmm (textint, long int);
+
+ %}
+@@ -1081,7 +1132,7 @@
+
+ /* Do nothing if the parser reports an error. */
+ static int
+-yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED)
++yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED)
+ {
+ return 0;
+ }
+@@ -1124,9 +1175,9 @@
+ if (tz)
+ {
+ size_t tzsize = strlen (tz) + 1;
+- tz = (tzsize <= TZBUFSIZE
++ tz = (tzsize == 1 ? NULL : (tzsize <= TZBUFSIZE
+ ? memcpy (tzbuf, tz, tzsize)
+- : xmemdup (tz, tzsize));
++ : xmemdup (tz, tzsize)));
+ }
+ return tz;
+ }
+@@ -1354,7 +1405,8 @@
+ + sizeof pc.time_zone * CHAR_BIT / 3];
+ if (!tz_was_altered)
+ tz0 = get_tz (tz0buf);
+- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
++ snprintf(tz1buf, sizeof(tz1buf),
++ "XXX%s%ld:%02d", "-" + (time_zone < 0),
+ abs_time_zone_hour, abs_time_zone_min);
+ if (setenv ("TZ", tz1buf, 1) != 0)
+ goto fail;
+@@ -1452,42 +1504,65 @@
+ ok = false;
+ done:
+ if (tz_was_altered)
+- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0;
++ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0;
+ if (tz0 != tz0buf)
+ free (tz0);
+ return ok;
+ }
+
+ #if TEST
++ATTRIBUTE_NORETURN void
++xalloc_die(void)
++{
++ fprintf(stderr, "memory exhausted\n");
++ exit(EXIT_FAILURE);
++}
+
+ int
+-main (int ac, char **av)
++main(int argc, char **argv)
+ {
+ char buff[BUFSIZ];
++ int cmd = 0;
++
++ if (argc > 1) {
++ int i = 1;
++ buff[0] = '\0';
++ while (i < argc) {
++ if (i > 1)
++ strlcat(buff, " ", BUFSIZ);
++ strlcat(buff, argv[i++], BUFSIZ);
++ }
++ cmd++;
++ goto once;
++ }
+
+- printf ("Enter date, or blank line to exit.\n\t> ");
++ printf("Enter date, or blank line to exit.\n> ");
+ fflush (stdout);
+
+ buff[BUFSIZ - 1] = '\0';
+- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
++ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] &&
++ buff[0] != '\r' && buff[0] != '\n')
+ {
+ struct timespec d;
+ struct tm const *tm;
++ once:
+ if (! get_date (&d, buff, NULL))
+ printf ("Bad format - couldn't convert.\n");
+ else if (! (tm = localtime (&d.tv_sec)))
+ {
+- long int sec = d.tv_sec;
+- printf ("localtime (%ld) failed\n", sec);
++ printf ("localtime (%lld) failed\n", (long long)d.tv_sec);
+ }
+ else
+ {
+ int ns = d.tv_nsec;
+- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
+- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday,
++ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
++ (long long)d.tv_sec, (long)tm->tm_year + 1900,
++ tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec, ns);
+ }
+- printf ("\t> ");
++ if (cmd)
++ return 0;
++ printf ("> ");
+ fflush (stdout);
+ }
+ return 0;
+--- cvs-1.12.13+real.orig/lib/getdelim.c
++++ cvs-1.12.13+real/lib/getdelim.c
+@@ -48,7 +48,6 @@
+ {
+ int result = 0;
+ ssize_t cur_len = 0;
+- ssize_t len;
+
+ if (lineptr == NULL || n == NULL || fp == NULL)
+ {
+@@ -71,7 +70,6 @@
+
+ for (;;)
+ {
+- char *t;
+ int i;
+
+ i = getc (fp);
+@@ -82,12 +80,12 @@
+ }
+
+ /* Make enough space for len+1 (for final NUL) bytes. */
+- if (cur_len + 1 >= *n)
++ if ((size_t)cur_len + 1U >= *n)
+ {
+ size_t needed = 2 * (cur_len + 1) + 1; /* Be generous. */
+ char *new_lineptr;
+
+- if (needed < cur_len)
++ if (needed < (size_t)cur_len)
+ {
+ result = -1;
+ goto unlock_return;
+--- cvs-1.12.13+real.orig/lib/gettext.h
++++ cvs-1.12.13+real/lib/gettext.h
+@@ -19,7 +19,7 @@
+ #define _LIBGETTEXT_H 1
+
+ /* NLS can be disabled through the configure --disable-nls option. */
+-#if ENABLE_NLS
++#if defined(ENABLE_NLS) && (ENABLE_NLS)
+
+ /* Get declarations of GNU message catalog functions. */
+ # include <libintl.h>
+--- cvs-1.12.13+real.orig/lib/glob.c
++++ cvs-1.12.13+real/lib/glob.c
+@@ -189,7 +189,7 @@
+ # define GET_LOGIN_NAME_MAX() (-1)
+ #endif
+
+-static const char *next_brace_sub (const char *begin, int flags) __THROW;
++static const char *next_brace_sub (const char *begin, int flags) __THROWNL;
+
+ #endif /* !defined _LIBC || !defined GLOB_ONLY_P */
+
+@@ -198,8 +198,8 @@
+ glob_t *pglob);
+
+ #if !defined _LIBC || !defined GLOB_ONLY_P
+-static int prefix_array (const char *prefix, char **array, size_t n) __THROW;
+-static int collated_compare (const void *, const void *) __THROW;
++static int prefix_array (const char *prefix, char **array, size_t n) __THROWNL;
++static int collated_compare (const void *, const void *) __THROWNL;
+
+
+ /* Find the end of the sub-pattern in a brace expression. */
+--- cvs-1.12.13+real.orig/lib/glob_.h
++++ cvs-1.12.13+real/lib/glob_.h
+@@ -34,6 +34,9 @@
+ #ifndef __THROW
+ # define __THROW
+ #endif
++#ifndef __THROWNL
++# define __THROWNL
++#endif
+
+ #ifndef __size_t
+ # define __size_t size_t
+--- cvs-1.12.13+real.orig/lib/minmax.h
++++ cvs-1.12.13+real/lib/minmax.h
+@@ -28,7 +28,7 @@
+ included after this file. Likewise for <sys/param.h>.
+ If more than one of these system headers define MIN and MAX, pick just
+ one of the headers (because the definitions most likely are the same). */
+-#if HAVE_MINMAX_IN_LIMITS_H
++#if defined(HAVE_MINMAX_IN_LIMITS_H) && (HAVE_MINMAX_IN_LIMITS_H)
+ # include <limits.h>
+ #elif HAVE_MINMAX_IN_SYS_PARAM_H
+ # include <sys/param.h>
+--- cvs-1.12.13+real.orig/lib/pagealign_alloc.c
++++ cvs-1.12.13+real/lib/pagealign_alloc.c
+@@ -44,6 +44,10 @@
+ #include "xalloc.h"
+ #include "gettext.h"
+
++#if HAVE_MMAP && !defined(HAVE_MAP_ANONYMOUS)
++#include <stdio.h>
++#endif
++
+ #define _(str) gettext (str)
+
+ #if HAVE_MMAP
+@@ -132,6 +136,7 @@
+ const int fd = -1;
+ const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+ # else /* !HAVE_MAP_ANONYMOUS */
++ static int beenhere = 0;
+ static int fd = -1; /* Only open /dev/zero once in order to avoid limiting
+ the amount of memory we may allocate based on the
+ number of open file descriptors. */
+@@ -140,7 +145,20 @@
+ {
+ fd = open ("/dev/zero", O_RDONLY, 0666);
+ if (fd < 0)
+- error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read"));
++ {
++ if (!beenhere)
++ {
++ beenhere = 1;
++ error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read"));
++ }
++ else
++ {
++ fprintf (stderr, "Fatal in pagealign: %s\n",
++ _("Failed to open /dev/zero for read"));
++ fflush (stderr);
++ _exit (EXIT_FAILURE);
++ }
++ }
+ }
+ # endif /* HAVE_MAP_ANONYMOUS */
+ ret = mmap (NULL, size, PROT_READ | PROT_WRITE, flags, fd, 0);
+--- cvs-1.12.13+real.orig/lib/regcomp.c
++++ cvs-1.12.13+real/lib/regcomp.c
+@@ -1652,8 +1652,6 @@
+ && dfa->edests[node].nelem
+ && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
+ {
+- Idx org_node, cur_node;
+- org_node = cur_node = node;
+ err = duplicate_node_closure (dfa, node, node, node, constraint);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+--- cvs-1.12.13+real.orig/lib/regex_internal.c
++++ cvs-1.12.13+real/lib/regex_internal.c
+@@ -629,7 +629,7 @@
+
+ if (pstr->is_utf8)
+ {
+- const unsigned char *raw, *p, *q, *end;
++ const unsigned char *raw, *p, *end;
+
+ /* Special case UTF-8. Multi-byte chars start with any
+ byte other than 0x80 - 0xbf. */
+@@ -641,17 +641,8 @@
+ mbstate_t cur_state;
+ wchar_t wc2;
+ Idx mlen = raw + pstr->len - p;
+- unsigned char buf[6];
+ size_t mbclen;
+
+- q = p;
+- if (BE (pstr->trans != NULL, 0))
+- {
+- int i = mlen < 6 ? mlen : 6;
+- while (--i >= 0)
+- buf[i] = pstr->trans[p[i]];
+- q = buf;
+- }
+ /* XXX Don't use mbrtowc, we know which conversion
+ to use (UTF-8 -> UCS4). */
+ memset (&cur_state, 0, sizeof (cur_state));
+--- cvs-1.12.13+real.orig/lib/regex_internal.h
++++ cvs-1.12.13+real/lib/regex_internal.h
+@@ -451,7 +451,9 @@
+ #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
+ #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
+
++#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
++#endif
+
+ #ifndef _LIBC
+ # if HAVE_ALLOCA
+--- cvs-1.12.13+real.orig/lib/strftime.c
++++ cvs-1.12.13+real/lib/strftime.c
+@@ -1,5 +1,6 @@
+ /* Copyright (C) 1991-1999, 2000, 2001, 2003, 2004, 2005 Free Software
+ Foundation, Inc.
++ Copyright (c) 2021 mirabilos <m@mirbsd.org>
+
+ NOTE: The canonical source of this file is maintained with the GNU C Library.
+ Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+@@ -1222,8 +1223,7 @@
+ }
+ if (modifier == L_('O'))
+ goto bad_format;
+- else
+- DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
++ DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
+ tp->tm_year + (unsigned int) TM_YEAR_BASE);
+
+ case L_('y'):
+--- cvs-1.12.13+real.orig/lib/sunos57-select.c
++++ cvs-1.12.13+real/lib/sunos57-select.c
+@@ -40,6 +40,11 @@
+ #include <sys/stat.h>
+ #include <errno.h>
+
++#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
++# include <string.h>
++#else
++# include <strings.h>
++#endif
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif /* HAVE_UNISTD_H */
+--- cvs-1.12.13+real.orig/lib/system.h
++++ cvs-1.12.13+real/lib/system.h
+@@ -304,7 +304,7 @@
+
+
+
+-/* Some file systems are case-insensitive. If FOLD_FN_CHAR is
++/* Some filesystems are case-insensitive. If FOLD_FN_CHAR is
+ #defined, it maps the character C onto its "canonical" form. In a
+ case-insensitive system, it would map all alphanumeric characters
+ to lower case. Under Windows NT, / and \ are both path component
+@@ -315,7 +315,7 @@
+ # define fncmp strcmp
+ #endif
+
+-/* Different file systems can have different naming patterns which designate
++/* Different filesystems can have different naming patterns which designate
+ * a path as absolute.
+ */
+ #ifndef ISABSOLUTE
+--- cvs-1.12.13+real.orig/lib/tempname.c
++++ cvs-1.12.13+real/lib/tempname.c
+@@ -148,7 +148,7 @@
+ if (try_tmpdir)
+ {
+ d = __secure_getenv ("TMPDIR");
+- if (d != NULL && direxists (d))
++ if (d != NULL && *d && direxists (d))
+ dir = d;
+ else if (dir != NULL && direxists (dir))
+ /* nothing */ ;
+--- cvs-1.12.13+real.orig/lib/test-getdate.sh
++++ cvs-1.12.13+real/lib/test-getdate.sh
+@@ -1,4 +1,5 @@
+ #! /bin/sh
++# $MirOS: src/gnu/usr.bin/cvs/lib/test-getdate.sh,v 1.2 2016/10/22 15:34:32 tg Exp $
+
+ # Test that a getdate executable meets its specification.
+ #
+@@ -19,6 +20,11 @@
+ # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+
++# as this uses POSIX behaviour and does not count leap seconds...
++if test -n "$GETDATE_LD_PRELOAD"; then
++ LD_PRELOAD=$GETDATE_LD_PRELOAD
++ export LD_PRELOAD
++fi
+
+ ###
+ ### Globals
+@@ -113,10 +119,9 @@
+ NTZ=`TZ=$1 date +%Z`
+ if test "$NTZ" = "$UTZ" || test "$NTZ" = "$1"; then
+ skipreason="$1 is not a recognized timezone on this system"
+- return `false`
+- else
+- return `:`
++ return 1
+ fi
++ :
+ }
+
+
+@@ -184,22 +189,22 @@
+
+ cat >getdate-expected <<EOF
+ Enter date, or blank line to exit.
+- > Bad format - couldn't convert.
+- > Bad format - couldn't convert.
+- > 1972-12-05 00:00:00.000000000
+- > 1974-03-29 00:00:00.000000000
+- > 1996-05-12 13:57:45.000000000
+- > 2012-05-12 00:00:00.000000000
+- > 1996-05-12 00:00:00.000000000
+- > Bad format - couldn't convert.
+- > Bad format - couldn't convert.
+- > 1970-01-01 02:00:00.000000000
+- > Bad format - couldn't convert.
+- > 1969-12-31 22:00:00.000000000
+- > Bad format - couldn't convert.
+- > 1970-01-01 06:00:00.000000000
+- > 1997-01-12 00:00:00.000000000
+- >
++> Bad format - couldn't convert.
++> Bad format - couldn't convert.
++> 92361600 = 1972-12-05 00:00:00.000000000
++> 133747200 = 1974-03-29 00:00:00.000000000
++> 831909465 = 1996-05-12 13:57:45.000000000
++> 1336780800 = 2012-05-12 00:00:00.000000000
++> 831859200 = 1996-05-12 00:00:00.000000000
++> Bad format - couldn't convert.
++> Bad format - couldn't convert.
++> 7200 = 1970-01-01 02:00:00.000000000
++> Bad format - couldn't convert.
++> -7200 = 1969-12-31 22:00:00.000000000
++> Bad format - couldn't convert.
++> 21600 = 1970-01-01 06:00:00.000000000
++> 853027200 = 1997-01-12 00:00:00.000000000
++>
+ EOF
+
+ ./getdate >getdate-got <<EOF
+@@ -235,22 +240,22 @@
+ if valid_timezone $TZ; then
+ cat >getdate-expected <<EOF
+ Enter date, or blank line to exit.
+- > 2005-03-01 00:00:00.000000000
+- > 2005-03-27 00:00:00.000000000
+- > 2005-03-28 01:00:00.000000000
+- > 2005-03-28 01:00:00.000000000
+- > 2005-03-29 01:00:00.000000000
+- > 2005-03-29 01:00:00.000000000
+- > 2005-03-30 01:00:00.000000000
+- > 2005-03-30 01:00:00.000000000
+- > 2005-03-31 01:00:00.000000000
+- > 2005-03-31 01:00:00.000000000
+- > 2005-04-01 01:00:00.000000000
+- > 2005-04-01 01:00:00.000000000
+- > 2005-04-10 01:00:00.000000000
+- > 2005-04-10 01:00:00.000000000
+- > 2005-04-01 00:00:00.000000000
+- >
++> 1109635200 = 2005-03-01 00:00:00.000000000
++> 1111881600 = 2005-03-27 00:00:00.000000000
++> 1111968000 = 2005-03-28 01:00:00.000000000
++> 1111968000 = 2005-03-28 01:00:00.000000000
++> 1112054400 = 2005-03-29 01:00:00.000000000
++> 1112054400 = 2005-03-29 01:00:00.000000000
++> 1112140800 = 2005-03-30 01:00:00.000000000
++> 1112140800 = 2005-03-30 01:00:00.000000000
++> 1112227200 = 2005-03-31 01:00:00.000000000
++> 1112227200 = 2005-03-31 01:00:00.000000000
++> 1112313600 = 2005-04-01 01:00:00.000000000
++> 1112313600 = 2005-04-01 01:00:00.000000000
++> 1113091200 = 2005-04-10 01:00:00.000000000
++> 1113091200 = 2005-04-10 01:00:00.000000000
++> 1112310000 = 2005-04-01 00:00:00.000000000
++>
+ EOF
+
+ ./getdate >getdate-got <<EOF
+@@ -297,20 +302,20 @@
+ if valid_timezone $TZ; then
+ cat >getdate-expected <<EOF
+ Enter date, or blank line to exit.
+- > 2005-03-01 00:00:00.000000000
+- > 2005-02-28 18:00:00.000000000
+- > 2005-04-01 00:00:00.000000000
+- > Bad format - couldn't convert.
+- > 2005-04-30 19:00:00.000000000
+- > 2005-04-30 20:00:00.000000000
+- > 2005-05-01 00:00:00.000000000
+- > 2005-04-30 20:00:00.000000000
+- > Bad format - couldn't convert.
+- > 2005-05-31 19:00:00.000000000
+- > 2005-05-31 20:00:00.000000000
+- > 2005-06-01 00:00:00.000000000
+- > 2005-05-31 20:00:00.000000000
+- >
++> 1109653200 = 2005-03-01 00:00:00.000000000
++> 1109631600 = 2005-02-28 18:00:00.000000000
++> 1112331600 = 2005-04-01 00:00:00.000000000
++> Bad format - couldn't convert.
++> 1114902000 = 2005-04-30 19:00:00.000000000
++> 1114905600 = 2005-04-30 20:00:00.000000000
++> 1114920000 = 2005-05-01 00:00:00.000000000
++> 1114905600 = 2005-04-30 20:00:00.000000000
++> Bad format - couldn't convert.
++> 1117580400 = 2005-05-31 19:00:00.000000000
++> 1117584000 = 2005-05-31 20:00:00.000000000
++> 1117598400 = 2005-06-01 00:00:00.000000000
++> 1117584000 = 2005-05-31 20:00:00.000000000
++>
+ EOF
+
+ ./getdate >getdate-got <<EOF
+--- cvs-1.12.13+real.orig/lib/vasnprintf.c
++++ cvs-1.12.13+real/lib/vasnprintf.c
+@@ -26,7 +26,9 @@
+ # include <config.h>
+ #endif
+ #ifndef IN_LIBINTL
++# ifdef HAVE_ALLOCA_H
+ # include <alloca.h>
++# endif
+ #endif
+
+ /* Specification. */
+@@ -100,7 +102,12 @@
+ # define DIRECTIVE char_directive
+ # define DIRECTIVES char_directives
+ # define PRINTF_PARSE printf_parse
++#if 0
++/* disabled for security reasons, to avoid having %n in writable memory */
+ # define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF)
++#else
++# define USE_SNPRINTF 0
++#endif
+ # if HAVE_DECL__SNPRINTF
+ /* Windows. */
+ # define SNPRINTF _snprintf
+@@ -591,11 +598,12 @@
+ {
+ size_t maxlen;
+ int count;
+- int retcount;
++#if USE_SNPRINTF
++ int retcount = 0;
++#endif
+
+ maxlen = allocated - length;
+ count = -1;
+- retcount = 0;
+
+ #if USE_SNPRINTF
+ # define SNPRINTF_BUF(arg) \
+--- cvs-1.12.13+real.orig/lib/xalloc.h
++++ cvs-1.12.13+real/lib/xalloc.h
+@@ -29,7 +29,7 @@
+
+
+ # ifndef __attribute__
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
+ # define __attribute__(x)
+ # endif
+ # endif
+--- cvs-1.12.13+real.orig/m4/getcwd-path-max.m4
++++ cvs-1.12.13+real/m4/getcwd-path-max.m4
+@@ -65,8 +65,8 @@
+ {
+ #ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+- at least not on a local file system. And if we were to start worrying
+- about remote file systems, we'd have to enable the wrapper function
++ at least not on a local filesystem. And if we were to start worrying
++ about remote filesystems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+ #elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+--- cvs-1.12.13+real.orig/m4/getdate.m4
++++ cvs-1.12.13+real/m4/getdate.m4
+@@ -6,7 +6,7 @@
+
+ AC_DEFUN([gl_GETDATE],
+ [
+- AC_LIBSOURCES([getdate.h, getdate.y])
++ AC_LIBSOURCES([getdate.h, getdate.c])
+ AC_LIBOBJ([getdate])
+
+ dnl Prerequisites of lib/getdate.h.
+--- cvs-1.12.13+real.orig/m4/longdouble.m4
++++ cvs-1.12.13+real/m4/longdouble.m4
+@@ -8,21 +8,12 @@
+ dnl Test whether the compiler supports the 'long double' type.
+ dnl Prerequisite: AC_PROG_CC
+
++dnl $MirOS: src/gnu/usr.bin/cvs/m4/longdouble.m4,v 1.4 2016/10/22 03:36:43 tg Exp $
++
+ AC_DEFUN([gt_TYPE_LONGDOUBLE],
+ [
+- AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
+- [if test "$GCC" = yes; then
+- gt_cv_c_long_double=yes
+- else
+- AC_TRY_COMPILE([
+- /* The Stardent Vistra knows sizeof(long double), but does not support it. */
+- long double foo = 0.0;
+- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+- int array [2*(sizeof(long double) >= sizeof(double)) - 1];
+- ], ,
+- gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
+- fi])
+- if test $gt_cv_c_long_double = yes; then
++ AC_CHECK_TYPE([long double], [gt_cv_c_long_double=yes], [gt_cv_c_long_double=no])
++ if test x"$gt_cv_c_long_double" = x"yes"; then
+ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
+ fi
+ ])
+--- cvs-1.12.13+real.orig/m4/mktime.m4
++++ cvs-1.12.13+real/m4/mktime.m4
+@@ -6,6 +6,9 @@
+
+ dnl From Jim Meyering.
+
++dnl Test program updated to git faefb77009239f82ac2f77ac0c10d71d4f38af07
++dnl for Debian.
++
+ # Redefine AC_FUNC_MKTIME, to fix a bug in Autoconf 2.57 and earlier.
+ # This redefinition can be removed once a new version of Autoconf comes out.
+ # The redefinition is taken from
+@@ -19,27 +22,16 @@
+ AC_CACHE_CHECK([for working mktime], ac_cv_func_working_mktime,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE(
+ [[/* Test program from Paul Eggert and Tony Leneis. */
+-#if TIME_WITH_SYS_TIME
+-# include <sys/time.h>
+-# include <time.h>
+-#else
+-# if HAVE_SYS_TIME_H
+-# include <sys/time.h>
+-# else
+-# include <time.h>
+-# endif
+-#endif
++#include <limits.h>
++#include <stdlib.h>
++#include <time.h>
+
+-#if HAVE_STDLIB_H
+-# include <stdlib.h>
+-#endif
+-
+-#if HAVE_UNISTD_H
++#ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+
+-#if !HAVE_ALARM
+-# define alarm(X) /* empty */
++#if HAVE_DECL_ALARM
++# include <signal.h>
+ #endif
+
+ /* Work around redefinition to rpl_putenv by other config tests. */
+@@ -55,9 +47,9 @@
+ };
+ #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+-/* Fail if mktime fails to convert a date in the spring-forward gap.
++/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+-static void
++static int
+ spring_forward_gap ()
+ {
+ /* glibc (up to about 1998-10-07) failed this test. */
+@@ -76,29 +68,25 @@
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+- if (mktime (&tm) == (time_t)-1)
+- exit (1);
++ return mktime (&tm) != (time_t) -1;
+ }
+
+-static void
+-mktime_test1 (now)
+- time_t now;
++static int
++mktime_test1 (time_t now)
+ {
+ struct tm *lt;
+- if ((lt = localtime (&now)) && mktime (lt) != now)
+- exit (1);
++ return ! (lt = localtime (&now)) || mktime (lt) == now;
+ }
+
+-static void
+-mktime_test (now)
+- time_t now;
++static int
++mktime_test (time_t now)
+ {
+- mktime_test1 (now);
+- mktime_test1 ((time_t) (time_t_max - now));
+- mktime_test1 ((time_t) (time_t_min + now));
++ return (mktime_test1 (now)
++ && mktime_test1 ((time_t) (time_t_max - now))
++ && mktime_test1 ((time_t) (time_t_min + now)));
+ }
+
+-static void
++static int
+ irix_6_4_bug ()
+ {
+ /* Based on code from Ariel Faigon. */
+@@ -111,13 +99,11 @@
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+- if (tm.tm_mon != 2 || tm.tm_mday != 31)
+- exit (1);
++ return tm.tm_mon == 2 && tm.tm_mday == 31;
+ }
+
+-static void
+-bigtime_test (j)
+- int j;
++static int
++bigtime_test (int j)
+ {
+ struct tm tm;
+ time_t now;
+@@ -127,56 +113,110 @@
+ {
+ struct tm *lt = localtime (&now);
+ if (! (lt
+- && lt->tm_year == tm.tm_year
+- && lt->tm_mon == tm.tm_mon
+- && lt->tm_mday == tm.tm_mday
+- && lt->tm_hour == tm.tm_hour
+- && lt->tm_min == tm.tm_min
+- && lt->tm_sec == tm.tm_sec
+- && lt->tm_yday == tm.tm_yday
+- && lt->tm_wday == tm.tm_wday
+- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
+- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
+- exit (1);
++ && lt->tm_year == tm.tm_year
++ && lt->tm_mon == tm.tm_mon
++ && lt->tm_mday == tm.tm_mday
++ && lt->tm_hour == tm.tm_hour
++ && lt->tm_min == tm.tm_min
++ && lt->tm_sec == tm.tm_sec
++ && lt->tm_yday == tm.tm_yday
++ && lt->tm_wday == tm.tm_wday
++ && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
++ == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
++ return 0;
+ }
++ return 1;
++}
++
++static int
++year_2050_test ()
++{
++ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
++ ignoring leap seconds. */
++ unsigned long int answer = 2527315200UL;
++
++ struct tm tm;
++ time_t t;
++ tm.tm_year = 2050 - 1900;
++ tm.tm_mon = 2 - 1;
++ tm.tm_mday = 1;
++ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
++ tm.tm_isdst = -1;
++
++ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
++ instead of "TZ=America/Vancouver" in order to detect the bug even
++ on systems that don't support the Olson extension, or don't have the
++ full zoneinfo tables installed. */
++ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
++
++ t = mktime (&tm);
++
++ /* Check that the result is either a failure, or close enough
++ to the correct answer that we can assume the discrepancy is
++ due to leap seconds. */
++ return (t == (time_t) -1
++ || (0 < t && answer - 120 <= t && t <= answer + 120));
+ }
+
+ int
+ main ()
+ {
++ int result = 0;
+ time_t t, delta;
+ int i, j;
++ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
++ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
++#if HAVE_DECL_ALARM
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
++ signal (SIGALRM, SIG_DFL);
+ alarm (60);
++#endif
++
++ time_t_max = (! time_t_signed
++ ? (time_t) -1
++ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
++ * 2 + 1));
++ time_t_min = (! time_t_signed
++ ? (time_t) 0
++ : time_t_signed_magnitude
++ ? ~ (time_t) 0
++ : ~ time_t_max);
+
+- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
+- continue;
+- time_t_max--;
+- if ((time_t) -1 < 0)
+- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2)
+- continue;
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+- putenv (tz_strings[i]);
++ putenv (tz_strings[i]);
+
+- for (t = 0; t <= time_t_max - delta; t += delta)
+- mktime_test (t);
+- mktime_test ((time_t) 1);
+- mktime_test ((time_t) (60 * 60));
+- mktime_test ((time_t) (60 * 60 * 24));
+-
+- for (j = 1; 0 < j; j *= 2)
+- bigtime_test (j);
+- bigtime_test (j - 1);
++ for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta)
++ if (! mktime_test (t))
++ result |= 1;
++ if ((result & 2) == 0
++ && ! (mktime_test ((time_t) 1)
++ && mktime_test ((time_t) (60 * 60))
++ && mktime_test ((time_t) (60 * 60 * 24))))
++ result |= 2;
++
++ for (j = 1; (result & 4) == 0; j <<= 1)
++ {
++ if (! bigtime_test (j))
++ result |= 4;
++ if (INT_MAX / 2 < j)
++ break;
++ }
++ if ((result & 8) == 0 && ! bigtime_test (INT_MAX))
++ result |= 8;
+ }
+- irix_6_4_bug ();
+- spring_forward_gap ();
+- exit (0);
++ if (! irix_6_4_bug ())
++ result |= 16;
++ if (! spring_forward_gap ())
++ result |= 32;
++ if (! year_2050_test ())
++ result |= 64;
++ return result;
+ }]])],
+ [ac_cv_func_working_mktime=yes],
+ [ac_cv_func_working_mktime=no],
+--- cvs-1.12.13+real.orig/man/cvs.5
++++ cvs-1.12.13+real/man/cvs.5
+@@ -1,3 +1,4 @@
++.\" $MirOS: src/gnu/usr.bin/cvs/man/cvs.5,v 1.3 2010/09/19 19:43:00 tg Exp $
+ .TH cvs 5 "12 February 1992"
+ .\" Full space in nroff; half space in troff
+ .de SP
+@@ -238,9 +239,9 @@
+ .B add
+ for `tag',
+ .B mov
+-for `tag -F', and
++for `tag \-F', and
+ .B del
+-for `tag -d`),
++for `tag \-d`),
+ .I repository ,
+ and any remaining are pairs of
+ .B "filename revision" .
+--- cvs-1.12.13+real.orig/src/ChangeLog
++++ cvs-1.12.13+real/src/ChangeLog
+@@ -11313,7 +11313,7 @@
+ 1999-05-11 Larry Jones <larry.jones@sdrc.com>
+
+ * server.c (serve_notify): Allocate enough memory to hold the
+- "misformed Notify request" message in pending_error_text.
++ "malformed Notify request" message in pending_error_text.
+
+ 1999-05-11 Jim Kingdon <http://www.cyclic.com>
+
+--- cvs-1.12.13+real.orig/src/add.c
++++ cvs-1.12.13+real/src/add.c
+@@ -532,7 +532,8 @@
+ free (bbuf);
+ }
+ Register (entries, finfo.file, "0",
+- timestamp ? timestamp : vers->ts_user,
++ timestamp ? timestamp :
++ vers->ts_user_ists ? "locally added" : vers->ts_user,
+ vers->options, vers->tag, vers->date, NULL);
+ if (timestamp) free (timestamp);
+ #ifdef SERVER_SUPPORT
+@@ -784,7 +785,7 @@
+ }
+
+ /* setup the log message */
+- message = Xasprintf ("Directory %s added to the repository\n%s%s%s%s%s%s",
++ message = Xasprintf ("Directory %s put under version control\n%s%s%s%s%s%s",
+ rcsdir,
+ tag ? "--> Using per-directory sticky tag `" : "",
+ tag ? tag : "", tag ? "'\n" : "",
+--- cvs-1.12.13+real.orig/src/admin.c
++++ cvs-1.12.13+real/src/admin.c
+@@ -147,6 +147,7 @@
+ TRACE (TRACE_FUNCTION, "postadmin_proc (%s, %s)", repository, filter);
+
+ /* %c = cvs_cmd_name
++ * %I = commit ID
+ * %R = referrer
+ * %p = shortrepos
+ * %r = repository
+@@ -162,6 +163,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+--- cvs-1.12.13+real.orig/src/annotate.c
++++ cvs-1.12.13+real/src/annotate.c
+@@ -21,6 +21,7 @@
+
+ /* Options from the command line. */
+
++static int backwards = 0;
+ static int force_tag_match = 1;
+ static int force_binary = 0;
+ static char *tag = NULL;
+@@ -36,7 +37,8 @@
+
+ static const char *const annotate_usage[] =
+ {
+- "Usage: %s %s [-lRfF] [-r rev] [-D date] [files...]\n",
++ "Usage: %s %s [-blRfF] [-r rev] [-D date] [files...]\n",
++ "\t-b\tBackwards, show when a line was removed.\n",
+ "\t-l\tLocal directory only, no recursion.\n",
+ "\t-R\tProcess directories recursively.\n",
+ "\t-f\tUse head revision if tag/date not found.\n",
+@@ -63,10 +65,13 @@
+ usage (annotate_usage);
+
+ optind = 0;
+- while ((c = getopt (argc, argv, "+lr:D:fFR")) != -1)
++ while ((c = getopt (argc, argv, "+blr:D:fFR")) != -1)
+ {
+ switch (c)
+ {
++ case 'b':
++ backwards = 1;
++ break;
+ case 'l':
+ local = 1;
+ break;
+@@ -105,6 +110,8 @@
+
+ ign_setup ();
+
++ if (backwards)
++ send_arg ("-b");
+ if (local)
+ send_arg ("-l");
+ if (!force_tag_match)
+@@ -280,7 +287,8 @@
+ else
+ {
+ RCS_deltas (finfo->rcs, NULL, NULL,
+- version, RCS_ANNOTATE, NULL, NULL, NULL, NULL);
++ version, backwards ? RCS_ANNOTATE_BACKWARDS : RCS_ANNOTATE,
++ NULL, NULL, NULL, NULL);
+ }
+ free (version);
+ return 0;
+--- cvs-1.12.13+real.orig/src/buffer.c
++++ cvs-1.12.13+real/src/buffer.c
+@@ -1,6 +1,9 @@
+ /*
++ * Copyright © 2017 mirabilos <m@mirbsd.org>
+ * Copyright (C) 1996-2005 The Free Software Foundation, Inc.
+ *
++ * Portions Copyright (c) 2017 Patrick Keshishian
++ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+@@ -536,9 +539,10 @@
+ void
+ buf_free_data (struct buffer *buffer)
+ {
+- if (buf_empty_p (buffer)) return;
++ if (buffer->data) {
+ buf_free_datas (buffer->data, buffer->last);
+ buffer->data = buffer->last = NULL;
++ }
+ }
+
+
+@@ -1049,7 +1053,14 @@
+ }
+
+ /* Put in the command. */
+- buf_append_char (outbuf, command);
++ switch (command) {
++ case CVS_OUTPUT_EX_LOGM:
++ buf_output0 (outbuf, "LOGM");
++ break;
++ default:
++ buf_append_char (outbuf, command);
++ break;
++ }
+ buf_append_char (outbuf, ' ');
+
+ if (inbuf->data != nldata)
+--- cvs-1.12.13+real.orig/src/checkout.c
++++ cvs-1.12.13+real/src/checkout.c
+@@ -422,7 +422,7 @@
+ *
+ * ERRORS
+ * Exits with a fatal error message when various events occur, such as not
+- * being able to resolve a path or failing ot chdir to a path.
++ * being able to resolve a path or failing to chdir to a path.
+ */
+ int
+ safe_location (char *where)
+--- cvs-1.12.13+real.orig/src/client.c
++++ cvs-1.12.13+real/src/client.c
+@@ -3077,6 +3077,7 @@
+ rs_optional),
+ RSP_LINE("M", handle_m, response_type_normal, rs_essential),
+ RSP_LINE("Mbinary", handle_mbinary, response_type_normal, rs_optional),
++ RSP_LINE("LOGM", handle_m, response_type_normal, rs_optional),
+ RSP_LINE("E", handle_e, response_type_normal, rs_essential),
+ RSP_LINE("F", handle_f, response_type_normal, rs_optional),
+ RSP_LINE("MT", handle_mt, response_type_normal, rs_optional),
+@@ -3355,7 +3356,7 @@
+ struct servent *s;
+ char *port_s;
+
+- if (envname && (port_s = getenv (envname)))
++ if (envname && (port_s = getenv (envname)) && *port_s)
+ {
+ int port = atoi (port_s);
+ if (port <= 0)
+@@ -3510,6 +3511,17 @@
+ sock = socket (AF_INET, SOCK_STREAM, 0);
+ if (sock == -1)
+ error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
++
++#ifdef TCP_NODELAY
++ /* Avoid latency due to Nagle algorithm. */
++ {
++ int on = 1;
++
++ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0)
++ error (0, errno, "warning: cannot set TCP_NODELAY on socket");
++ }
++#endif
++
+ port_number = get_cvs_port_number (root);
+
+ /* if we have a proxy connect to that instead */
+@@ -3558,9 +3570,9 @@
+ * code.
+ */
+ read_line_via (from_server, to_server, &read_buf);
+- sscanf (read_buf, "%s %d", write_buf, &codenum);
++ count = sscanf (read_buf, "%*s %d", &codenum);
+
+- if ((codenum / 100) != 2)
++ if (count != 1 || (codenum / 100) != 2)
+ error (1, 0, "proxy server %s:%d does not support http tunnelling",
+ root->proxy_hostname, proxy_port_number);
+ free (read_buf);
+@@ -3793,11 +3805,12 @@
+ /* This is pretty simple. All we need to do is choose the correct
+ cvs binary and call piped_child. */
+
+- char *command[3];
++ char *command[4];
++ int ncommand = 0;
+
+- command[0] = (root->cvs_server
++ command[ncommand++] = (root->cvs_server
+ ? root->cvs_server : getenv ("CVS_SERVER"));
+- if (!command[0])
++ if (!command[0] || !command[0][0])
+ # ifdef SERVER_SUPPORT
+ /* FIXME:
+ * I'm casting out the const below because I know that piped_child, the
+@@ -3807,7 +3820,7 @@
+ * such that this casting isn't needed, but I don't know how. If I
+ * declare it as (const char *command[]), the compiler complains about
+ * an incompatible arg 1 being passed to piped_child and if I declare
+- * it as (char *const command[3]), then the compiler complains when I
++ * it as (char *const command[4]), then the compiler complains when I
+ * assign values to command[i].
+ */
+ command[0] = (char *)program_path;
+@@ -3819,11 +3832,15 @@
+ }
+ # endif /* SERVER_SUPPORT */
+
+- command[1] = "server";
+- command[2] = NULL;
+-
+- TRACE (TRACE_FUNCTION, "Forking server: %s %s",
+- command[0] ? command[0] : "(null)", command[1]);
++ if (readonlyfs)
++ command[ncommand++] = "-R";
++ command[ncommand++] = "server";
++ command[ncommand++] = NULL;
++
++ TRACE (TRACE_FUNCTION, "Forking server: %s %s %s",
++ command[0] ? command[0] : "(null)",
++ command[1] ? command[1] : "(null)",
++ command[2] ? command[2] : "");
+
+ child_pid = piped_child (command, &tofd, &fromfd, false);
+ if (child_pid < 0)
+@@ -3901,8 +3918,12 @@
+ case ext_method:
+ #ifdef NO_EXT_METHOD
+ error (0, 0, ":ext: method not supported by this port of CVS");
++ if (0)
++ case extssh_method:
++ error (0, 0, ":extssh: method not supported by this port of CVS");
+ error (1, 0, "try :server: instead");
+ #else /* ! NO_EXT_METHOD */
++ case extssh_method:
+ start_rsh_server (root, to_server_p,
+ from_server_p);
+ #endif /* NO_EXT_METHOD */
+@@ -4362,7 +4383,7 @@
+ sprintf (tmp, "%lu\n", (unsigned long) newsize);
+ send_to_server (tmp, 0);
+
+- send_to_server (buf, newsize);
++ send_to_server ((const void *)buf, newsize);
+ }
+ }
+ else
+@@ -4415,7 +4436,7 @@
+ * one.
+ */
+ if (newsize > 0)
+- send_to_server (buf, newsize);
++ send_to_server ((const void *)buf, newsize);
+ }
+ free (buf);
+ free (mode_string);
+@@ -4914,7 +4935,7 @@
+ {
+ if (supported_request ("Max-dotdot"))
+ {
+- char buf[10];
++ char buf[12];
+ sprintf (buf, "%d", max_level);
+
+ send_to_server ("Max-dotdot ", 0);
+--- cvs-1.12.13+real.orig/src/client.h
++++ cvs-1.12.13+real/src/client.h
+@@ -213,6 +213,7 @@
+ #if defined AUTH_CLIENT_SUPPORT || defined HAVE_KERBEROS || defined HAVE_GSSAPI
+ # include <sys/socket.h>
+ # include <netinet/in.h>
++# include <netinet/tcp.h>
+ # include <arpa/inet.h>
+ # include <netdb.h>
+ struct hostent *init_sockaddr (struct sockaddr_in *, char *, unsigned int);
+--- cvs-1.12.13+real.orig/src/commit.c
++++ cvs-1.12.13+real/src/commit.c
+@@ -1,5 +1,7 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2007 Benny Siegert <bsiegert@mirbsd.org>
++ * Copyright (c) 2005, 2007, 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -492,7 +494,7 @@
+
+ /* Now we keep track of which files we actually are going to
+ operate on, and only work with those files in the future.
+- This saves time--we don't want to search the file system
++ This saves time--we don't want to search the filesystem
+ of the working directory twice. */
+ if (size_overflow_p (xtimes (find_args.argc, sizeof (char **))))
+ {
+@@ -613,31 +615,7 @@
+
+ send_to_server ("ci\012", 0);
+ err = get_responses_and_close ();
+- if (err != 0 && use_editor && saved_message != NULL)
+- {
+- /* If there was an error, don't nuke the user's carefully
+- constructed prose. This is something of a kludge; a better
+- solution is probably more along the lines of #150 in TODO
+- (doing a second up-to-date check before accepting the
+- log message has also been suggested, but that seems kind of
+- iffy because the real up-to-date check could still fail,
+- another error could occur, &c. Also, a second check would
+- slow things down). */
+-
+- char *fname;
+- FILE *fp;
+-
+- fp = cvs_temp_file (&fname);
+- if (fp == NULL)
+- error (1, 0, "cannot create temporary file %s", fname);
+- if (fwrite (saved_message, 1, strlen (saved_message), fp)
+- != strlen (saved_message))
+- error (1, errno, "cannot write temporary file %s", fname);
+- if (fclose (fp) < 0)
+- error (0, errno, "cannot close temporary file %s", fname);
+- error (0, 0, "saving log message in %s", fname);
+- free (fname);
+- }
++ logmsg_cleanup(err);
+ return err;
+ }
+ #endif
+@@ -702,6 +680,7 @@
+ sleep_past (last_register_time);
+ }
+
++ logmsg_cleanup(err);
+ return err;
+ }
+
+@@ -853,7 +832,7 @@
+ case T_ADDED:
+ case T_REMOVED:
+ {
+- char *editor;
++ char *editor = NULL;
+
+ /*
+ * some quick sanity checks; if no numeric -r option specified:
+@@ -1196,7 +1175,7 @@
+ doff = d - *c->buf;
+ expand_string (c->buf, c->length, doff + strlen (arg));
+ d = *c->buf + doff;
+- strncpy (d, arg, strlen (arg));
++ memcpy (d, arg, strlen (arg));
+ d += strlen (arg);
+ free (arg);
+
+@@ -1250,6 +1229,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+@@ -2255,9 +2235,10 @@
+ this was added into the log message. */
+ t = time (NULL);
+ ct = gmtime (&t);
+- tmp = Xasprintf ("file %s was added on branch %s on %d-%02d-%02d %02d:%02d:%02d +0000",
++ tmp = Xasprintf ("file %s was added on branch %s on %ld-%02d-%02d %02d:%02d:%02d +0000",
+ file, tag,
+- ct->tm_year + (ct->tm_year < 100 ? 0 : 1900),
++ (long)ct->tm_year
++ + (ct->tm_year < 100 ? 0 : 1900),
+ ct->tm_mon + 1, ct->tm_mday,
+ ct->tm_hour, ct->tm_min, ct->tm_sec);
+
+--- cvs-1.12.13+real.orig/src/cvs.h
++++ cvs-1.12.13+real/src/cvs.h
+@@ -1,5 +1,9 @@
++/* $MirOS: src/gnu/usr.bin/cvs/src/cvs.h,v 1.10 2021/01/30 02:06:05 tg Exp $ */
++
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2007 Benny Siegert <bsiegert@mirbsd.org>
++ * Copyright (c) 2017, 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -24,7 +28,7 @@
+ /* Add GNU attribute suppport. */
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later. */
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
+ # define __attribute__(Spec) /* empty */
+ # else
+ # if __GNUC__ == 2 && __GNUC_MINOR__ < 96
+@@ -365,6 +369,7 @@
+
+ extern const char *program_name, *program_path, *cvs_cmd_name;
+ extern char *Editor;
++extern char *LogMsgFile;
+ extern int cvsadmin_root;
+ extern char *CurDir;
+ extern int really_quiet, quiet;
+@@ -504,6 +509,8 @@
+ int unlink_file (const char *f);
+ int unlink_file_dir (const char *f);
+
++int suck (int argc, char *argv[]);
++
+ /* This is the structure that the recursion processor passes to the
+ fileproc to tell it about a particular file. */
+ struct file_info
+@@ -585,7 +592,8 @@
+ void check_entries (char *dir);
+ void close_module (DBM * db);
+ void copy_file (const char *from, const char *to);
+-void fperrmsg (FILE * fp, int status, int errnum, char *message,...);
++void fpwarnmsg (FILE * fp, int errnum, char *message, ...)
++ __attribute__ ((__format__(__printf__, 3, 4)));
+
+ int ign_name (char *name);
+ void ign_add (char *ign, int hold);
+@@ -618,7 +626,8 @@
+ void cleanup_register (void (*handler) (void));
+
+ void update_delproc (Node * p);
+-void usage (const char *const *cpp);
++void usage (const char *const *cpp)
++ __attribute__((__noreturn__));
+ void xchmod (const char *fname, int writable);
+ List *Find_Names (char *repository, int which, int aflag,
+ List ** optentries);
+@@ -629,6 +638,7 @@
+ FILE *xlogfp, List *xchanges);
+ void do_editor (const char *dir, char **messagep,
+ const char *repository, List *changes);
++void logmsg_cleanup (int err);
+
+ void do_verify (char **messagep, const char *repository, List *changes);
+
+@@ -726,7 +736,7 @@
+ /* This is the timestamp from stating the file in the working directory.
+ It is NULL if there is no file in the working directory. It is
+ "Is-modified" if we know the file is modified but don't have its
+- contents. */
++ contents. See also: ts_user_ists. */
+ char *ts_user;
+ /* Timestamp from CVS/Entries. For the server, ts_user and ts_rcs
+ are computed in a slightly different way, but the fact remains that
+@@ -759,6 +769,9 @@
+
+ /* Pointer to parsed src file info */
+ RCSNode *srcfile;
++
++ /* 1 if ts_user is known to be the actual timestamp of a local file */
++ unsigned char ts_user_ists;
+ };
+ typedef struct vers_ts Vers_TS;
+
+@@ -911,11 +924,15 @@
+
+ /* From server.c and documented there. */
+ void cvs_output (const char *, size_t);
++void cvs_output_ex (const char *, size_t, int);
+ void cvs_output_binary (char *, size_t);
+ void cvs_outerr (const char *, size_t);
+ void cvs_flusherr (void);
+ void cvs_flushout (void);
+ void cvs_output_tagged (const char *, const char *);
++int supported_response (const char *);
++
++#define CVS_OUTPUT_EX_LOGM 0x80000001
+
+ extern const char *global_session_id;
+
+--- cvs-1.12.13+real.orig/src/cvsrc.c
++++ cvs-1.12.13+real/src/cvsrc.c
+@@ -41,6 +41,7 @@
+ size_t line_chars_allocated;
+
+ char *optstart;
++ int white_len = 0;
+
+ int command_len;
+ int found = 0;
+@@ -96,9 +97,12 @@
+ if (line[0] == '#')
+ continue;
+
++ while (isspace(line[white_len]))
++ ++white_len;
++
+ /* stop if we match the current command */
+- if (!strncmp (line, cmdname, command_len)
+- && isspace ((unsigned char) *(line + command_len)))
++ if (!strncmp (line + white_len, cmdname, command_len)
++ && isspace ((unsigned char) *(line + white_len + command_len)))
+ {
+ found = 1;
+ break;
+@@ -120,7 +124,7 @@
+ if (found)
+ {
+ /* skip over command in the options line */
+- for (optstart = strtok (line + command_len, "\t \n");
++ for (optstart = strtok (line + white_len + command_len, "\t \n");
+ optstart;
+ optstart = strtok (NULL, "\t \n"))
+ {
+--- cvs-1.12.13+real.orig/src/diff.c
++++ cvs-1.12.13+real/src/diff.c
+@@ -21,6 +21,8 @@
+
+ #include "cvs.h"
+
++#define TAG_BHEAD ".bhead"
++
+ enum diff_file
+ {
+ DIFF_ERROR,
+@@ -444,9 +446,9 @@
+ }
+ #endif
+
+- if (diff_rev1 != NULL)
++ if (diff_rev1 != NULL && strcmp(diff_rev1, TAG_BHEAD))
+ tag_check_valid (diff_rev1, argc, argv, local, 0, "", false);
+- if (diff_rev2 != NULL)
++ if (diff_rev2 != NULL && strcmp(diff_rev2, TAG_BHEAD))
+ tag_check_valid (diff_rev2, argc, argv, local, 0, "", false);
+
+ which = W_LOCAL;
+@@ -903,8 +905,14 @@
+
+ if (diff_rev1 || diff_date1)
+ {
+- /* special handling for TAG_HEAD */
+- if (diff_rev1 && strcmp (diff_rev1, TAG_HEAD) == 0)
++ /*
++ * the special handling is broken, -rbranchname is the
++ * head (tip) of the branch already, -rHEAD is supposed
++ * to be the head (tip) of the MAIN branch (trunk); we
++ * introduce ".bhead" here, for now, but only here
++ */
++ /* special handling for TAG_BHEAD */
++ if (diff_rev1 && strcmp (diff_rev1, TAG_BHEAD) == 0)
+ {
+ if (vers->vn_rcs != NULL && vers->srcfile != NULL)
+ use_rev1 = RCS_branch_head (vers->srcfile, vers->vn_rcs);
+@@ -919,8 +927,8 @@
+ }
+ if (diff_rev2 || diff_date2)
+ {
+- /* special handling for TAG_HEAD */
+- if (diff_rev2 && strcmp (diff_rev2, TAG_HEAD) == 0)
++ /* special handling for TAG_BHEAD */
++ if (diff_rev2 && strcmp (diff_rev2, TAG_BHEAD) == 0)
+ {
+ if (vers->vn_rcs && vers->srcfile)
+ use_rev2 = RCS_branch_head (vers->srcfile, vers->vn_rcs);
+--- cvs-1.12.13+real.orig/src/edit.c
++++ cvs-1.12.13+real/src/edit.c
+@@ -266,7 +266,7 @@
+ cvs_output (p++, 1);
+ if (*p == '\0')
+ {
+- /* Only happens if attribute is misformed. */
++ /* Only happens if attribute is malformed. */
+ cvs_output ("\n", 1);
+ break;
+ }
+@@ -828,6 +828,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+--- cvs-1.12.13+real.orig/src/error.c
++++ cvs-1.12.13+real/src/error.c
+@@ -1,5 +1,6 @@
+ /* error.c -- error handler for noninteractive utilities
+ Copyright (C) 1990-1992 Free Software Foundation, Inc.
++ Copyright (c) 2011, 2021 mirabilos <m@mirbsd.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -57,7 +58,7 @@
+ * represents the system dependent message returned by strerror (ERRNUM), when
+ * ERRNUM is non-zero.
+ *
+- * Exit with status EXIT_FAILURE if STATUS is nonzero.
++ * error() exits with status EXIT_FAILURE if STATUS is nonzero.
+ *
+ * If this function fails to get any memory it might request, it attempts to
+ * log a "memory exhausted" message to the syslog, when syslog is available,
+@@ -65,7 +66,7 @@
+ * below for more information on this functions memory allocation.
+ *
+ * INPUTS
+- * status When non-zero, exit with EXIT_FAILURE rather than returning.
++ * status warning() returns this value for the error() macro.
+ * errnum When non-zero, interpret as global ERRNO for the purpose of
+ * generating additional error text.
+ * message A printf style format string.
+@@ -104,8 +105,8 @@
+ * RETURNS
+ * Sometimes. ;)
+ */
+-void
+-error (int status, int errnum, const char *message, ...)
++int
++warning(int status, int errnum, const char *message, ...)
+ {
+ va_list args;
+ int save_errno = errno;
+@@ -180,7 +181,7 @@
+
+ /* Done, if we're exiting. */
+ if (status)
+- exit (EXIT_FAILURE);
++ return (status);
+
+ /* Free anything we may have allocated. */
+ if (buf != statbuf) free (buf);
+@@ -191,7 +192,7 @@
+ errno = save_errno;
+
+ /* Done. */
+- return;
++ return (status);
+
+ memerror:
+ /* Make one last attempt to log the problem in the syslog since that
+@@ -208,7 +209,7 @@
+ * with the message here.
+ */
+ #if HAVE_SYSLOG_H
+- syslog (LOG_DAEMON | LOG_EMERG, "Memory exhausted. Aborting.");
++ syslog (LOG_DAEMON | LOG_CRIT, "Memory exhausted. Aborting.");
+ #endif /* HAVE_SYSLOG_H */
+
+ goto sidestep_done;
+@@ -219,18 +220,18 @@
+ * error while attempting to send the last error message to the client.
+ */
+
+- syslog (LOG_DAEMON | LOG_EMERG,
++ syslog (LOG_DAEMON | LOG_ALERT,
+ "error (%d, %d) called recursively. Original message was:",
+ last_status, last_errnum);
+- syslog (LOG_DAEMON | LOG_EMERG, "%s", last_message);
++ syslog (LOG_DAEMON | LOG_ALERT, "%s", last_message);
+
+
+- syslog (LOG_DAEMON | LOG_EMERG,
++ syslog (LOG_DAEMON | LOG_ALERT,
+ "error (%d, %d) called recursively. Second message was:",
+ status, errnum);
+- syslog (LOG_DAEMON | LOG_EMERG, "%s", buf2);
++ syslog (LOG_DAEMON | LOG_ALERT, "%s", buf2);
+
+- syslog (LOG_DAEMON | LOG_EMERG, "Aborting.");
++ syslog (LOG_DAEMON | LOG_ALERT, "Aborting.");
+ #endif /* HAVE_SYSLOG_H */
+
+ sidestep_done:
+@@ -247,10 +248,10 @@
+ /* Print the program name and error message MESSAGE, which is a printf-style
+ format string with optional args to the file specified by FP.
+ If ERRNUM is nonzero, print its corresponding system error message.
+- Exit with status EXIT_FAILURE if STATUS is nonzero. */
++*/
+ /* VARARGS */
+ void
+-fperrmsg (FILE *fp, int status, int errnum, char *message, ...)
++fpwarnmsg (FILE *fp, int errnum, char *message, ...)
+ {
+ va_list args;
+
+@@ -262,6 +263,4 @@
+ fprintf (fp, ": %s", strerror (errnum));
+ putc ('\n', fp);
+ fflush (fp);
+- if (status)
+- exit (EXIT_FAILURE);
+ }
+--- cvs-1.12.13+real.orig/src/fileattr.c
++++ cvs-1.12.13+real/src/fileattr.c
+@@ -514,6 +514,7 @@
+ TRACE (TRACE_FUNCTION, "postwatch_proc (%s, %s)", repository, filter);
+
+ /* %c = command name
++ * %I = commit ID
+ * %p = shortrepos
+ * %r = repository
+ */
+@@ -528,6 +529,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+--- cvs-1.12.13+real.orig/src/filesubr.c
++++ cvs-1.12.13+real/src/filesubr.c
+@@ -1,5 +1,6 @@
+ /* filesubr.c --- subroutines for dealing with files
+ Jim Blandy <jimb@cyclic.com>
++ © 2010, 2017, 2021 mirabilos <m@mirbsd.org>
+
+ This file is part of GNU CVS.
+
+@@ -15,7 +16,7 @@
+
+ /* These functions were moved out of subr.c because they need different
+ definitions under operating systems (like, say, Windows NT) with different
+- file system semantics. */
++ filesystem semantics. */
+
+ #include "cvs.h"
+ #include "lstat.h"
+@@ -645,6 +646,10 @@
+ error (1, errno, "cannot read file %s for comparing", file2);
+
+ /* assert (read1 == read2); */
++#if defined(__GNUC__) && /* stupid */ (__GNUC__ > 4)
++ if (read1 > buf_size)
++ __builtin_unreachable();
++#endif
+
+ ret = memcmp(buf1, buf2, read1);
+ } while (ret == 0 && read1 == buf_size);
+@@ -808,7 +813,7 @@
+ if (home != NULL)
+ return home;
+
+- if (!server_active && (env = getenv ("HOME")) != NULL)
++ if (!server_active && (env = getenv ("HOME")) != NULL && *env)
+ home = env;
+ else if ((pw = (struct passwd *) getpwuid (getuid ()))
+ && pw->pw_dir)
+@@ -863,7 +868,11 @@
+ const char *
+ get_system_temp_dir (void)
+ {
+- if (!tmpdir_env) tmpdir_env = getenv (TMPDIR_ENV);
++ if (!tmpdir_env) {
++ tmpdir_env = getenv (TMPDIR_ENV);
++ if (tmpdir_env && !*tmpdir_env)
++ tmpdir_env = NULL;
++ }
+ return tmpdir_env;
+ }
+
+--- cvs-1.12.13+real.orig/src/history.c
++++ cvs-1.12.13+real/src/history.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 1994-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2005, 2010, 2021 mirabilos <m@mirbsd.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -362,10 +363,11 @@
+
+ /*
+ * By default, sort by date, time
+- * XXX: This fails after 2030 when date slides into sign bit
+ */
+- if ((i = ((long) (left->date) - (long) (right->date))) != 0)
+- return i;
++ if (left->date > right->date)
++ return (1);
++ if (left->date < right->date)
++ return (-1);
+
+ /* For matching dates, keep the sort stable by using record index */
+ return left->idx - right->idx;
+@@ -376,10 +378,10 @@
+ /* Get the name of the history log, either from CVSROOT/config, or via the
+ * hard-coded default.
+ */
+-static const char *
++static char *
+ get_history_log_name (time_t now)
+ {
+- char *log_name;
++ char *log_name = NULL;
+
+ if (config->HistoryLogPath)
+ {
+@@ -762,7 +764,7 @@
+ history_write (int type, const char *update_dir, const char *revs,
+ const char *name, const char *repository)
+ {
+- const char *fname;
++ char *fname = NULL;
+ char *workdir;
+ char *username = getcaller ();
+ int fd;
+@@ -897,16 +899,16 @@
+
+ if (!revs)
+ revs = "";
++ if (!history_lock (current_parsed_root->directory))
++ /* history_lock() will already have printed an error on failure. */
++ goto out;
++
+ now = time (NULL);
+- line = Xasprintf ("%c%08lx|%s|%s|%s|%s|%s\n", type, (long) now,
++ line = Xasprintf ("%c%08lx|%s|%s|%s|%s|%s\n", type, (unsigned long)now,
+ username, workdir, repos, revs, name);
+
+ fname = get_history_log_name (now);
+
+- if (!history_lock (current_parsed_root->directory))
+- /* history_lock() will already have printed an error on failure. */
+- goto out;
+-
+ fd = CVS_OPEN (fname, O_WRONLY | O_APPEND | O_CREAT | OPEN_BINARY, 0666);
+ if (fd < 0)
+ {
+@@ -936,6 +938,7 @@
+ error (1, errno, "cannot close history file: %s", fname);
+ free (workdir);
+ out:
++ free (fname);
+ clear_history_lock ();
+ }
+
+@@ -1561,7 +1564,7 @@
+ tm = localtime (&(lr->date));
+
+ (void) printf ("%c %04d-%02d-%02d %02d:%02d %s %-*s", ty,
+- tm->tm_year+1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
++ (int)(tm->tm_year+1900), tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
+ tm->tm_min, tz_name, user_len, lr->user);
+
+ workdir = xmalloc (strlen (lr->dir) + strlen (lr->end) + 10);
+--- cvs-1.12.13+real.orig/src/import.c
++++ cvs-1.12.13+real/src/import.c
+@@ -1,5 +1,8 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2007 Benny Siegert <bsiegert@mirbsd.org>
++ * Copyright (c) 2005, 2007, 2010, 2016, 2017, 2021
++ * mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -25,7 +28,7 @@
+ #include "lstat.h"
+ #include "save-cwd.h"
+
+-static char *get_comment (const char *user);
++static const char *get_comment (const char *user);
+ static int add_rev (char *message, RCSNode *rcs, char *vfile,
+ char *vers);
+ static int add_tags (RCSNode *rcs, char *vfile, char *vtag, int targc,
+@@ -238,6 +241,23 @@
+ regfree (&pat);
+ }
+
++ /*
++ * If you use even vendor branches, something evil[TM] can happen.
++ */
++ {
++ regex_t pat;
++ assert (!regcomp (&pat, "^[1-9][0-9]*\\.[1-9][0-9]*\\.[0-9]*[13579]$",
++ REG_EXTENDED));
++ if (regexec (&pat, vbranch, 0, NULL, 0))
++ {
++ error (0, 0,
++ "warning: you are using an even vendor branch, which can\n"
++ "lead to problems: '%s'. Use an odd branch such as '1.1.3' instead.",
++ vbranch);
++ }
++ regfree (&pat);
++ }
++
+ /* Set vhead to the branch's parent. */
+ vhead = xstrdup (vbranch);
+ cp = strrchr (vhead, '.');
+@@ -311,6 +331,7 @@
+ free (vhead);
+ send_to_server ("import\012", 0);
+ err += get_responses_and_close ();
++ logmsg_cleanup(err);
+ return err;
+ }
+ #endif
+@@ -436,6 +457,7 @@
+ free (vbranch);
+ free (vhead);
+
++ logmsg_cleanup(err);
+ return err;
+ }
+
+@@ -595,7 +617,7 @@
+ /* Attempt to make the Attic directory, in case it
+ does not exist. */
+ (void) sprintf (rcs, "%s/%s", repository, CVSATTIC);
+- if (CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
++ if (noexec == 0 && CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
+ error (1, errno, "cannot make directory `%s'", rcs);
+
+ /* Note that the above clobbered the path name, so we
+@@ -790,7 +812,7 @@
+ {
+ if (!noexec)
+ {
+- fperrmsg (logfp, 0, status == -1 ? ierrno : 0,
++ fpwarnmsg (logfp, status == -1 ? ierrno : 0,
+ "ERROR: Check-in of %s failed", rcs->path);
+ error (0, status == -1 ? ierrno : 0,
+ "ERROR: Check-in of %s failed", rcs->path);
+@@ -825,7 +847,7 @@
+ if ((retcode = RCS_settag (rcs, vtag, vbranch)) != 0)
+ {
+ ierrno = errno;
+- fperrmsg (logfp, 0, retcode == -1 ? ierrno : 0,
++ fpwarnmsg (logfp, retcode == -1 ? ierrno : 0,
+ "ERROR: Failed to set tag %s in %s", vtag, rcs->path);
+ error (0, retcode == -1 ? ierrno : 0,
+ "ERROR: Failed to set tag %s in %s", vtag, rcs->path);
+@@ -849,7 +871,7 @@
+ else
+ {
+ ierrno = errno;
+- fperrmsg (logfp, 0, retcode == -1 ? ierrno : 0,
++ fpwarnmsg (logfp, retcode == -1 ? ierrno : 0,
+ "WARNING: Couldn't add tag %s to %s", targv[i],
+ rcs->path);
+ error (0, retcode == -1 ? ierrno : 0,
+@@ -866,7 +888,8 @@
+ */
+ struct compair
+ {
+- char *suffix, *comlead;
++ const char *suffix;
++ const char *comlead;
+ };
+
+ static const struct compair comtable[] =
+@@ -973,13 +996,13 @@
+
+
+
+-static char *
++static const char *
+ get_comment (const char *user)
+ {
+ char *cp, *suffix;
+ char *suffix_path;
+ int i;
+- char *retval;
++ const char *retval;
+
+ suffix_path = xmalloc (strlen (user) + 5);
+ cp = strrchr (user, '.');
+@@ -1144,7 +1167,7 @@
+ {
+ /* not fatal, continue import */
+ if (add_logfp != NULL)
+- fperrmsg (add_logfp, 0, errno,
++ fpwarnmsg (add_logfp, errno,
+ "ERROR: cannot lstat file %s", userfile);
+ error (0, errno, "cannot lstat file %s", userfile);
+ goto read_error;
+@@ -1167,7 +1190,7 @@
+ {
+ /* not fatal, continue import */
+ if (add_logfp != NULL)
+- fperrmsg (add_logfp, 0, errno,
++ fpwarnmsg (add_logfp, errno,
+ "ERROR: cannot read file %s", userfile);
+ error (0, errno, "ERROR: cannot read file %s", userfile);
+ goto read_error;
+@@ -1253,7 +1276,7 @@
+ (void) time (&now);
+ ftm = gmtime (&now);
+ (void) sprintf (altdate1, DATEFORM,
+- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
+ ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
+ ftm->tm_min, ftm->tm_sec);
+ author = getcaller ();
+@@ -1459,7 +1482,7 @@
+ {
+ ierrno = errno;
+ if (add_logfp != NULL)
+- fperrmsg (add_logfp, 0, ierrno,
++ fpwarnmsg (add_logfp, ierrno,
+ "WARNING: cannot change mode of file %s", rcs);
+ error (0, ierrno, "WARNING: cannot change mode of file %s", rcs);
+ err++;
+@@ -1479,14 +1502,14 @@
+ if (fclose (fpuser) < 0)
+ error (0, errno, "cannot close %s", user);
+ if (add_logfp != NULL)
+- fperrmsg (add_logfp, 0, ierrno, "ERROR: cannot write file %s", rcs);
++ fpwarnmsg (add_logfp, ierrno, "ERROR: cannot write file %s", rcs);
+ error (0, ierrno, "ERROR: cannot write file %s", rcs);
+ if (ierrno == ENOSPC)
+ {
+ if (CVS_UNLINK (rcs) < 0)
+ error (0, errno, "cannot remove %s", rcs);
+ if (add_logfp != NULL)
+- fperrmsg (add_logfp, 0, 0, "ERROR: out of space - aborting");
++ fpwarnmsg (add_logfp, 0, "ERROR: out of space - aborting");
+ error (1, 0, "ERROR: out of space - aborting");
+ }
+ read_error:
+@@ -1709,7 +1732,7 @@
+ return 0;
+ if (save_cwd (&cwd))
+ {
+- fperrmsg (logfp, 0, errno, "Failed to save current directory.");
++ fpwarnmsg (logfp, errno, "Failed to save current directory.");
+ return 1;
+ }
+
+@@ -1733,7 +1756,7 @@
+ if (CVS_CHDIR (dir) < 0)
+ {
+ ierrno = errno;
+- fperrmsg (logfp, 0, ierrno, "ERROR: cannot chdir to %s", repository);
++ fpwarnmsg (logfp, ierrno, "ERROR: cannot chdir to %s", repository);
+ error (0, ierrno, "ERROR: cannot chdir to %s", repository);
+ err = 1;
+ goto out;
+@@ -1743,7 +1766,7 @@
+ rcs = Xasprintf ("%s%s", repository, RCSEXT);
+ if (isfile (repository) || isfile (rcs))
+ {
+- fperrmsg (logfp, 0, 0,
++ fpwarnmsg (logfp, 0,
+ "ERROR: %s is a file, should be a directory!",
+ repository);
+ error (0, 0, "ERROR: %s is a file, should be a directory!",
+@@ -1754,7 +1777,7 @@
+ if (noexec == 0 && CVS_MKDIR (repository, 0777) < 0)
+ {
+ ierrno = errno;
+- fperrmsg (logfp, 0, ierrno,
++ fpwarnmsg (logfp, ierrno,
+ "ERROR: cannot mkdir %s -- not added", repository);
+ error (0, ierrno,
+ "ERROR: cannot mkdir %s -- not added", repository);
+--- cvs-1.12.13+real.orig/src/kerberos4-client.c
++++ cvs-1.12.13+real/src/kerberos4-client.c
+@@ -17,6 +17,8 @@
+ #include "buffer.h"
+ #include "socket-client.h"
+
++#include <netinet/tcp.h>
++
+ # include <krb.h>
+
+ extern char *krb_realmofhost ();
+@@ -48,6 +50,16 @@
+ if (s < 0)
+ error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
+
++#ifdef TCP_NODELAY
++ /* Avoid latency due to Nagle algorithm. */
++ {
++ int on = 1;
++
++ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0)
++ error (0, errno, "warning: cannot set TCP_NODELAY on socket");
++ }
++#endif
++
+ port = get_cvs_port_number (root);
+
+ hp = init_sockaddr (&sin, root->hostname, port);
+--- cvs-1.12.13+real.orig/src/lock.c
++++ cvs-1.12.13+real/src/lock.c
+@@ -58,7 +58,7 @@
+ which periodically get made about how locks might be different:
+
+ 1. Check for EROFS. Maybe useful, although in the presence of NFS
+- EROFS does *not* mean that the file system is unchanging.
++ EROFS does *not* mean that the filesystem is unchanging.
+
+ 2. Provide an option to disable locks for operations which only
+ read (see above for some of the consequences).
+@@ -1319,6 +1319,10 @@
+ lock->repository = Xasprintf ("%s/%s", xrepository, CVSROOTADM);
+ lock->free_repository = true;
+
++ /* do nothing if we know it fails anyway */
++ if (readonlyfs)
++ return 0;
++
+ /* get the lock dir for our own */
+ if (set_lock (lock, 1) != L_OK)
+ {
+--- cvs-1.12.13+real.orig/src/log-buffer.c
++++ cvs-1.12.13+real/src/log-buffer.c
+@@ -481,7 +481,7 @@
+ * We do this _after_ authentication on purpose. Wouldn't really like to
+ * worry about logging passwords...
+ */
+- if (log)
++ if (log && *log)
+ {
+ int len = strlen (log);
+ char *buf = xmalloc (len + 5);
+--- cvs-1.12.13+real.orig/src/log.c
++++ cvs-1.12.13+real/src/log.c
+@@ -1,4 +1,5 @@
+ /*
++ * Copyright © 2017 mirabilos <m@mirbsd.org>
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+@@ -145,6 +146,7 @@
+ RCSNode *, RCSVers *, int);
+ static int log_branch (Node *, void *);
+ static int version_compare (const char *, const char *, int);
++static void logm_output (const char *);
+
+ static struct log_data log_data;
+ static int is_rlog;
+@@ -1681,11 +1683,10 @@
+ cvs_output ("*** empty log message ***\n", 0);
+ else
+ {
++ /* assert: last thing cvs_output’ed was a newline */
+ /* FIXME: Technically, the log message could contain a null
+ byte. */
+- cvs_output (p->data, 0);
+- if (((char *)p->data)[strlen (p->data) - 1] != '\n')
+- cvs_output ("\n", 1);
++ logm_output(p->data);
+ }
+ }
+
+@@ -1780,3 +1781,23 @@
+ ++v2;
+ }
+ }
++
++static void
++logm_output(const char *str)
++{
++ /* assert: str is not empty */
++ size_t len = strlen(str);
++ int buftag = 'M';
++ static char has_logm = 0;
++
++ if (server_active) {
++ if (!has_logm)
++ has_logm = supported_response("LOGM") ? 1 : 2;
++ if (has_logm == 1)
++ buftag = CVS_OUTPUT_EX_LOGM;
++ }
++
++ cvs_output_ex(str, len, buftag);
++ if (/*len > 0 &&*/ str[len - 1] != '\n')
++ cvs_output_ex("\n", 1, buftag);
++}
+--- cvs-1.12.13+real.orig/src/login.c
++++ cvs-1.12.13+real/src/login.c
+@@ -44,7 +44,7 @@
+ char *passfile;
+
+ /* Environment should override file. */
+- if ((passfile = getenv ("CVS_PASSFILE")) != NULL)
++ if ((passfile = getenv ("CVS_PASSFILE")) != NULL && *passfile)
+ return xstrdup (passfile);
+
+ /* Construct absolute pathname to user's password file. */
+@@ -200,11 +200,21 @@
+ return NULL;
+ }
+ *p = ' ';
+- tmp_root_canonical = normalize_cvsroot (tmp_root);
+- if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
+- password = p + 1;
+-
+- free (tmp_root_canonical);
++ switch (tmp_root->method)
++ {
++ case gserver_method:
++ case pserver_method:
++#ifdef HAVE_KERBEROS
++ case kserver_method:
++#endif /* HAVE_KERBEROS */
++ tmp_root_canonical = normalize_cvsroot (tmp_root);
++ if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
++ password = p + 1;
++ free (tmp_root_canonical);
++ break;
++ default:
++ break;
++ }
+ }
+
+ return password;
+@@ -309,7 +319,9 @@
+ fp = CVS_FOPEN (passfile, "r");
+ if (fp == NULL)
+ {
++ if (errno != ENOENT) {
+ error (0, errno, "warning: failed to open %s for reading", passfile);
++ }
+ goto process;
+ }
+
+@@ -432,7 +444,7 @@
+ *
+ * I don't think so, unless we change the way rename_file works to
+ * attempt a cp/rm sequence when rename fails since rename doesn't
+- * work across file systems and it isn't uncommon to have /tmp
++ * work across filesystems and it isn't uncommon to have /tmp
+ * on its own partition.
+ *
+ * For that matter, it's probably not uncommon to have a home
+--- cvs-1.12.13+real.orig/src/logmsg.c
++++ cvs-1.12.13+real/src/logmsg.c
+@@ -1,5 +1,7 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2007 Benny Siegert <bsiegert@mirbsd.org>
++ * Copyright (c) 2005, 2006, 2008, 2010, 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -31,6 +33,8 @@
+ static FILE *fp;
+ static Ctype type;
+
++char *LogMsgFile = NULL;
++
+ struct verifymsg_proc_data
+ {
+ /* The name of the temp file storing the log message to be verified. This
+@@ -201,6 +205,7 @@
+ char *fname;
+ struct stat pre_stbuf, post_stbuf;
+ int retcode = 0;
++ int finish = 0;
+
+ assert (!current_parsed_root->isremote != !repository);
+
+@@ -224,6 +229,10 @@
+ (*messagep)[strlen (*messagep) - 1] != '\n')
+ (void) fprintf (fp, "\n");
+ }
++ else
++ (void) fputc ('\n', fp);
++ if (finish)
++ goto finish_off;
+
+ if (repository != NULL)
+ /* tack templates on if necessary */
+@@ -267,6 +276,9 @@
+ (void) fprintf (fp,
+ "%s----------------------------------------------------------------------\n",
+ CVSEDITPREFIX);
++ if (readonlyfs)
++ (void) fprintf (fp, "%sATTENTION: read-only mode selected!\n",
++ CVSEDITPREFIX);
+ (void) fprintf (fp,
+ "%sEnter Log. Lines beginning with `%.*s' are removed automatically\n%s\n",
+ CVSEDITPREFIX, CVSEDITPREFIXLEN, CVSEDITPREFIX,
+@@ -280,28 +292,38 @@
+ "%s----------------------------------------------------------------------\n",
+ CVSEDITPREFIX);
+
++ finish_off:
+ /* finish off the temp file */
+ if (fclose (fp) == EOF)
+ error (1, errno, "%s", fname);
+- if (stat (fname, &pre_stbuf) == -1)
++ if (LogMsgFile)
++ {
++ if (unlink_file (LogMsgFile) < 0)
++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
++ free (LogMsgFile);
++ }
++ LogMsgFile = fname;
++ if (finish)
++ return;
++ if (stat (LogMsgFile, &pre_stbuf) == -1)
+ pre_stbuf.st_mtime = 0;
+
+ /* run the editor */
+ run_setup (Editor);
+- run_add_arg (fname);
++ run_add_arg (LogMsgFile);
+ if ((retcode = run_exec (RUN_TTY, RUN_TTY, RUN_TTY,
+ RUN_NORMAL | RUN_SIGIGNORE)) != 0)
+ error (0, retcode == -1 ? errno : 0, "warning: editor session failed");
+
+ /* put the entire message back into the *messagep variable */
+
+- fp = xfopen (fname, "r");
++ fp = xfopen (LogMsgFile, "r");
+
+ if (*messagep)
+ free (*messagep);
+
+- if (stat (fname, &post_stbuf) != 0)
+- error (1, errno, "cannot find size of temp file %s", fname);
++ if (stat (LogMsgFile, &post_stbuf) != 0)
++ error (1, errno, "cannot find size of temp file %s", LogMsgFile);
+
+ if (post_stbuf.st_size == 0)
+ *messagep = NULL;
+@@ -326,7 +348,7 @@
+ if (line_length == -1)
+ {
+ if (ferror (fp))
+- error (0, errno, "warning: cannot read %s", fname);
++ error (0, errno, "warning: cannot read %s", LogMsgFile);
+ break;
+ }
+ if (strncmp (line, CVSEDITPREFIX, CVSEDITPREFIXLEN) == 0)
+@@ -339,7 +361,7 @@
+ }
+ }
+ if (fclose (fp) < 0)
+- error (0, errno, "warning: cannot close %s", fname);
++ error (0, errno, "warning: cannot close %s", LogMsgFile);
+
+ /* canonicalize emply messages */
+ if (*messagep != NULL &&
+@@ -349,7 +371,11 @@
+ *messagep = NULL;
+ }
+
+- if (pre_stbuf.st_mtime == post_stbuf.st_mtime || *messagep == NULL)
++ if (pre_stbuf.st_mtime == post_stbuf.st_mtime ||
++ *messagep == NULL ||
++ (*messagep)[0] == '\0' ||
++ strcmp (*messagep, "\n") == 0 ||
++ strcmp (*messagep, "\n\n") == 0)
+ {
+ for (;;)
+ {
+@@ -361,9 +387,11 @@
+ if (line_length < 0)
+ {
+ error (0, errno, "cannot read from stdin");
+- if (unlink_file (fname) < 0)
++ if (unlink_file (LogMsgFile) < 0)
+ error (0, errno,
+- "warning: cannot remove temp file %s", fname);
++ "warning: cannot remove temp file %s", LogMsgFile);
++ free (LogMsgFile);
++ LogMsgFile = NULL;
+ error (1, 0, "aborting");
+ }
+ else if (line_length == 0
+@@ -371,8 +399,10 @@
+ break;
+ if (*line == 'a' || *line == 'A')
+ {
+- if (unlink_file (fname) < 0)
+- error (0, errno, "warning: cannot remove temp file %s", fname);
++ if (unlink_file (LogMsgFile) < 0)
++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
++ free (LogMsgFile);
++ LogMsgFile = NULL;
+ error (1, 0, "aborted by user");
+ }
+ if (*line == 'e' || *line == 'E')
+@@ -387,15 +417,14 @@
+ }
+ if (line)
+ free (line);
+- if (unlink_file (fname) < 0)
+- error (0, errno, "warning: cannot remove temp file %s", fname);
+- free (fname);
++ finish = 1;
++ goto again;
+ }
+
+ /* Runs the user-defined verification script as part of the commit or import
+ process. This verification is meant to be run whether or not the user
+ included the -m attribute. unlike the do_editor function, this is
+- independant of the running of an editor for getting a message.
++ independent of the running of an editor for getting a message.
+ */
+ void
+ do_verify (char **messagep, const char *repository, List *changes)
+@@ -670,7 +699,7 @@
+ expand_string (c->buf, c->length,
+ doff + strlen (c->srepos) + 1);
+ d = *c->buf + doff;
+- strncpy (d, c->srepos, strlen (c->srepos));
++ memcpy (d, c->srepos, strlen (c->srepos));
+ d += strlen (c->srepos);
+ *d++ = ' ';
+ }
+@@ -690,7 +719,7 @@
+ doff = d - *c->buf;
+ expand_string (c->buf, c->length, doff + strlen (arg));
+ d = *c->buf + doff;
+- strncpy (d, arg, strlen (arg));
++ memcpy (d, arg, strlen (arg));
+ d += strlen (arg);
+ #ifdef SUPPORT_OLD_INFO_FMT_STRINGS
+ if (!c->onearg)
+@@ -785,6 +814,7 @@
+ `%s' is left as an exercise for the reader. */
+
+ /* %c = cvs_cmd_name
++ * %I = commit ID
+ * %p = shortrepos
+ * %r = repository
+ * %{sVv} = file name, old revision (precommit), new revision (postcommit)
+@@ -800,6 +830,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+@@ -922,6 +953,7 @@
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ script,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer
+ ? referrer->original : "NONE",
+@@ -975,3 +1007,20 @@
+ return abs (run_exec (RUN_TTY, RUN_TTY, RUN_TTY,
+ RUN_NORMAL | RUN_SIGIGNORE));
+ }
++
++void
++logmsg_cleanup (int err)
++{
++ if (!use_editor || LogMsgFile == NULL)
++ return;
++
++ if (err == 0)
++ {
++ if (unlink_file (LogMsgFile) < 0)
++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
++ }
++ else
++ error (0, 0, "your log message was saved in %s", LogMsgFile);
++ free (LogMsgFile);
++ LogMsgFile = NULL;
++}
+--- cvs-1.12.13+real.orig/src/ls.c
++++ cvs-1.12.13+real/src/ls.c
+@@ -3,6 +3,7 @@
+ * Copyright (c) 1989-1992, Brian Berliner
+ * Copyright (c) 2001, Tony Hoyle
+ * Copyright (c) 2004, Derek R. Price & Ximbiot <http://ximbiot.com>
++ * Copyright (c) 2005, 2021 mirabilos <m@mirbsd.org>
+ *
+ * You may distribute under the terms of the GNU General Public License as
+ * specified in the README file that comes with the CVS source distribution.
+@@ -456,7 +457,7 @@
+ /* Search for our parent directory. */
+ char *parent;
+ parent = xmalloc (strlen (update_dir) - strlen (dir) + 1);
+- strncpy (parent, update_dir, strlen (update_dir) - strlen (dir));
++ memcpy (parent, update_dir, strlen (update_dir) - strlen (dir));
+ parent[strlen (update_dir) - strlen (dir)] = '\0';
+ strip_trailing_slashes (parent);
+ p = findnode (callerdat, parent);
+--- cvs-1.12.13+real.orig/src/main.c
++++ cvs-1.12.13+real/src/main.c
+@@ -24,6 +24,10 @@
+ #include "strftime.h"
+ #include "xgethostname.h"
+
++#ifdef USE_LIBBSD
++uint32_t arc4random(void);
++#endif
++
+ const char *program_name;
+ const char *program_path;
+ const char *cvs_cmd_name;
+@@ -170,6 +174,7 @@
+ #ifdef SERVER_SUPPORT
+ { "server", NULL, NULL, server, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
+ #endif
++ { "suck", NULL, NULL, suck, 0 },
+ { "status", "st", "stat", cvsstatus, CVS_CMD_USES_WORK_DIR },
+ { "tag", "ta", "freeze", cvstag, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
+ { "unedit", NULL, NULL, unedit, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
+@@ -230,7 +235,7 @@
+ {
+ "CVS commands are:\n",
+ " add Add a new file/directory to the repository\n",
+- " admin Administration front end for rcs\n",
++ " admin Administration front-end for RCS\n",
+ " annotate Show last revision where each line was modified\n",
+ " checkout Checkout sources for editing\n",
+ " commit Check files into the repository\n",
+@@ -242,7 +247,7 @@
+ " import Import sources into CVS, using vendor branches\n",
+ " init Create a CVS repository if it doesn't exist\n",
+ #if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT)
+- " kserver Kerberos server mode\n",
++ " kserver Act in Kerberos server mode\n",
+ #endif
+ " log Print out history information for files\n",
+ #ifdef AUTH_CLIENT_SUPPORT
+@@ -251,18 +256,19 @@
+ #endif /* AUTH_CLIENT_SUPPORT */
+ " ls List files available from CVS\n",
+ #if (defined(AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)) && defined(SERVER_SUPPORT)
+- " pserver Password server mode\n",
++ " pserver Act in password server mode\n",
+ #endif
+ " rannotate Show last revision where each line of module was modified\n",
+- " rdiff Create 'patch' format diffs between releases\n",
+- " release Indicate that a Module is no longer in use\n",
++ " rdiff Create 'patch' format diffs between revisions\n",
++ " release Indicate that a work subdirectory is no longer in use\n",
+ " remove Remove an entry from the repository\n",
+ " rlog Print out history information for a module\n",
+ " rls List files in a module\n",
+ " rtag Add a symbolic tag to a module\n",
+ #ifdef SERVER_SUPPORT
+- " server Server mode\n",
++ " server Act in server mode\n",
+ #endif
++ " suck Download RCS ,v file raw\n",
+ " status Display status information on checked out files\n",
+ " tag Add a symbolic tag to checked out version of files\n",
+ " unedit Undo an edit command\n",
+@@ -283,6 +289,7 @@
+ " -q Cause CVS to be somewhat quiet.\n",
+ " -r Make checked-out files read-only.\n",
+ " -w Make checked-out files read-write (default).\n",
++ " -g Force group-write permissions on checked-out files.\n",
+ " -n Do not execute anything that will change the disk.\n",
+ " -t Show trace of program execution (repeat for more\n",
+ " verbosity) -- try with -n.\n",
+@@ -458,46 +465,6 @@
+
+
+
+-
+-enum {RANDOM_BYTES = 8};
+-enum {COMMITID_RAW_SIZE = (sizeof(time_t) + RANDOM_BYTES)};
+-
+-static char const alphabet[62] =
+- "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+-
+-/* Divide BUF by D, returning the remainder. Replace BUF by the
+- quotient. BUF[0] is the most significant part of BUF.
+- D must not exceed UINT_MAX >> CHAR_BIT. */
+-static unsigned int
+-divide_by (unsigned char buf[COMMITID_RAW_SIZE], unsigned int d)
+-{
+- unsigned int carry = 0;
+- int i;
+- for (i = 0; i < COMMITID_RAW_SIZE; i++)
+- {
+- unsigned int byte = buf[i];
+- unsigned int dividend = (carry << CHAR_BIT) + byte;
+- buf[i] = dividend / d;
+- carry = dividend % d;
+- }
+- return carry;
+-}
+-
+-static void
+-convert (char const input[COMMITID_RAW_SIZE], char *output)
+-{
+- static char const zero[COMMITID_RAW_SIZE] = { 0, };
+- unsigned char buf[COMMITID_RAW_SIZE];
+- size_t o = 0;
+- memcpy (buf, input, COMMITID_RAW_SIZE);
+- while (memcmp (buf, zero, COMMITID_RAW_SIZE) != 0)
+- output[o++] = alphabet[divide_by (buf, sizeof alphabet)];
+- if (! o)
+- output[o++] = '0';
+- output[o] = '\0';
+-}
+-
+-
+ int
+ main (int argc, char **argv)
+ {
+@@ -511,7 +478,7 @@
+ int help = 0; /* Has the user asked for help? This
+ lets us support the `cvs -H cmd'
+ convention to give help for cmd. */
+- static const char short_options[] = "+QqrwtnRvb:T:e:d:Hfz:s:xa";
++ static const char short_options[] = "+QqrwgtnRvb:T:e:d:Hfz:s:xal";
+ static struct option long_options[] =
+ {
+ {"help", 0, NULL, 'H'},
+@@ -521,6 +488,7 @@
+ {"help-options", 0, NULL, 4},
+ #ifdef SERVER_SUPPORT
+ {"allow-root", required_argument, NULL, 3},
++ {"allow-root-regexp", required_argument, NULL, 14},
+ #endif /* SERVER_SUPPORT */
+ {0, 0, 0, 0}
+ };
+@@ -562,11 +530,11 @@
+ * Query the environment variables up-front, so that
+ * they can be overridden by command line arguments
+ */
+- if ((cp = getenv (EDITOR1_ENV)) != NULL)
++ if ((cp = getenv (EDITOR1_ENV)) != NULL && *cp)
+ Editor = cp;
+- else if ((cp = getenv (EDITOR2_ENV)) != NULL)
++ else if ((cp = getenv (EDITOR2_ENV)) != NULL && *cp)
+ Editor = cp;
+- else if ((cp = getenv (EDITOR3_ENV)) != NULL)
++ else if ((cp = getenv (EDITOR3_ENV)) != NULL && *cp)
+ Editor = cp;
+ if (getenv (CVSREAD_ENV) != NULL)
+ cvswrite = 0;
+@@ -645,6 +613,10 @@
+ /* --allow-root */
+ root_allow_add (optarg, gConfigPath);
+ break;
++ case 14:
++ /* --allow-root-regexp */
++ root_allow_regexp_add (optarg, gConfigPath);
++ break;
+ #endif /* SERVER_SUPPORT */
+ case 'Q':
+ really_quiet = 1;
+@@ -658,6 +630,13 @@
+ case 'w':
+ cvswrite = 1;
+ break;
++ case 'g':
++ /*
++ * Force full write permissions for the group.
++ * See the user's manual for details and dangers.
++ */
++ umask(umask(S_IRWXG|S_IRWXO) & S_IRWXO);
++ break;
+ case 't':
+ trace++;
+ break;
+@@ -669,14 +648,18 @@
+ noexec = 1;
+ logoff = 1;
+ break;
++ case 'l':
++ /* no-op to simply ignore the old -l option */
++ break;
+ case 'v':
+ (void) fputs ("\n", stdout);
+ version (0, NULL);
+ (void) fputs ("\n", stdout);
+ (void) fputs ("\
+ Copyright (C) 2005 Free Software Foundation, Inc.\n\
++Copyright (c) 2021 mirabilos <m@mirbsd.org>\n\
+ \n\
+-Senior active maintainers include Larry Jones, Derek R. Price,\n\
++Senior no longer active maintainers include Larry Jones, Derek R. Price,\n\
+ and Mark D. Baushke. Please see the AUTHORS and README files from the CVS\n\
+ distribution kit for a complete list of contributors and copyrights.\n",
+ stdout);
+@@ -764,56 +747,12 @@
+ if (argc < 1)
+ usage (usg);
+
+- if (readonlyfs && !really_quiet) {
+- error (0, 0,
+- "WARNING: Read-only repository access mode selected via `cvs -R'.\n\
+-Using this option to access a repository which some users write to may\n\
+-cause intermittent sandbox corruption.");
+- }
+-
+ /* Calculate the cvs global session ID */
+
+- {
+- char buf[COMMITID_RAW_SIZE] = { 0, };
+- char out[COMMITID_RAW_SIZE * 2];
+- ssize_t len = 0;
+- time_t rightnow = time (NULL);
+- char *startrand = buf + sizeof (time_t);
+- unsigned char *p = (unsigned char *) startrand;
+- size_t randbytes = RANDOM_BYTES;
+- int flags = O_RDONLY;
+- int fd;
+-#ifdef O_NOCTTY
+- flags |= O_NOCTTY;
+-#endif
+- if (rightnow != (time_t)-1)
+- while (rightnow > 0) {
+- *--p = rightnow % (UCHAR_MAX + 1);
+- rightnow /= UCHAR_MAX + 1;
+- }
+- else {
+- /* try to use more random data */
+- randbytes = COMMITID_RAW_SIZE;
+- startrand = buf;
+- }
+- fd = open ("/dev/urandom", flags);
+- if (fd >= 0) {
+- len = read (fd, startrand, randbytes);
+- close (fd);
+- }
+- if (len <= 0) {
+- /* no random data was available so use pid */
+- long int pid = (long int)getpid ();
+- p = (unsigned char *) (startrand + sizeof (pid));
+- while (pid > 0) {
+- *--p = pid % (UCHAR_MAX + 1);
+- pid /= UCHAR_MAX + 1;
+- }
+- }
+- convert(buf, out);
+- global_session_id = strdup (out);
+- }
+-
++ global_session_id = Xasprintf("1%010llX%04X%04X",
++ (unsigned long long)time(NULL),
++ (unsigned int)(getpid() & 0xFFFF),
++ (unsigned int)(arc4random() & 0xFFFF));
+
+ TRACE (TRACE_FUNCTION, "main: Session ID is %s", global_session_id);
+
+@@ -856,7 +795,7 @@
+ a command-line flag to set the umask, since we'll have to
+ parse it before we get here. */
+
+- if ((cp = getenv (CVSUMASK_ENV)) != NULL)
++ if ((cp = getenv (CVSUMASK_ENV)) != NULL && *cp)
+ {
+ /* FIXME: Should be accepting symbolic as well as numeric mask. */
+ cvsumask = strtol (cp, &end, 8) & 0777;
+@@ -992,7 +931,7 @@
+ if (!CVSroot_parsed)
+ {
+ char *tmp = getenv (CVSROOT_ENV);
+- if (tmp)
++ if (tmp && *tmp)
+ {
+ if (!(CVSroot_parsed = parse_cvsroot (tmp)))
+ error (1, 0, "Bad CVSROOT: `%s'.", tmp);
+@@ -1011,7 +950,7 @@
+ /* Now we've reconciled CVSROOT from the command line, the
+ CVS/Root file, and the environment variable. Do the
+ last sanity checks on the variable. */
+- if (!CVSroot_parsed)
++ if (!CVSroot_parsed && cm->func != version)
+ {
+ error (0, 0,
+ "No CVSROOT specified! Please use the `-d' option");
+@@ -1043,6 +982,11 @@
+
+ assert (current_parsed_root == NULL);
+
++ /* Handle running 'cvs version' with no CVSROOT. */
++
++ if (cm->func == version && !CVSroot_parsed)
++ server_active = !0;
++
+ /* If we're running the server, we want to execute this main
+ loop once and only once (we won't be serving multiple roots
+ from this connection, so there's no need to do it more than
+@@ -1173,6 +1117,7 @@
+ dellist (&root_directories);
+ } /* end of stuff that gets done if the user DOESN'T ask for help */
+
++ config = NULL;
+ root_allow_free ();
+
+ /* This is exit rather than return because apparently that keeps
+@@ -1244,7 +1189,7 @@
+ if (*++p)
+ {
+ if (*date) free (*date);
+- *date = Make_Date (p);
++ *date = strcmp (p, "BASE") ? Make_Date (p) : xstrdup (p);
+ }
+ }
+ else if (strlen (input))
+@@ -1285,7 +1230,7 @@
+ ftm = localtime (&unixtime);
+
+ (void) sprintf (date, DATEFORM,
+- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
+ ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
+ ftm->tm_min, ftm->tm_sec);
+ ret = xstrdup (date);
+@@ -1315,8 +1260,10 @@
+ void
+ date_to_tm (struct tm *dest, const char *source)
+ {
++ int y;
++
+ if (sscanf (source, SDATEFORM,
+- &dest->tm_year, &dest->tm_mon, &dest->tm_mday,
++ &y, &dest->tm_mon, &dest->tm_mday,
+ &dest->tm_hour, &dest->tm_min, &dest->tm_sec)
+ != 6)
+ /* Is there a better way to handle errors here? I made this
+@@ -1324,9 +1271,7 @@
+ deal with fatal errors. */
+ error (0, 0, "internal error: bad date %s", source);
+
+- if (dest->tm_year > 100)
+- dest->tm_year -= 1900;
+-
++ dest->tm_year = y - ((y > 100) ? 1900 : 0);
+ dest->tm_mon -= 1;
+ }
+
+@@ -1348,10 +1293,10 @@
+ {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
+
+- sprintf (dest, "%d %s %d %02d:%02d:%02d -0000", source->tm_mday,
++ sprintf (dest, "%d %s %ld %02d:%02d:%02d -0000", source->tm_mday,
+ source->tm_mon < 0 || source->tm_mon > 11
+ ? "???" : month_names[source->tm_mon],
+- source->tm_year + 1900, source->tm_hour, source->tm_min,
++ (long)source->tm_year + 1900, source->tm_hour, source->tm_min,
+ source->tm_sec);
+ }
+
+@@ -1458,7 +1403,7 @@
+ {
+ (void) fprintf (stderr, *cpp++, program_name, cvs_cmd_name);
+ for (; *cpp; cpp++)
+- (void) fprintf (stderr, *cpp);
++ (void) fprintf (stderr, "%s", *cpp);
+ exit (EXIT_FAILURE);
+ }
+
+--- cvs-1.12.13+real.orig/src/mkmodules.c
++++ cvs-1.12.13+real/src/mkmodules.c
+@@ -19,9 +19,9 @@
+ #define DBLKSIZ 4096 /* since GNU ndbm doesn't define it */
+ #endif
+
+-static int checkout_file (char *file, char *temp);
++static int checkout_file (const char *file, char *temp);
+ static char *make_tempfile (void);
+-static void rename_rcsfile (char *temp, char *real);
++static void rename_rcsfile (const char *temp, const char *real);
+
+ #ifndef MY_NDBM
+ static void rename_dbmfile (char *temp);
+@@ -31,13 +31,13 @@
+ /* Structure which describes an administrative file. */
+ struct admin_file {
+ /* Name of the file, within the CVSROOT directory. */
+- char *filename;
++ const char *filename;
+
+ /* This is a one line description of what the file is for. It is not
+ currently used, although one wonders whether it should be, somehow.
+ If NULL, then don't process this file in mkmodules (FIXME?: a bit of
+ a kludge; probably should replace this with a flags field). */
+- char *errormsg;
++ const char *errormsg;
+
+ /* Contents which the file should have in a new repository. To avoid
+ problems with brain-dead compilers which choke on long string constants,
+@@ -68,6 +68,7 @@
+ "# If any format strings are present in the filter, they will be replaced\n",
+ "# as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -82,7 +83,7 @@
+ "# Thus %{sv} is a legal format string, but will only be replaced with\n",
+ "# file name and new revision.\n",
+ "# It also generates multiple arguments for each file being operated upon.\n",
+- "# That is, if two files, file1 & file2, are being commited from 1.1 to\n",
++ "# That is, if two files, file1 & file2, are being committed from 1.1 to\n",
+ "# version 1.1.2.1 and from 1.1.2.2 to 1.1.2.3, respectively, %{sVv} will\n",
+ "# generate the following six arguments in this order:\n",
+ "# file1, 1.1, 1.1.2.1, file2, 1.1.2.2, 1.1.2.3.\n",
+@@ -124,13 +125,14 @@
+ "#\n",
+ "# Making sure that the entered bug-id number is correct.\n",
+ "# Validating that the code that was reviewed is indeed the code being\n",
+- "# checked in (using the bug-id number or a seperate review\n",
++ "# checked in (using the bug-id number or a separate review\n",
+ "# number to identify this particular code set.).\n",
+ "#\n",
+ "# If any of the above test failed, then the commit would be aborted.\n",
+ "#\n",
+ "# Format strings present in the filter will be replaced as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -152,8 +154,8 @@
+
+ static const char *const commitinfo_contents[] = {
+ "# The \"commitinfo\" file is used to control pre-commit checks.\n",
+- "# The filter on the right is invoked with the repository and a list \n",
+- "# of files to check. A non-zero exit of the filter program will \n",
++ "# The filter on the right is invoked with the repository and a list\n",
++ "# of files to check. A non-zero exit of the filter program will\n",
+ "# cause the commit to be aborted.\n",
+ "#\n",
+ "# The first entry on a line is a regular expression which is tested\n",
+@@ -163,6 +165,7 @@
+ "#\n",
+ "# Format strings present in the filter will be replaced as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -199,6 +202,7 @@
+ "# | \"N\" (not branch)\n",
+ "# %o = operation = \"add\" | \"mov\" | \"del\"\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -245,6 +249,7 @@
+ "# If any format strings are present in the filter, they will be replaced\n",
+ "# as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -271,6 +276,7 @@
+ "# If any format strings are present in the filter, they will be replaced\n",
+ "# as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -299,6 +305,7 @@
+ "# If any format strings are present in the filter, they will be replaced\n",
+ "# as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -328,6 +335,7 @@
+ "# | \"N\" (not branch)\n",
+ "# %o = operation = \"add\" | \"mov\" | \"del\"\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -363,11 +371,12 @@
+
+ static const char *const postwatch_contents[] = {
+ "# The \"postwatch\" file is called after any command finishes writing new\n",
+- "# file attibute (watch/edit) information in a directory.\n",
++ "# file attribute (watch/edit) information in a directory.\n",
+ "#\n",
+ "# If any format strings are present in the filter, they will be replaced\n",
+ "# as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -446,6 +455,7 @@
+ "#\n",
+ "# format strings are replaceed as follows:\n",
+ "# %c = canonical name of the command being executed\n",
++ "# %I = unique (randomly generated) commit ID\n",
+ #ifdef PROXY_SUPPORT
+ "# %R = the name of the referrer, if any, otherwise the value NONE\n",
+ #endif
+@@ -465,11 +475,10 @@
+ "# key [options] directory files...\n",
+ "#\n",
+ "# Where \"options\" are composed of:\n",
+- "# -i prog Run \"prog\" on \"cvs commit\" from top-level of module.\n",
+ "# -o prog Run \"prog\" on \"cvs checkout\" of module.\n",
+ "# -e prog Run \"prog\" on \"cvs export\" of module.\n",
++ "# -s status Assign a status to the module.\n",
+ "# -t prog Run \"prog\" on \"cvs rtag\" of module.\n",
+- "# -u prog Run \"prog\" on \"cvs update\" of module.\n",
+ "# -d dir Place module in directory \"dir\" instead of module name.\n",
+ "# -l Top-level directory only -- do not recurse.\n",
+ "#\n",
+@@ -489,67 +498,68 @@
+ };
+
+ static const char *const config_contents[] = {
+- "# Set `SystemAuth' to `no' if pserver shouldn't check system users/passwords.\n",
++ "# Set 'SystemAuth' to 'no' if pserver shouldn't check system users/passwords.\n",
+ "#SystemAuth=no\n",
+ "\n",
+- "# Set `LocalKeyword' to specify a local alias for a standard keyword.\n",
++ "# Set 'LocalKeyword' to specify a local alias for a standard keyword.\n",
+ "#LocalKeyword=MYCVS=CVSHeader\n",
+ "\n",
+- "# Set `KeywordExpand' to `i' followed by a list of keywords to expand or\n",
+- "# `e' followed by a list of keywords to not expand.\n"
+- "#KeywordExpand=iMYCVS,Name,Date\n",
++ "# Set 'KeywordExpand' to 'i' followed by a list of keywords to expand or\n",
++ "# 'e' followed by a list of keywords to not expand.\n"
++ "#KeywordExpand=iMYCVS,Name,Date,Mdocdate\n",
+ "#KeywordExpand=eCVSHeader\n",
+ "\n",
+ #ifdef PRESERVE_PERMISSIONS_SUPPORT
+- "# Set `PreservePermissions' to `yes' to save file status information\n",
++ "# Set 'PreservePermissions' to 'yes' to save file status information\n",
+ "# in the repository.\n",
+ "#PreservePermissions=no\n",
+ "\n",
+ #endif
+- "# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top\n",
+- "# level of the new working directory when using the `cvs checkout'\n",
++ "# Set 'TopLevelAdmin' to 'yes' to create a CVS directory at the top\n",
++ "# level of the new working directory when using the 'cvs checkout'\n",
+ "# command.\n",
+ "#TopLevelAdmin=no\n",
+ "\n",
+ "# Put CVS lock files in this directory rather than directly in the repository.\n",
+ "#LockDir=/var/lock/cvs\n",
+ "\n",
+- "# Set `LogHistory' to `all' or `" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n",
+- "# history file, or a subset as needed (ie `TMAR' logs all write operations)\n",
++ "# Set 'LogHistory' to 'all' or '" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n",
++ "# history file, or a subset as needed (ie 'TMAR' logs all write operations)\n",
+ "#LogHistory=" ALL_HISTORY_REC_TYPES "\n",
++ "LogHistory=TMAR\n",
+ "\n",
+- "# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg\n",
+- "# script to change the log message. Set it to `stat' to force CVS to verify\n",
++ "# Set 'RereadLogAfterVerify' to 'always' (the default) to allow the verifymsg\n",
++ "# script to change the log message. Set it to 'stat' to force CVS to verify\n",
+ "# that the file has changed before reading it (this can take up to an extra\n",
+ "# second per directory being committed, so it is not recommended for large\n",
+- "# repositories. Set it to `never' (the previous CVS behavior) to prevent\n",
++ "# repositories. Set it to 'never' (the previous CVS behavior) to prevent\n",
+ "# verifymsg scripts from changing the log message.\n",
+ "#RereadLogAfterVerify=always\n",
+ "\n",
+- "# Set `UserAdminOptions' to the list of `cvs admin' commands (options)\n",
+- "# that users not in the `cvsadmin' group are allowed to run. This\n",
+- "# defaults to `k', or only allowing the changing of the default\n",
+- "# keyword expansion mode for files for users not in the `cvsadmin' group.\n",
+- "# This value is ignored if the `cvsadmin' group does not exist.\n",
++ "# Set 'UserAdminOptions' to the list of 'cvs admin' commands (options)\n",
++ "# that users not in the '_cvsadmin' group are allowed to run. This\n",
++ "# defaults to 'k', or only allowing the changing of the default\n",
++ "# keyword expansion mode for files for users not in the '_cvsadmin' group.\n",
++ "# This value is ignored if the '_cvsadmin' group does not exist.\n",
+ "#\n",
+- "# The following string would enable all `cvs admin' commands for all\n",
++ "# The following string would enable all 'cvs admin' commands for all\n",
+ "# users:\n",
+ "#UserAdminOptions=aAbceIklLmnNostuU\n",
+ #ifdef SUPPORT_OLD_INFO_FMT_STRINGS
+ "\n",
+- "# Set `UseNewInfoFmtStrings' to `no' if you must support a legacy system by\n",
++ "# Set 'UseNewInfoFmtStrings' to 'no' if you must support a legacy system by\n",
+ "# enabling the deprecated old style info file command line format strings.\n",
+ "# Be warned that these strings could be disabled in any new version of CVS.\n",
+ "UseNewInfoFmtStrings=yes\n",
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ "\n",
+- "# Set `ImportNewFilesToVendorBranchOnly' to `yes' if you wish to force\n",
+- "# every `cvs import' command to behave as if the `-X' flag was\n",
++ "# Set 'ImportNewFilesToVendorBranchOnly' to 'yes' if you wish to force\n",
++ "# every 'cvs import' command to behave as if the '-X' flag was\n",
+ "# specified.\n",
+ "#ImportNewFilesToVendorBranchOnly=no\n",
+ #ifdef PROXY_SUPPORT
+ "\n",
+- "# Set `PrimaryServer' to the CVSROOT to the primary, or write, server when\n",
++ "# Set 'PrimaryServer' to the CVSROOT to the primary, or write, server when\n",
+ "# establishing one or more read-only mirrors which serve as proxies for\n",
+ "# the write server in write mode or redirect the client to the primary for\n",
+ "# write requests.\n",
+@@ -558,13 +568,13 @@
+ "#\n",
+ "# PrimaryServer=:fork:localhost/cvsroot\n",
+ "\n",
+- "# Set `MaxProxyBufferSize' to the the maximum allowable secondary\n",
++ "# Set 'MaxProxyBufferSize' to the the maximum allowable secondary\n",
+ "# buffer memory cache size before the buffer begins being stored to disk, in\n",
+- "# bytes. Must be a positive integer but may end in `k', `M', `G', or `T' (for\n",
+- "# kiilo, mega, giga, & tera, respectively). If an otherwise valid number you\n",
++ "# bytes. Must be a positive integer but may end in 'K', 'M', 'G', or 'T' (for\n",
++ "# Kibi, Mebi, Gibi, & Tebi, respectively). If an otherwise valid number you\n",
+ "# specify is greater than the SIZE_MAX defined by your system's C compiler,\n",
+ "# then it will be resolved to SIZE_MAX without a warning. Defaults to 8M (8\n",
+- "# megabytes).\n",
++ "# Mebibytes). The 'i' from 'Ki', 'Mi', etc. is omitted.\n",
+ "#\n",
+ "# High values for MaxProxyBufferSize may speed up a secondary server\n",
+ "# with old hardware and a lot of available memory but can actually slow a\n",
+@@ -575,23 +585,23 @@
+ "# MaxProxyBufferSize=1G\n",
+ #endif /* PROXY_SUPPORT */
+ "\n",
+- "# Set `MaxCommentLeaderLength' to the maximum length permitted for the\n",
++ "# Set 'MaxCommentLeaderLength' to the maximum length permitted for the\n",
+ "# automagically determined comment leader used when expanding the Log\n",
+ "# keyword, in bytes. CVS's behavior when the automagically determined\n",
+- "# comment leader exceeds this length is dependant on the value of\n",
+- "# `UseArchiveCommentLeader' set in this file. `unlimited' is a valid\n",
++ "# comment leader exceeds this length is dependent on the value of\n",
++ "# 'UseArchiveCommentLeader' set in this file. 'unlimited' is a valid\n",
+ "# setting for this value. Defaults to 20 bytes.\n",
+ "#\n",
+ "# For example:\n",
+ "#\n",
+ "# MaxCommentLeaderLength=20\n",
+ "\n",
+- "# Set `UseArchiveCommentLeader' to `yes' to cause CVS to fall back on\n",
++ "# Set 'UseArchiveCommentLeader' to 'yes' to cause CVS to fall back on\n",
+ "# the comment leader set in the RCS archive file, if any, when the\n",
+- "# automagically determined comment leader exceeds `MaxCommentLeaderLength'\n",
+- "# bytes. If `UseArchiveCommentLeader' is not set and a comment leader\n",
+- "# greater than `MaxCommentLeaderLength' is calculated, the Log keyword\n",
+- "# being examined will not be expanded. Defaults to `no'.\n",
++ "# automagically determined comment leader exceeds 'MaxCommentLeaderLength'\n",
++ "# bytes. If 'UseArchiveCommentLeader' is not set and a comment leader\n",
++ "# greater than 'MaxCommentLeaderLength' is calculated, the Log keyword\n",
++ "# being examined will not be expanded. Defaults to 'no'.\n",
+ "#\n",
+ "# For example:\n",
+ "#\n",
+@@ -816,7 +826,7 @@
+ }
+
+ if (restore_cwd (&cwd))
+- error (1, errno, "Failed to restore current directory, `%s'.",
++ error (1, errno, "Failed to restore current directory, '%s'.",
+ cwd.name);
+ free_cwd (&cwd);
+
+@@ -857,7 +867,7 @@
+ there is an error, print a message and return 1 (FIXME: probably
+ not a very clean convention). On success, return 0. */
+ static int
+-checkout_file (char *file, char *temp)
++checkout_file (const char *file, char *temp)
+ {
+ char *rcs;
+ RCSNode *rcsnode;
+@@ -878,7 +888,7 @@
+ {
+ /* Probably not necessary (?); RCS_parsercsfile already printed a
+ message. */
+- error (0, 0, "Failed to parse `%s'.", rcs);
++ error (0, 0, "Failed to parse '%s'.", rcs);
+ free (rcs);
+ return 1;
+ }
+@@ -962,20 +972,22 @@
+ key.dptr = vp;
+ while (*vp && !isspace ((unsigned char) *vp))
+ vp++;
+- key.dsize = vp - key.dptr;
++ key.dsize = vp - (char *)key.dptr;
+ *vp++ = '\0'; /* NULL terminate the key */
+ while (*vp && isspace ((unsigned char) *vp))
+ vp++; /* skip whitespace to value */
+ if (*vp == '\0')
+ {
+- error (0, 0, "warning: NULL value for key `%s'", key.dptr);
++ error (0, 0, "warning: NULL value for key '%s'",
++ (char *)key.dptr);
+ continue;
+ }
+ val.dptr = vp;
+ val.dsize = strlen (vp);
+ if (dbm_store (db, key, val, DBM_INSERT) == 1)
+ {
+- error (0, 0, "duplicate key found for `%s'", key.dptr);
++ error (0, 0, "duplicate key found for '%s'",
++ (char *)key.dptr);
+ err++;
+ }
+ }
+@@ -1097,7 +1109,7 @@
+ #endif /* !MY_NDBM */
+
+ static void
+-rename_rcsfile (char *temp, char *real)
++rename_rcsfile (const char *temp, const char *real)
+ {
+ char *bak;
+ struct stat statbuf;
+@@ -1175,6 +1187,9 @@
+ which needs to be created. */
+ mkdir_if_needed (current_parsed_root->directory);
+
++ if (noexec)
++ return (0);
++
+ adm = Xasprintf ("%s/%s", current_parsed_root->directory, CVSROOTADM);
+ mkdir_if_needed (adm);
+
+@@ -1237,8 +1252,8 @@
+ }
+ }
+
+- /* Turn on history logging by default. The user can remove the file
+- to disable it. */
++ /* Turn on history logging of write operations by default.
++ The user can remove the file to disable it. */
+ strcpy (info, adm);
+ strcat (info, "/");
+ strcat (info, CVSROOTADM_HISTORY);
+@@ -1249,11 +1264,6 @@
+ fp = xfopen (info, "w");
+ if (fclose (fp) < 0)
+ error (1, errno, "cannot close %s", info);
+-
+- /* Make the new history file world-writeable, since every CVS
+- user will need to be able to write to it. We use chmod()
+- because xchmod() is too shy. */
+- chmod (info, 0666);
+ }
+
+ /* Make an empty val-tags file to prevent problems creating it later. */
+@@ -1267,11 +1277,6 @@
+ fp = xfopen (info, "w");
+ if (fclose (fp) < 0)
+ error (1, errno, "cannot close %s", info);
+-
+- /* Make the new val-tags file world-writeable, since every CVS
+- user will need to be able to write to it. We use chmod()
+- because xchmod() is too shy. */
+- chmod (info, 0666);
+ }
+
+ free (info);
+--- cvs-1.12.13+real.orig/src/modules.c
++++ cvs-1.12.13+real/src/modules.c
+@@ -450,7 +450,7 @@
+ case '?':
+ error (0, 0,
+ "modules file has invalid option for key %s value %s",
+- key.dptr, value);
++ (char *)key.dptr, value);
+ err++;
+ goto do_module_return;
+ }
+--- cvs-1.12.13+real.orig/src/parseinfo.c
++++ cvs-1.12.13+real/src/parseinfo.c
+@@ -230,7 +230,7 @@
+ return true;
+ }
+
+- /* Record the factor character (kilo, mega, giga, tera). */
++ /* Record the factor character (kibi, mebi, gibi, tebi). */
+ if (!isdigit (p[strlen(p) - 1]))
+ {
+ switch (p[strlen(p) - 1])
+@@ -241,16 +241,16 @@
+ factor = xtimes (factor, 1024);
+ case 'M':
+ factor = xtimes (factor, 1024);
+- case 'k':
++ case 'K':
+ factor = xtimes (factor, 1024);
+ break;
+ default:
+ error (0, 0,
+ "%s: Unknown %s factor: `%c'",
+- infopath, option, p[strlen(p)]);
++ infopath, option, p[strlen(p) - 1]);
+ return false;
+ }
+- TRACE (TRACE_DATA, "readSizeT(): Found factor %u for %s",
++ TRACE (TRACE_DATA, "readSizeT(): Found factor %zu for %s",
+ factor, option);
+ }
+
+@@ -274,9 +274,9 @@
+ /* Don't return an error, just max out. */
+ num = SIZE_MAX;
+
+- TRACE (TRACE_DATA, "readSizeT(): read number %u for %s", num, option);
++ TRACE (TRACE_DATA, "readSizeT(): read number %zu for %s", num, option);
+ *val = xtimes (strtoul (p, NULL, 10), factor);
+- TRACE (TRACE_DATA, "readSizeT(): returnning %u for %s", *val, option);
++ TRACE (TRACE_DATA, "readSizeT(): returnning %zu for %s", *val, option);
+ return true;
+ }
+
+@@ -298,7 +298,7 @@
+ new->MaxCompressionLevel = 9;
+ #endif /* SERVER_SUPPORT */
+ #ifdef PROXY_SUPPORT
+- new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 megabytes,
++ new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 mebibytes,
+ * by default.
+ */
+ #endif /* PROXY_SUPPORT */
+@@ -392,6 +392,9 @@
+ */
+ bool processing = true;
+ bool processed = true;
++#ifdef SERVER_SUPPORT
++ size_t dummy_sizet;
++#endif
+
+ TRACE (TRACE_FUNCTION, "parse_config (%s)", cvsroot);
+
+@@ -613,18 +616,23 @@
+ }
+ else if (strcmp (line, "LogHistory") == 0)
+ {
+- if (strcmp (p, "all") != 0)
+- {
+- static bool gotone = false;
+- if (gotone)
+- error (0, 0, "\
++ static char *prevpath = NULL;
++ static unsigned int prevln;
++
++ if (prevpath != NULL) {
++ error (0, 0, "\
+ %s [%u]: warning: duplicate LogHistory entry found.",
+- infopath, ln);
+- else
+- gotone = true;
+- free (retval->logHistory);
+- retval->logHistory = xstrdup (p);
++ infopath, ln);
++ error (0, 0, "\
++%s [%u]: notice: this was the first definition.",
++ prevpath, prevln);
++ } else {
++ prevln = ln;
++ prevpath = xstrdup(infopath);
+ }
++ free(retval->logHistory);
++ retval->logHistory = xstrdup(strcmp(p, "all") ? p :
++ ALL_HISTORY_REC_TYPES);
+ }
+ else if (strcmp (line, "RereadLogAfterVerify") == 0)
+ {
+@@ -689,13 +697,44 @@
+ readBool (infopath, "UseArchiveCommentLeader", p,
+ &retval->UseArchiveCommentLeader);
+ #ifdef SERVER_SUPPORT
+- else if (!strcmp (line, "MinCompressionLevel"))
+- readSizeT (infopath, "MinCompressionLevel", p,
+- &retval->MinCompressionLevel);
+- else if (!strcmp (line, "MaxCompressionLevel"))
+- readSizeT (infopath, "MaxCompressionLevel", p,
+- &retval->MaxCompressionLevel);
++ else if (!strcmp (line, "MinCompressionLevel")) {
++ readSizeT (infopath, "MinCompressionLevel", p, &dummy_sizet);
++ retval->MinCompressionLevel = dummy_sizet;
++ }
++ else if (!strcmp (line, "MaxCompressionLevel")) {
++ readSizeT (infopath, "MaxCompressionLevel", p, &dummy_sizet);
++ retval->MaxCompressionLevel = dummy_sizet;
++ }
+ #endif /* SERVER_SUPPORT */
++ else if (!strcmp (line, "tag")) {
++ char *pp;
++
++ pp = Xasprintf("%s=Id", p);
++ RCS_setlocalid (infopath, ln, &retval->keywords, pp);
++ free(pp);
++
++#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
++ error (0, 0, "%s: found keyword '%s' in repository",
++ infopath, line);
++ error (readonlyfs ? 0 : 1, 0, readonlyfs
++ ? "Danger: Granting read access to incompatible repository!"
++ : "Do not try to access a cvs 1.11 repository!");
++#endif
++ }
++#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
++ else if ((!strcmp (line, "umask"))
++ || (!strcmp (line, "DisableXProg")) || (!strcmp (line, "dlimit"))
++ || (!strcmp (line, "forceReadOnlyFS"))) {
++ /* We are dealing with keywords removed between cvs 1.11.1p1
++ and cvs 1.12.10; odds are we are not being able to handle
++ access or concurrent access with 1.11 cvs correctly */
++ error (0, 0, "%s: found keyword '%s' in repository",
++ infopath, line);
++ error (readonlyfs ? 0 : 1, 0, readonlyfs
++ ? "Danger: Granting read access to incompatible repository!"
++ : "Do not try to access a cvs 1.11 repository!");
++ }
++#endif
+ else
+ /* We may be dealing with a keyword which was added in a
+ subsequent version of CVS. In that case it is a good idea
+--- cvs-1.12.13+real.orig/src/parseinfo.h
++++ cvs-1.12.13+real/src/parseinfo.h
+@@ -1,3 +1,5 @@
++/* $MirOS: src/gnu/usr.bin/cvs/src/parseinfo.h,v 1.4 2010/09/19 19:43:07 tg Exp $ */
++
+ /*
+ * Copyright (c) 2004 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and the Free Software Foundation
+@@ -53,8 +55,8 @@
+ size_t MaxProxyBufferSize;
+ #endif /* PROXY_SUPPORT */
+ #ifdef SERVER_SUPPORT
+- size_t MinCompressionLevel;
+- size_t MaxCompressionLevel;
++ unsigned MinCompressionLevel;
++ unsigned MaxCompressionLevel;
+ #endif /* SERVER_SUPPORT */
+ #ifdef PRESERVE_PERMISSIONS_SUPPORT
+ bool preserve_perms;
+--- cvs-1.12.13+real.orig/src/patch.c
++++ cvs-1.12.13+real/src/patch.c
+@@ -46,13 +46,13 @@
+
+ static const char *const patch_usage[] =
+ {
+- "Usage: %s %s [-flR] [-c|-u] [-s|-t] [-V %%d] [-k kopt]\n",
++ "Usage: %s %s [-flR] [-c|-u[p]] [-s|-t] [-V %%d] [-k kopt]\n",
+ " -r rev|-D date [-r rev2 | -D date2] modules...\n",
+ "\t-f\tForce a head revision match if tag/date not found.\n",
+ "\t-l\tLocal directory only, not recursive\n",
+ "\t-R\tProcess directories recursively.\n",
+ "\t-c\tContext diffs (default)\n",
+- "\t-u\tUnidiff format.\n",
++ "\t-u\tUnidiff format (-p works the same as in diff).\n",
+ "\t-s\tShort patch - one liner per file.\n",
+ "\t-t\tTop two diffs - last change made to the file.\n",
+ "\t-V vers\tUse RCS Version \"vers\" for keyword expansion.\n",
+@@ -78,7 +78,7 @@
+ usage (patch_usage);
+
+ optind = 0;
+- while ((c = getopt (argc, argv, "+V:k:cuftsQqlRD:r:")) != -1)
++ while ((c = getopt (argc, argv, "+V:k:cupftsQqlRD:r:")) != -1)
+ {
+ switch (c)
+ {
+@@ -149,10 +149,13 @@
+ "the -V option is obsolete and should not be used");
+ break;
+ case 'u':
+- unidiff = 1; /* Unidiff */
++ unidiff |= 1; /* Unidiff */
+ break;
+ case 'c': /* Context diff */
+- unidiff = 0;
++ unidiff &= ~1;
++ break;
++ case 'p':
++ unidiff |= 2; /* Unidiff context */
+ break;
+ case '?':
+ default:
+@@ -167,6 +170,8 @@
+ if (argc < 1)
+ usage (patch_usage);
+
++ if (!(unidiff & 1))
++ unidiff = 0;
+ if (toptwo_diffs && patch_short)
+ error (1, 0, "-t and -s options are mutually exclusive");
+ if (toptwo_diffs && (date1 != NULL || date2 != NULL ||
+@@ -202,6 +207,8 @@
+ send_arg("-s");
+ if (unidiff)
+ send_arg("-u");
++ if (unidiff & 2)
++ send_arg("-p");
+
+ if (rev1)
+ option_with_arg ("-r", rev1);
+@@ -270,6 +277,7 @@
+ int which;
+ char *repository;
+ char *where;
++ char *cp;
+
+ TRACE ( TRACE_FUNCTION, "patch_proc ( %s, %s, %s, %d, %d, %s, %s )",
+ xwhere ? xwhere : "(null)",
+@@ -292,7 +300,6 @@
+ /* if mfile isn't null, we need to set up to do only part of the module */
+ if (mfile != NULL)
+ {
+- char *cp;
+ char *path;
+
+ /* if the portion of the module is a path, put the dir part on repos */
+@@ -342,14 +349,30 @@
+
+ if (rev1 != NULL && !rev1_validated)
+ {
+- tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0,
+- repository, false);
++ if ((cp = strchr(rev1, ':')) != NULL)
++ {
++ *cp++ = '\0';
++ date1 = Make_Date (cp);
++ if (*rev1 == '\0')
++ rev1 = NULL;
++ }
++ if (rev1)
++ tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0,
++ repository, false);
+ rev1_validated = 1;
+ }
+ if (rev2 != NULL && !rev2_validated)
+ {
+- tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0,
+- repository, false);
++ if ((cp = strchr(rev2, ':')) != NULL)
++ {
++ *cp++ = '\0';
++ date2 = Make_Date (cp);
++ if (*rev2 == '\0')
++ rev2 = NULL;
++ }
++ if (rev2)
++ tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0,
++ repository, false);
+ rev2_validated = 1;
+ }
+
+@@ -571,6 +594,7 @@
+
+ if (unidiff) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-u");
+ else run_add_arg_p (&dargc, &darg_allocated, &dargv, "-c");
++ if (unidiff & 2) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-p");
+ switch (diff_exec (tmpfile1, tmpfile2, NULL, NULL, dargc, dargv,
+ tmpfile3))
+ {
+@@ -671,7 +695,10 @@
+ program. */
+ if (unidiff)
+ {
+- cvs_output ("diff -u ", 0);
++ if (unidiff & 2)
++ cvs_output ("diff -up ", 0);
++ else
++ cvs_output ("diff -u ", 0);
+ cvs_output (file1, 0);
+ cvs_output (" ", 1);
+ cvs_output (file2, 0);
+--- cvs-1.12.13+real.orig/src/rcs.c
++++ cvs-1.12.13+real/src/rcs.c
+@@ -103,6 +103,7 @@
+ static char *truncate_revnum_in_place (char *);
+ static char *truncate_revnum (const char *);
+ static char *printable_date (const char *);
++static char *mdoc_date (const char *);
+ static char *escape_keyword_value (const char *, int *);
+ static void expand_keywords (RCSNode *, RCSVers *, const char *,
+ const char *, size_t, enum kflag, char *,
+@@ -2166,6 +2167,8 @@
+
+ if (! RCS_nodeisbranch (rcs, tag))
+ {
++ if (! strcmp (date, "BASE"))
++ return RCS_gettag (rcs, tag, force_tag_match, simple_tag);
+ /* We can't get a particular date if the tag is not a
+ branch. */
+ return NULL;
+@@ -2177,6 +2180,15 @@
+ else
+ branch = xstrdup (tag);
+
++ if (! strcmp (date, "BASE"))
++ {
++ /* Cut off the branch suffix and return. */
++ rev = strrchr (branch, '.');
++ if (rev)
++ *rev = '\0';
++ return branch;
++ }
++
+ /* Fetch the revision of branch as of date. */
+ rev = RCS_getdatebranch (rcs, date, branch);
+ free (branch);
+@@ -2470,7 +2482,7 @@
+ check_rev = xrev;
+
+ local_branch_num = getenv("CVS_LOCAL_BRANCH_NUM");
+- if (local_branch_num)
++ if (local_branch_num && *local_branch_num)
+ {
+ rev_num = atoi(local_branch_num);
+ if (rev_num < 2)
+@@ -3120,6 +3132,7 @@
+ struct timespec revdate;
+ Node *p;
+ RCSVers *vers;
++ int y;
+
+ /* make sure we have something to look at... */
+ assert (rcs != NULL);
+@@ -3134,7 +3147,7 @@
+ vers = p->data;
+
+ /* split up the date */
+- if (sscanf (vers->date, SDATEFORM, &xtm.tm_year, &xtm.tm_mon,
++ if (sscanf (vers->date, SDATEFORM, &y, &xtm.tm_mon,
+ &xtm.tm_mday, &xtm.tm_hour, &xtm.tm_min, &xtm.tm_sec) != 6)
+ error (1, 0, "%s: invalid date for revision %s (%s)", rcs->print_path,
+ rev, vers->date);
+@@ -3144,15 +3157,14 @@
+ 2000+, RCS files contain all four digits and we subtract 1900,
+ because the tm_year field should contain years since 1900. */
+
+- if (xtm.tm_year >= 100 && xtm.tm_year < 2000)
++ if (y >= 100 && y < 2000)
+ error (0, 0, "%s: non-standard date format for revision %s (%s)",
+ rcs->print_path, rev, vers->date);
+- if (xtm.tm_year >= 1900)
+- xtm.tm_year -= 1900;
++ xtm.tm_year = y - ((y >= 1900) ? 1900 : 0);
+
+ /* put the date in a form getdate can grok */
+- tdate = Xasprintf ("%d-%d-%d %d:%d:%d -0000",
+- xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday,
++ tdate = Xasprintf ("%ld-%d-%d %d:%d:%d -0000",
++ (long)xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday,
+ xtm.tm_hour, xtm.tm_min, xtm.tm_sec);
+
+ /* Turn it into seconds since the epoch.
+@@ -3173,7 +3185,7 @@
+ /* Put an appropriate string into `date', if we were given one. */
+ ftm = gmtime (&revdate.tv_sec);
+ (void) sprintf (date, DATEFORM,
+- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
+ ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
+ ftm->tm_min, ftm->tm_sec);
+ }
+@@ -3475,6 +3487,7 @@
+ KEYWORD_REVISION,
+ KEYWORD_SOURCE,
+ KEYWORD_STATE,
++ KEYWORD_MDOCDATE,
+ KEYWORD_LOCALID
+ };
+ struct rcs_keyword
+@@ -3511,6 +3524,7 @@
+ KEYWORD_INIT (new, KEYWORD_REVISION, "Revision");
+ KEYWORD_INIT (new, KEYWORD_SOURCE, "Source");
+ KEYWORD_INIT (new, KEYWORD_STATE, "State");
++ KEYWORD_INIT (new, KEYWORD_MDOCDATE, "Mdocdate");
+
+ return new;
+ }
+@@ -3544,6 +3558,30 @@
+
+
+
++/* Convert an RCS date string into an mdoc string. This is like
++ the RCS date2str function, but for manual pages. */
++static char *
++mdoc_date (const char *rcs_date)
++{
++ int year, mon, mday, hour, min, sec;
++ char buf[100];
++ const char *months[] = { "January", "February", "March", "April",
++ "May", "June", "July", "August",
++ "September", "October", "November", "December",
++ "corrupt" };
++
++ (void) sscanf (rcs_date, SDATEFORM, &year, &mon, &mday, &hour, &min,
++ &sec);
++ if (mon < 1 || mon > 12)
++ mon = 13;
++ if (year < 1900)
++ year += 1900;
++ sprintf (buf, "%s %d %04d", months[mon - 1], mday, year);
++ return xstrdup (buf);
++}
++
++
++
+ /* Escape the characters in a string so that it can be included in an
+ RCS value. */
+ static char *
+@@ -3680,13 +3718,13 @@
+ srch_len -= (srch_next + 1) - srch;
+ srch = srch_next + 1;
+
+- /* Look for the first non alphabetic character after the '$'. */
++ /* Look for the first non alphanumeric character after the '$'. */
+ send = srch + srch_len;
+ for (s = srch; s < send; s++)
+- if (! isalpha ((unsigned char) *s))
++ if (! isalnum ((unsigned char) *s))
+ break;
+
+- /* If the first non alphabetic character is not '$' or ':',
++ /* If the first non alphanumeric character is not '$' or ':',
+ then this is not an RCS keyword. */
+ if (s == send || (*s != '$' && *s != ':'))
+ continue;
+@@ -3741,6 +3779,11 @@
+ free_value = 1;
+ break;
+
++ case KEYWORD_MDOCDATE:
++ value = mdoc_date (ver->date);
++ free_value = 1;
++ break;
++
+ case KEYWORD_CVSHEADER:
+ case KEYWORD_HEADER:
+ case KEYWORD_ID:
+@@ -4177,6 +4220,9 @@
+ : (sout != RUN_TTY ? sout
+ : "(stdout)"))));
+
++ if (rev && *rev == '-')
++ ++rev;
++
+ assert (rev == NULL || isdigit ((unsigned char) *rev));
+
+ if (noexec && !server_active && workfile != NULL)
+@@ -5081,7 +5127,7 @@
+ (void) time (&modtime);
+ ftm = gmtime (&modtime);
+ delta->date = Xasprintf (DATEFORM,
+- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
+ ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
+ ftm->tm_min, ftm->tm_sec);
+ if (flags & RCS_FLAGS_DEAD)
+@@ -7235,6 +7281,7 @@
+ /* Walk the deltas in RCS to get to revision VERSION.
+
+ If OP is RCS_ANNOTATE, then write annotations using cvs_output.
++ If OP is RCS_ANNOTATE_BACKWARDS, do the same backwards.
+
+ If OP is RCS_FETCH, then put the contents of VERSION into a
+ newly-malloc'd array and put a pointer to it in *TEXT. Each line
+@@ -7263,6 +7310,7 @@
+ RCSVers *vers;
+ RCSVers *prev_vers;
+ RCSVers *trunk_vers;
++ RCSVers *top_vers;
+ char *next;
+ int ishead, isnext, isversion, onbranch;
+ Node *node;
+@@ -7285,6 +7333,7 @@
+ vers = NULL;
+ prev_vers = NULL;
+ trunk_vers = NULL;
++ top_vers = NULL;
+ next = NULL;
+ onbranch = 0;
+ foundhead = 0;
+@@ -7332,12 +7381,28 @@
+ vers = node->data;
+ next = vers->next;
+
++ /* The top version is either HEAD or
++ the last version on the branch. */
++ if (top_vers == NULL ||
++ (onbranch && (op == RCS_ANNOTATE_BACKWARDS)))
++ top_vers = vers;
++
+ /* Compare key and trunkversion now, because key points to
+ storage controlled by rcsbuf_getkey. */
+ if (STREQ (branchversion, key))
+ isversion = 1;
+ else
+ isversion = 0;
++
++ /* If we are going back and up a branch, and this is
++ the version we should start annotating, we need to
++ clear out all accumulated annotations. */
++ if ((op == RCS_ANNOTATE_BACKWARDS) && onbranch && STREQ (version, key)) {
++ unsigned int ln;
++
++ for (ln = 0; ln < curlines.nlines; ++ln)
++ curlines.vector[ln]->vers = NULL;
++ }
+ }
+
+ while (1)
+@@ -7365,17 +7430,27 @@
+ rcsbuf_valpolish (rcsbuf, value, 0, &vallen);
+ if (ishead)
+ {
+- if (! linevector_add (&curlines, value, vallen, NULL, 0))
++ if (! linevector_add (&curlines, value, vallen,
++ (op == RCS_ANNOTATE_BACKWARDS) ? vers : NULL, 0))
+ error (1, 0, "invalid rcs file %s", rcs->print_path);
+
+ ishead = 0;
+ }
+ else if (isnext)
+ {
++ RCSVers *addv, *delv;
++
++ if (op == RCS_ANNOTATE_BACKWARDS) {
++ addv = onbranch ? NULL : prev_vers;
++ delv = onbranch ? vers : NULL;
++ } else {
++ addv = onbranch ? vers : NULL;
++ delv = onbranch ? NULL : prev_vers;
++ }
++
+ if (! apply_rcs_changes (&curlines, value, vallen,
+ rcs->path,
+- onbranch ? vers : NULL,
+- onbranch ? NULL : prev_vers))
++ addv, delv))
+ error (1, 0, "invalid change text in %s", rcs->print_path);
+ }
+ break;
+@@ -7384,6 +7459,14 @@
+
+ if (isversion)
+ {
++ /* If we're going backwards and not up a branch, and we
++ reached the version to start at, we're done. */
++ if ((op == RCS_ANNOTATE_BACKWARDS) && !onbranch && STREQ (version, key)) {
++ foundhead = 1;
++ linevector_copy (&headlines, &curlines);
++ break;
++ }
++
+ /* This is either the version we want, or it is the
+ branchpoint to the version we want. */
+ if (STREQ (branchversion, version))
+@@ -7391,7 +7474,9 @@
+ /* This is the version we want. */
+ linevector_copy (&headlines, &curlines);
+ foundhead = 1;
+- if (onbranch)
++ /* If we are annotating backwards, we have to
++ continue tracking when we're tracking a branch. */
++ if (onbranch && !(op == RCS_ANNOTATE_BACKWARDS))
+ {
+ /* We have found this version by tracking up a
+ branch. Restore back to the lines we saved
+@@ -7480,6 +7565,7 @@
+ switch (op)
+ {
+ case RCS_ANNOTATE:
++ case RCS_ANNOTATE_BACKWARDS:
+ {
+ unsigned int ln;
+
+--- cvs-1.12.13+real.orig/src/rcs.h
++++ cvs-1.12.13+real/src/rcs.h
+@@ -1,3 +1,5 @@
++/* $MirOS: src/gnu/usr.bin/cvs/src/rcs.h,v 1.5 2010/09/19 19:43:09 tg Exp $ */
++
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+@@ -33,7 +35,7 @@
+ CVS) will put this into RCS files. Considered obsolete. */
+ #define RCSDEAD "dead"
+
+-#define DATEFORM "%02d.%02d.%02d.%02d.%02d.%02d"
++#define DATEFORM "%02ld.%02d.%02d.%02d.%02d.%02d"
+ #define SDATEFORM "%d.%d.%d.%d.%d.%d"
+
+ /*
+@@ -189,7 +191,7 @@
+ struct rcsbuffer;
+
+ /* What RCS_deltas is supposed to do. */
+-enum rcs_delta_op {RCS_ANNOTATE, RCS_FETCH};
++enum rcs_delta_op {RCS_ANNOTATE, RCS_ANNOTATE_BACKWARDS, RCS_FETCH};
+
+ /*
+ * exported interfaces
+--- cvs-1.12.13+real.orig/src/rcscmds.c
++++ cvs-1.12.13+real/src/rcscmds.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -92,7 +93,10 @@
+ static void
+ call_diff_add_arg (const char *s)
+ {
+- TRACE (TRACE_DATA, "call_diff_add_arg (%s)", s);
++ if (s)
++ TRACE (TRACE_DATA, "call_diff_add_arg (%s)", s);
++ else
++ TRACE (TRACE_DATA, "call_diff_add_arg NULL");
+ run_add_arg_p (&call_diff_argc, &call_diff_arg_allocated, &call_diff_argv,
+ s);
+ }
+--- cvs-1.12.13+real.orig/src/root.c
++++ cvs-1.12.13+real/src/root.c
+@@ -1,4 +1,7 @@
+ /*
++ * Copyright © 2017
++ * mirabilos <m@mirbsd.org>
++ *
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+@@ -265,6 +268,7 @@
+ directories. Then we can check against them when a remote user
+ hands us a CVSROOT directory. */
+ static List *root_allow;
++static List *root_allow_regexp;
+
+ static void
+ delconfig (Node *n)
+@@ -288,15 +292,65 @@
+ }
+
+ void
++root_allow_regexp_add (const char *arg, const char *configPath)
++{
++ Node *n;
++
++ if (!root_allow_regexp) root_allow_regexp = getlist();
++ n = getnode();
++ n->key = xstrdup (arg);
++
++ /* This is a regexp, not the final cvsroot path - we cannot attach
++ it a config. So we attach configPath and we'll root_allow_add()
++ the actual, matching root in root_allow_compare_regexp() */
++ n->data = (void*)configPath;
++
++ addnode (root_allow_regexp, n);
++}
++
++void
+ root_allow_free (void)
+ {
+ dellist (&root_allow);
++ dellist (&root_allow_regexp);
++}
++
++int
++root_allow_used (void)
++{
++ return root_allow || root_allow_regexp;
++}
++
++/* walklist() callback for determining if 'root_to_check' matches
++ n->key (a regexp). If yes, 'root_to_check' will be added as if
++ directly specified through --allow-root.
++ */
++static int
++root_allow_compare_regexp (Node *n, void *root_to_check)
++{
++ int status;
++ regex_t re;
++
++ if (regcomp(&re, n->key,
++ REG_EXTENDED|REG_NOSUB) != 0)
++ {
++ return 0; /* report error? */
++ }
++ status = regexec(&re, root_to_check, (size_t) 0, NULL, 0);
++ regfree(&re);
++ if (status == 0)
++ {
++ /* n->data contains gConfigPath */
++ root_allow_add (root_to_check, n->data);
++ return 1;
++ }
++ return 0;
+ }
+
+ bool
+ root_allow_ok (const char *arg)
+ {
+- if (!root_allow)
++ if (!root_allow_used())
+ {
+ /* Probably someone upgraded from CVS before 1.9.10 to 1.9.10
+ or later without reading the documentation about
+@@ -308,12 +362,18 @@
+ back "error" rather than waiting for the next request which
+ expects responses. */
+ printf ("\
+-error 0 Server configuration missing --allow-root in inetd.conf\n");
++error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf\n");
+ exit (EXIT_FAILURE);
+ }
+
++ /* Look for 'arg' in the list of full-path allowed roots */
+ if (findnode (root_allow, arg))
+ return true;
++
++ /* Match 'arg' against the list of allowed roots regexps */
++ if (walklist (root_allow_regexp, root_allow_compare_regexp, (void*)arg))
++ return true;
++
+ return false;
+ }
+
+@@ -436,6 +496,9 @@
+ }
+
+
++#if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
++static char *validate_hostname(const char *) __attribute__((__malloc__));
++#endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
+
+ /*
+ * Parse a CVSROOT string to allocate and return a new cvsroot_t structure.
+@@ -535,6 +598,12 @@
+ method = "";
+ #endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
+
++ if (NULL == method)
++ {
++ error (0, 0, "Missing method in CVSROOT.");
++ goto error_exit;
++ }
++
+ /* Now we have an access method -- see if it's valid. */
+
+ if (!strcasecmp (method, "local"))
+@@ -547,6 +616,16 @@
+ newroot->method = gserver_method;
+ else if (!strcasecmp (method, "server"))
+ newroot->method = server_method;
++ else if (strncmp (method, "ext=", 4) == 0)
++ {
++ newroot->cvs_rsh = xstrdup(method + 4);
++ newroot->method = ext_method;
++ }
++ else if (!strcasecmp (method, "extssh"))
++ {
++ newroot->cvs_rsh = xstrdup("ssh");
++ newroot->method = extssh_method;
++ }
+ else if (!strcasecmp (method, "ext"))
+ newroot->method = ext_method;
+ else if (!strcasecmp (method, "fork"))
+@@ -573,37 +652,40 @@
+ TRACE (TRACE_DATA, "CVSROOT option=`%s' value=`%s'", p, q);
+ if (!strcasecmp (p, "proxy"))
+ {
+- newroot->proxy_hostname = xstrdup (q);
++ if (!(newroot->proxy_hostname = validate_hostname(q))) {
++ error(0, 0, "Invalid proxy hostname: %s", q);
++ goto error_exit;
++ }
+ }
+ else if (!strcasecmp (p, "proxyport"))
+ {
+ char *r = q;
+- if (*r == '-') r++;
+- while (*r)
+- {
+- if (!isdigit(*r++))
+- {
++
++ do {
++ if (!isdigit(*r)) {
++ proxy_port_error:
+ error (0, 0,
+ "CVSROOT may only specify a positive, non-zero, integer proxy port (not `%s').",
+ q);
+ goto error_exit;
+ }
+- }
+- if ((newroot->proxy_port = atoi (q)) <= 0)
+- error (0, 0,
+-"CVSROOT may only specify a positive, non-zero, integer proxy port (not `%s').",
+- q);
++ } while (*++r);
++ if ((newroot->proxy_port = atoi(q)) <= 0 ||
++ newroot->proxy_port > 65535)
++ goto proxy_port_error;
+ }
+ else if (!strcasecmp (p, "CVS_RSH"))
+ {
+ /* override CVS_RSH environment variable */
+- if (newroot->method == ext_method)
+- newroot->cvs_rsh = xstrdup (q);
++ if (newroot->method == ext_method
++ || newroot->method == extssh_method)
++ newroot->cvs_rsh = xstrdup (q);
+ }
+ else if (!strcasecmp (p, "CVS_SERVER"))
+ {
+ /* override CVS_SERVER environment variable */
+ if (newroot->method == ext_method
++ || newroot->method == extssh_method
+ || newroot->method == fork_method)
+ newroot->cvs_server = xstrdup (q);
+ }
+@@ -635,7 +717,8 @@
+ newroot->isremote = (newroot->method != local_method);
+
+ #if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
+- if (readonlyfs && newroot->isremote)
++ if (readonlyfs && newroot->isremote && (newroot->method != ext_method)
++ && (newroot->method != extssh_method) && (newroot->method != fork_method))
+ error (1, 0,
+ "Read-only repository feature unavailable with remote roots (cvsroot = %s)",
+ cvsroot_copy);
+@@ -682,7 +765,22 @@
+ /* a blank username is impossible, so leave it NULL in that
+ * case so we know to use the default username
+ */
++ {
++ /* for want of strcspn */
++ if (/* no at, obviously */ strchr(cvsroot_copy, '@') ||
++ /* no colon, interference with CVSROOT/passwd file */
++ strchr(cvsroot_copy, ':') ||
++ /* no linefeeds, interference with pserver protocol */
++ strchr(cvsroot_copy, '\012')) {
++ error(0, 0, "Bad username \"%s\"", cvsroot_copy);
++ goto error_exit;
++ }
++ /* other limitations include not beginning with a
++ * hyphen-minus but that’s not even a requirement
++ * in POSIX, let alone other operating environments…
++ */
+ newroot->username = xstrdup (cvsroot_copy);
++ }
+
+ cvsroot_copy = ++p;
+ }
+@@ -693,24 +791,18 @@
+ if ((p = strchr (cvsroot_copy, ':')) != NULL)
+ {
+ *p++ = '\0';
+- if (strlen(p))
++ if (*p)
+ {
++ char qch;
++
+ q = p;
+- if (*q == '-') q++;
+- while (*q)
++ while ((qch = *q++))
+ {
+- if (!isdigit(*q++))
+- {
+- error (0, 0,
+-"CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
+- p);
+- error (0, 0,
+- "Perhaps you entered a relative pathname?");
+- goto error_exit;
+- }
++ if (!isdigit(qch))
++ goto parse_port_error;
+ }
+- if ((newroot->port = atoi (p)) <= 0)
+- {
++ if ((newroot->port = atoi(p)) <= 0 || newroot->port > 65535) {
++ parse_port_error:
+ error (0, 0,
+ "CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
+ p);
+@@ -720,12 +812,8 @@
+ }
+ }
+
+- /* copy host */
+- if (*cvsroot_copy != '\0')
+- /* blank hostnames are invalid, but for now leave the field NULL
+- * and catch the error during the sanity checks later
+- */
+- newroot->hostname = xstrdup (cvsroot_copy);
++ /* check and copy host */
++ newroot->hostname = validate_hostname(cvsroot_copy);
+
+ /* restore the '/' */
+ cvsroot_copy = firstslash;
+@@ -750,7 +838,9 @@
+ #if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
+ if (newroot->username && ! newroot->hostname)
+ {
+- error (0, 0, "Missing hostname in CVSROOT.");
++ /* this defangs sanity.sh tests for remote reject, though */
++ bad_hostname:
++ error (0, 0, "Missing or bad hostname in CVSROOT.");
+ goto error_exit;
+ }
+
+@@ -828,6 +918,7 @@
+ case server_method:
+ case ext_method:
+ no_port = 1;
++ case extssh_method:
+ /* no_password already set */
+ check_hostname = 1;
+ break;
+@@ -863,16 +954,13 @@
+ }
+
+ if (check_hostname && !newroot->hostname)
+- {
+- error (0, 0, "Didn't specify hostname in CVSROOT.");
+- goto error_exit;
+- }
++ goto bad_hostname;
+
+ if (no_port && newroot->port)
+ {
+ error (0, 0,
+-"CVSROOT port specification is only valid for gserver, kserver,");
+- error (0, 0, "and pserver connection methods.");
++"CVSROOT port specification is only valid for extssh,");
++ error (0, 0, "gserver, kserver and pserver connection methods.");
+ goto error_exit;
+ }
+ #endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
+@@ -1052,3 +1140,78 @@
+ /* NOTREACHED */
+ }
+ #endif
++
++#if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
++#define CLS_INVALID 0
++#define CLS_INSIDE 1
++#define CLS_OUTSIDE 2
++#define CLS_SEPARATOR 4
++/* EBCDIC safe */
++#define CLASSIFY(x) classify[(unsigned char)(x)]
++static char *
++validate_hostname(const char *s)
++{
++ char *buf, *cp;
++ size_t sz;
++ static char classify_initialised = 0, *classify;
++
++ /* initialise classification table */
++ if (!classify_initialised) {
++ const char *ccp;
++
++ classify = xmalloc(256);
++ for (sz = 0; sz < 256; ++sz)
++ CLASSIFY(sz) = CLS_INVALID;
++ for (ccp = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++ *ccp; ++ccp)
++ CLASSIFY(*ccp) = CLS_INSIDE | CLS_OUTSIDE;
++ CLASSIFY('-') = CLS_INSIDE;
++ CLASSIFY('.') = CLS_SEPARATOR;
++ classify_initialised = 1;
++ }
++
++ /* total size limit tolerating a trailing dot */
++ if ((sz = strlen(s)) > 256)
++ return (NULL);
++ buf = xstrdup(s);
++
++ /* drop trailing dot */
++ if ((unsigned char)buf[sz - 1] == (unsigned char)'.')
++ buf[--sz] = '\0';
++ /* recheck */
++ if (sz > 255) {
++ err:
++ free(buf);
++ return (NULL);
++ }
++
++ /* check each label */
++ cp = buf;
++ loop:
++ /* must begin with [0-9A-Za-z] */
++ if (!(CLASSIFY(*cp++) & CLS_OUTSIDE))
++ goto err;
++ sz = 1;
++ /* arbitrary many [0-9A-Za-z-] */
++ while (CLASSIFY(*cp) & CLS_INSIDE) {
++ ++cp;
++ ++sz;
++ }
++ /* except the last must have been [0-9A-Za-z] again */
++ if (!(CLASSIFY(cp[-1]) & CLS_OUTSIDE))
++ goto err;
++ /* maximum label size */
++ if (sz > 63)
++ goto err;
++ /* next label? */
++ if (CLASSIFY(*cp) & CLS_SEPARATOR) {
++ ++cp;
++ goto loop;
++ }
++ /* must be end of string now */
++ if (*cp)
++ goto err;
++ /* it is, everything okay */
++ return (buf);
++}
++#endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
+--- cvs-1.12.13+real.orig/src/root.h
++++ cvs-1.12.13+real/src/root.h
+@@ -1,3 +1,5 @@
++/* $MirOS: src/gnu/usr.bin/cvs/src/root.h,v 1.5 2017/01/08 19:13:05 tg Exp $ */
++
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+@@ -22,6 +24,7 @@
+ kserver_method,
+ gserver_method,
+ ext_method,
++ extssh_method,
+ fork_method
+ } CVSmethod;
+ extern const char method_names[][16]; /* change this in root.c if you change
+@@ -62,8 +65,10 @@
+ __attribute__ ((__malloc__));
+ void Create_Root (const char *dir, const char *rootdir);
+ void root_allow_add (const char *, const char *configPath);
++void root_allow_regexp_add (const char *, const char *configPath);
+ void root_allow_free (void);
+ bool root_allow_ok (const char *);
++int root_allow_used (void);
+ struct config *get_root_allow_config (const char *arg, const char *configPath);
+ const char *primary_root_translate (const char *root_in);
+ const char *primary_root_inverse_translate (const char *root_in);
+--- cvs-1.12.13+real.orig/src/rsh-client.c
++++ cvs-1.12.13+real/src/rsh-client.c
+@@ -53,11 +53,13 @@
+ char *cvs_server = (root->cvs_server != NULL
+ ? root->cvs_server : getenv ("CVS_SERVER"));
+ int i = 0;
+- /* This needs to fit "rsh", "-b", "-l", "USER", "host",
+- "cmd (w/ args)", and NULL. We leave some room to grow. */
+- char *rsh_argv[10];
++ /* This needs to fit "rsh", "-b", "-l", "USER", "-p", port,
++ "--", "host", "cvs", "-R", "server", and NULL.
++ We leave some room to grow. */
++ char *rsh_argv[16];
++ char argvport[16];
+
+- if (!cvs_rsh)
++ if (!cvs_rsh || !*cvs_rsh)
+ /* People sometimes suggest or assume that this should default
+ to "remsh" on systems like HPUX in which that is the
+ system-supplied name for the rsh program. However, that
+@@ -79,7 +81,7 @@
+ if that is what they want (the manual already tells them
+ that). */
+ cvs_rsh = RSH_DFLT;
+- if (!cvs_server)
++ if (!cvs_server || !*cvs_server)
+ cvs_server = "cvs";
+
+ /* The command line starts out with rsh. */
+@@ -97,8 +99,20 @@
+ rsh_argv[i++] = root->username;
+ }
+
++ if (root->method == extssh_method && root->port)
++ {
++ snprintf(argvport, sizeof(argvport), "%d", root->port);
++ rsh_argv[i++] = "-p";
++ rsh_argv[i++] = argvport;
++ }
++
++ /* Only non-option arguments from here. (CVE-2017-12836) */
++ rsh_argv[i++] = "--";
++
+ rsh_argv[i++] = root->hostname;
+ rsh_argv[i++] = cvs_server;
++ if (readonlyfs)
++ rsh_argv[i++] = "-R";
+ rsh_argv[i++] = "server";
+
+ /* Mark the end of the arg list. */
+@@ -139,9 +153,9 @@
+ int tofd, fromfd;
+ int child_pid;
+
+- if (!cvs_rsh)
++ if (!cvs_rsh || !*cvs_rsh)
+ cvs_rsh = RSH_DFLT;
+- if (!cvs_server)
++ if (!cvs_server || !*cvs_server)
+ cvs_server = "cvs";
+
+ /* Pass the command to rsh as a single string. This shouldn't
+@@ -154,10 +168,11 @@
+ * on the server machine does not set CVSROOT to something
+ * containing a colon (or better yet, upgrade the server).
+ */
+- command = Xasprintf ("%s server", cvs_server);
++ command = Xasprintf ("%s%s server", cvs_server, readonlyfs ? " -R" : "");
+
+ {
+- char *argv[10];
++ char argvport[16];
++ char *argv[16];
+ char **p = argv;
+
+ *p++ = cvs_rsh;
+@@ -171,6 +186,15 @@
+ *p++ = root->username;
+ }
+
++ if (root->method == extssh_method && root->port)
++ {
++ snprintf(argvport, sizeof(argvport), "%d", root->port);
++ *p++ = "-p";
++ *p++ = argvport;
++ }
++
++ *p++ = "--";
++
+ *p++ = root->hostname;
+ *p++ = command;
+ *p++ = NULL;
+--- cvs-1.12.13+real.orig/src/sanity.sh
++++ cvs-1.12.13+real/src/sanity.sh
+@@ -1,11 +1,17 @@
+ #! /bin/sh
+ :
++# $MirOS: src/gnu/usr.bin/cvs/src/sanity.sh,v 1.21 2021/01/30 02:06:07 tg Exp $
++#-
++# set DISABLE_ANY_RSH=1 to skip rsh and ssh calls
++#
+ # sanity.sh -- a growing testsuite for cvs.
+ #
+ # The copyright notice said: "Copyright (C) 1992, 1993 Cygnus Support"
+ # I'm not adding new copyright notices for new years as our recent
+ # practice has been to include copying terms without copyright notices.
+ #
++# © 2016, 2017, 2021 mirabilos <m@mirbsd.org>
++#
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2, or (at your option)
+@@ -22,7 +28,7 @@
+ usage ()
+ {
+ echo "Usage: `basename $0` --help"
+- echo "Usage: `basename $0` [--eklr] [-c CONFIG-FILE] [-f FROM-TEST] \\"
++ echo "Usage: `basename $0` [-eklnpr] [-c CONFIG-FILE] [-f FROM-TEST] \\"
+ echo " [-h HOSTNAME] [-s CVS-FOR-CVS-SERVER] CVS-TO-TEST \\"
+ echo " [TESTS-TO-RUN...]"
+ }
+@@ -37,59 +43,74 @@
+ {
+ usage
+ echo
+- echo "-H|--help display this text"
++ echo "-H|--help display this text"
+ echo "-c CONFIG-FILE"
+ echo "--config=CONFIG_FILE"
+- echo " use an alternate test suite config file (defaults to"
+- echo " \`sanity.config.sh' in the same directory as"
+- echo " CVS-TO-TEST is found in)"
+- echo "-e|--skipfail Treat tests that would otherwise be nonfatally skipped"
+- echo " for reasons like missing tools as failures, exiting"
+- echo " with an error message. Also treat warnings as"
+- echo " failures."
++ echo " use an alternate test suite config file (defaults to"
++ echo " 'sanity.config.sh' in the same directory as"
++ echo " CVS-TO-TEST is found in)"
++ echo "-e|--skipfail Treat tests that would otherwise be nonfatally skipped"
++ echo " for reasons like missing tools as failures, exiting"
++ echo " with an error message. Also treat warnings as"
++ echo " failures."
+ echo "-f FROM-TEST"
+ echo "--from-test=FROM-TEST"
+- echo " run TESTS-TO-RUN, skipping all tests in the list before"
+- echo " FROM-TEST"
++ echo " run TESTS-TO-RUN, skipping all tests in the list before"
++ echo " FROM-TEST"
+ echo "-h HOSTNAME"
+ echo "--hostname HOSTNAME"
+- echo " Use :ext:HOSTNAME to run remote tests rather than"
+- echo " :fork:. Implies --remote and assumes that \$TESTDIR"
+- echo " resolves to the same directory on both the client and"
+- echo " the server."
+- echo "-k|--keep try to keep directories created by individual tests"
+- echo " around, exiting after the first test which supports"
+- echo " --keep"
+- echo "-l|--link-root"
+- echo " test CVS using a symlink to a real CVSROOT"
+- echo "-n|--noredirect"
+- echo " test a secondary/primary CVS server (writeproxy)"
+- echo " configuration with the Redirect response disabled"
+- echo " (implies --proxy)."
+- echo "-p|--proxy test a secondary/primary CVS server (writeproxy)"
+- echo " configuration (implies --remote)."
+- echo "-r|--remote test client/server, as opposed to local, CVS"
++ echo " Use :ext:HOSTNAME to run remote tests rather than"
++ echo " :fork:. Implies --remote and assumes that \$TESTDIR"
++ echo " resolves to the same directory on both the client and"
++ echo " the server."
++ echo "-k|--keep try to keep directories created by individual tests"
++ echo " around, exiting after the first test which supports"
++ echo " --keep"
++ echo "-l|--link-root test CVS using a symlink to a real CVSROOT"
++ echo "-n|--noredirect test a secondary/primary CVS server (writeproxy)"
++ echo " configuration with the Redirect response disabled"
++ echo " (implies --proxy)."
++ echo "-p|--proxy test a secondary/primary CVS server (writeproxy)"
++ echo " configuration (implies --remote)."
++ echo "-r|--remote test client/server, as opposed to local, CVS"
+ echo "-s CVS-FOR-CVS-SERVER"
+ echo "--server=CVS-FOR-CVS-SERVER"
+- echo " use CVS-FOR-CVS-SERVER as the path to the CVS SERVER"
+- echo " executable to be tested (defaults to CVS-TO-TEST and"
+- echo " implies --remote)"
+- echo
+- echo "CVS-TO-TEST the path to the CVS executable to be tested; used as"
+- echo " the path to the CVS client when CVS-FOR-CVS-SERVER is"
+- echo " specified"
+- echo "TESTS-TO-RUN the names of the tests to run (defaults to all tests)"
++ echo " use CVS-FOR-CVS-SERVER as the path to the CVS SERVER"
++ echo " executable to be tested (defaults to CVS-TO-TEST and"
++ echo " implies --remote)"
++ echo ""
++ echo "CVS-TO-TEST the path to the CVS executable to be tested; used as"
++ echo " the path to the CVS client when CVS-FOR-CVS-SERVER is"
++ echo " specified"
++ echo "TESTS-TO-RUN the names of the tests to run (defaults to all tests)"
+ exit 2
+ }
+
+ checklongoptarg()
+ {
+ if test "x$1" != xoptional && test -z "$OPTARG"; then
+- echo "option \`--$LONGOPT' requires an argument" >&2
++ echo "option '--$LONGOPT' requires an argument" >&2
+ exit_usage
+ fi
+ }
+
++do_save_TZ()
++{
++ saveset_TZ=${TZ+false}
++ save_TZ=$TZ
++ TZ=UTC0; export TZ
++}
++
++do_restore_TZ()
++{
++ if $saveset_TZ :; then
++ unset TZ
++ else
++ TZ=$save_TZ
++ export TZ
++ fi
++}
++
+ # See TODO list at end of file.
+
+ # required to make this script work properly.
+@@ -155,7 +176,7 @@
+ checklongoptarg
+ ;;
+ h)
+- echo "\`--h' is ambiguous. Could mean \`--help' or \`--hostname'" >&2
++ echo "'--h' is ambiguous. Could mean '--help' or '--hostname'" >&2
+ exit_usage
+ ;;
+ he|hel|help)
+@@ -187,7 +208,7 @@
+ OPTARG=
+ ;;
+ s)
+- echo "\`--s' is ambiguous. Could mean \`--server' or \`--skipfail'" >&2
++ echo "'--s' is ambiguous. Could mean '--server' or '--skipfail'" >&2
+ exit_usage
+ ;;
+ se|ser|serv|serve|server)
+@@ -312,7 +333,7 @@
+ . "$configfile"
+ else
+ echo "WARNING: Failed to locate test suite config file" >&2
+- echo " \`$configfile'." >&2
++ echo " '$configfile'." >&2
+ fi
+
+
+@@ -326,7 +347,7 @@
+ # Verify that $CVS_RSH $remotehost works.
+ result=`$CVS_RSH $remotehost 'echo test'`
+ if test $? != 0 || test "x$result" != "xtest"; then
+- echo "\`$CVS_RSH $remotehost' failed." >&2
++ echo "'$CVS_RSH $remotehost' failed." >&2
+ exit 1
+ fi
+ fi
+@@ -373,7 +394,7 @@
+ fi
+ if $CVS_RSH $remotehost "${servercvs} --version </dev/null |
+ grep '^Concurrent.*(.*server)$' >/dev/null 2>&1"; then :; else
+- echo "CVS executable \`$remotehost:${servercvs}' does not contain server support." >&2
++ echo "CVS executable '$remotehost:${servercvs}' does not contain server support." >&2
+ exit 1
+ fi
+ else
+@@ -388,7 +409,7 @@
+ fi
+ if ${servercvs} --version </dev/null |
+ grep '^Concurrent.*(.*server)$' >/dev/null 2>&1; then :; else
+- echo "CVS executable \`${servercvs}' does not contain server support." >&2
++ echo "CVS executable '${servercvs}' does not contain server support." >&2
+ exit 1
+ fi
+ fi
+@@ -399,7 +420,7 @@
+ if $remote; then
+ if ${testcvs} --version </dev/null |
+ grep '^Concurrent.*(client.*)$' >/dev/null 2>&1; then :; else
+- echo "CVS executable \`${testcvs}' does not contain client support." >&2
++ echo "CVS executable '${testcvs}' does not contain client support." >&2
+ exit 1
+ fi
+ fi
+@@ -418,7 +439,7 @@
+ dokeep()
+ {
+ if ${keep}; then
+- echo "Keeping ${TESTDIR} for test case \`${what}' and exiting due to --keep"
++ echo "Keeping ${TESTDIR} for test case '${what}' and exiting due to --keep"
+ exit 0
+ fi
+ }
+@@ -436,7 +457,7 @@
+ echo '(Note that the test can take an hour or more to run and periodically stops'
+ echo 'for as long as one minute. Do not assume there is a problem just because'
+ echo 'nothing seems to happen for a long time. If you cannot live without'
+-echo "running status, try the command: \`tail -f check.log' from another window.)"
++echo "running status, try the command: 'tail -f check.log' from another window.)"
+
+ # Regexp to match what the CVS client will call itself in output that it prints.
+ # FIXME: we don't properly quote this--if the name contains . we'll
+@@ -681,6 +702,10 @@
+ #! $TESTSHELL
+ hostname=\$1
+ shift
++if test x"\$hostname" = x"--"; then
++ hostname=\$1
++ shift
++fi
+ exec \
+ $CVS_RSH \
+ \$hostname \
+@@ -750,7 +775,7 @@
+ fi
+ fi
+ if $verbad; then
+- echo "The command \`$vercmd' does not support the --version option."
++ echo "The command '$vercmd' does not support the --version option."
+ fi
+ # It does not really matter that --version is not supported
+ return 0
+@@ -796,10 +821,10 @@
+ fi
+ done
+ if test -n "$TOOL"; then
+- echo "Notice: The default version of \`$default_TOOL' is defective." >>$LOGFILE
+- echo "using \`$TOOL' and hoping for the best." >>$LOGFILE
+- echo "Notice: The default version of \`$default_TOOL' is defective." >&2
+- echo "using \`$TOOL' and hoping for the best." >&2
++ echo "Notice: The default version of '$default_TOOL' is defective." >>$LOGFILE
++ echo "using '$TOOL' and hoping for the best." >>$LOGFILE
++ echo "Notice: The default version of '$default_TOOL' is defective." >&2
++ echo "using '$TOOL' and hoping for the best." >&2
+ echo $TOOL
+ else
+ echo $default_TOOL
+@@ -812,7 +837,7 @@
+ if $id -u >/dev/null 2>&1 && $id -un >/dev/null 2>&1; then
+ return 0
+ else
+- echo "Running these tests requires an \`id' program that understands the"
++ echo "Running these tests requires an 'id' program that understands the"
+ echo "-u and -n flags. Make sure that such an id (GNU, or many but not"
+ echo "all vendor-supplied versions) is in your path."
+ return 1
+@@ -941,8 +966,8 @@
+ else
+ DOTSTAR='\(.\|
+ \)*'
+- echo "Notice: DOTSTAR changed from sane \`.*' value to \`$DOTSTAR\`"
+- echo "to workaround GNU expr version 1.10 thru 1.12 bug where \`.'"
++ echo "Notice: DOTSTAR changed from sane '.*' value to '$DOTSTAR'"
++ echo "to workaround GNU expr version 1.10 thru 1.12 bug where '.'"
+ echo "does not match a newline."
+ fi
+ return 0
+@@ -1059,7 +1084,7 @@
+ rm -rf $TESTDIR/ls-test
+ fi
+ if $ls $TESTDIR/ls-test >/dev/null 2>&1; then
+- echo "Notice: \`$ls' is defective."
++ echo "Notice: '$ls' is defective."
+ echo 'This is a version of ls which does not correctly'
+ echo 'return false for files that do not exist. Some tests may'
+ echo 'spuriously pass or fail.'
+@@ -1205,11 +1230,16 @@
+ # 77.
+ require_rsh ()
+ {
++ if test x"$DISABLE_ANY_RSH" = x"1"; then
++ skipreason="administratively prohibited"
++ return 77
++ fi
++
+ host=${remotehost-"`hostname`"}
+ result=`$1 $host 'echo test'`
+ rc=$?
+ if test $? != 0 || test "x$result" != "xtest"; then
+- skipreason="\`$1 $host' failed rc=$rc result=$result"
++ skipreason="'$1 $host' failed rc=$rc result=$result"
+ return 77
+ fi
+
+@@ -1301,7 +1331,7 @@
+ fail ()
+ {
+ echo "FAIL: $1" | tee -a ${LOGFILE}
+- echo "*** Please see the \`TESTS' and \`check.log' files for more information." >&2
++ echo "*** Please see the 'TESTS' and 'check.log' files for more information." >&2
+ # This way the tester can go and see what remnants were left
+ exit 1
+ }
+@@ -1313,7 +1343,7 @@
+ if $remote && $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then
+ # A true value means ls found files/directories with these names.
+ # Give the server some time to finish, then retry.
+- sleep 1
++ sleep 2
+ if $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then
+ warn "$1" "Found cvs-serv* directories in $TMPDIR."
+ # The above will exit if $skipfail
+@@ -1503,6 +1533,9 @@
+ # lack \|).
+ dotest ()
+ {
++ #echo dotest >$TESTDIR/_dotest.fun
++ #pwd >$TESTDIR/_dotest.cwd
++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
+ rm -f $TESTDIR/dotest.ex? 2>&1
+ eval "$2" >$TESTDIR/dotest.tmp 2>&1
+ status=$?
+@@ -1518,6 +1551,9 @@
+ # Like dotest except only 2 args and result must exactly match stdin
+ dotest_lit ()
+ {
++ #echo dotest_lit >$TESTDIR/_dotest.fun
++ #pwd >$TESTDIR/_dotest.cwd
++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
+ rm -f $TESTDIR/dotest.ex? 2>&1
+ eval "$2" >$TESTDIR/dotest.tmp 2>&1
+ status=$?
+@@ -1543,6 +1579,9 @@
+ # Like dotest except exitstatus should be nonzero.
+ dotest_fail ()
+ {
++ #echo dotest_fail >$TESTDIR/_dotest.fun
++ #pwd >$TESTDIR/_dotest.cwd
++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
+ rm -f $TESTDIR/dotest.ex? 2>&1
+ eval "$2" >$TESTDIR/dotest.tmp 2>&1
+ status=$?
+@@ -1558,6 +1597,9 @@
+ # Like dotest except output is sorted.
+ dotest_sort ()
+ {
++ #echo dotest_sort >$TESTDIR/_dotest.fun
++ #pwd >$TESTDIR/_dotest.cwd
++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
+ rm -f $TESTDIR/dotest.ex? 2>&1
+ eval "$2" >$TESTDIR/dotest.tmp1 2>&1
+ status=$?
+@@ -1574,6 +1616,9 @@
+ # Like dotest_fail except output is sorted.
+ dotest_fail_sort ()
+ {
++ #echo dotest_fail_sort >$TESTDIR/_dotest.fun
++ #pwd >$TESTDIR/_dotest.cwd
++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
+ rm -f $TESTDIR/dotest.ex? 2>&1
+ eval "$2" >$TESTDIR/dotest.tmp1 2>&1
+ status=$?
+@@ -1622,6 +1667,7 @@
+ tests="$tests parseroot parseroot2 parseroot3 files spacefiles"
+ tests="${tests} commit-readonly commit-add-missing"
+ tests="${tests} status"
++ tests="${tests} suck"
+ # Branching, tagging, removing, adding, multiple directories
+ tests="${tests} rdiff rdiff-short"
+ tests="${tests} rdiff2 diff diffnl death death2"
+@@ -1694,7 +1740,7 @@
+ count=`expr $count + 1`
+ done
+ if test $count != 1; then
+- echo "No such test \`$fromtest'." >&2
++ echo "No such test '$fromtest'." >&2
+ exit 2
+ fi
+ # make sure it is in $tests
+@@ -1702,7 +1748,7 @@
+ *" $fromtest "*)
+ ;;
+ *)
+- echo "No such test \`$fromtest'." >&2
++ echo "No such test '$fromtest'." >&2
+ exit 2
+ ;;
+ esac
+@@ -2600,6 +2646,25 @@
+ ###
+ dotest init-1 "$testcvs init"
+
++# We might need to allow "cvs admin" access and full history.
++mkdir wnt
++cd wnt
++dotest init-1a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++cd CVSROOT
++sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
++ -e '/^LogHistory/d' \
++ <config >tmpconfig
++mv tmpconfig config
++dotest init-1b "$testcvs -q ci -m allow-cvs-admin" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++cd ../..
++rm -r wnt
++
++write_secondary_wrapper() { :; }
++CVS_SERVER_secondary_wrapper_orig=$CVS_SERVER
++
+ # Now hide the primary root behind a secondary if requested.
+ if $proxy; then
+ # Save the primary root.
+@@ -2626,6 +2691,7 @@
+ if $noredirect; then
+ # Wrap the CVS server to allow --primary-root to be set by the
+ # secondary.
++ write_secondary_wrapper() {
+ cat <<EOF >$TESTDIR/secondary-wrapper
+ #! $TESTSHELL
+ CVS_SERVER=$TESTDIR/primary-wrapper
+@@ -2633,8 +2699,10 @@
+
+ # No need to check the PID of the last client since we are testing with
+ # Redirect disabled.
+-proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME"
+-exec $CVS_SERVER \$proot_arg "\$@"
++proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME \
++ --allow-root=$TESTDIR/crerepos \
++ --allow-root=$PRIMARY_CVSROOT_DIRNAME"
++exec $CVS_SERVER_secondary_wrapper_orig \$proot_arg "\$@"
+ EOF
+ cat <<EOF >$TESTDIR/primary-wrapper
+ #! $TESTSHELL
+@@ -2644,7 +2712,8 @@
+ fi
+ exec $CVS_SERVER "\$@"
+ EOF
+-
++ }
++ write_secondary_wrapper
+ CVS_SERVER_secondary=$TESTDIR/secondary-wrapper
+ CVS_SERVER=$CVS_SERVER_secondary
+
+@@ -2685,10 +2754,10 @@
+ # were written to.
+ case "\$cmd" in
+ add|import)
+- # For \`add', we need a recursive update due to quirks in rsync syntax,
++ # For 'add', we need a recursive update due to quirks in rsync syntax,
+ # but it shouldn't affect efficiency since any new dir should be empty.
+ #
+- # For \`import', a recursive update is necessary since subdirs may have
++ # For 'import', a recursive update is necessary since subdirs may have
+ # been added underneath the root dir we were passed.
+ $RSYNC -rglop \\
+ $PRIMARY_CVSROOT_DIRNAME/"\$dir" \\
+@@ -2696,7 +2765,7 @@
+ ;;
+
+ tag)
+- # \`tag' may have changed CVSROOT/val-tags too.
++ # 'tag' may have changed CVSROOT/val-tags too.
+ $RSYNC -glop \\
+ $PRIMARY_CVSROOT_DIRNAME/CVSROOT/val-tags \\
+ $SECONDARY_CVSROOT_DIRNAME/CVSROOT
+@@ -2726,7 +2795,7 @@
+ esac # \$dir
+
+ # Avoid timestamp comparison issues with rsync.
+-sleep 1
++sleep 2
+ EOF
+ chmod a+x $TESTDIR/sync-secondary
+
+@@ -2781,6 +2850,21 @@
+ ###
+ dotest init-2 "$testcvs init"
+
++# We might need to allow "cvs admin" access and full history.
++mkdir wnt
++cd wnt
++dotest init-2a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++cd CVSROOT
++sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
++ -e '/^LogHistory/d' \
++ <config >tmpconfig
++mv tmpconfig config
++dotest init-2b "$testcvs -q ci -m allow-cvs-admin" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++cd ../..
++rm -r wnt
+
+
+ ###
+@@ -2804,8 +2888,9 @@
+ Concurrent Versions System (CVS) [0-9.]*.*
+
+ Copyright (C) [0-9]* Free Software Foundation, Inc.
++Copyright (c) [0-9]* mirabilos .m.mirbsd.org.
+
+-Senior active maintainers include Larry Jones, Derek R. Price,
++Senior no longer active maintainers include Larry Jones, Derek R. Price,
+ and Mark D. Baushke. Please see the AUTHORS and README files from the CVS
+ distribution kit for a complete list of contributors and copyrights.
+
+@@ -2822,8 +2907,8 @@
+ #Secondary Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)'
+ if $remote; then
+ dotest version-2r "${testcvs} version" \
+-'Client: Concurrent Versions System (CVS) [0-9p.]* (client.*)
+-Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)'
++'Client: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (client.*)
++Server: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (.*server)'
+ else
+ dotest version-2 "${testcvs} version" \
+ 'Concurrent Versions System (CVS) [0-9.]*.*'
+@@ -2846,7 +2931,7 @@
+ dotest basica-0a "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest basica-0b "$testcvs add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd ..
+ rm -r 1
+
+@@ -2865,17 +2950,17 @@
+ # Remote CVS gives the "cannot open CVS/Entries" error, which is
+ # clearly a bug, but not a simple one to fix.
+ dotest basica-1a10 "$testcvs -n add sdir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository" \
++"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control" \
+ "$SPROG add: cannot open CVS/Entries for reading: No such file or directory
+-Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository"
++Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control"
+ dotest_fail basica-1a11 \
+ "test -d $CVSROOT_DIRNAME/first-dir/sdir"
+ dotest basica-2 "$testcvs add sdir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control"
+ cd sdir
+ mkdir ssdir
+ dotest basica-3 "$testcvs add ssdir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir put under version control"
+ cd ssdir
+ echo ssfile >ssfile
+
+@@ -3145,7 +3230,7 @@
+ dotest basicb-0d0 "${testcvs} -q co -l ." ""
+ mkdir first-dir
+ dotest basicb-0e "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd ..
+ rm -r 2
+
+@@ -3165,8 +3250,8 @@
+ # special only when it is directly in $CVSROOT/CVSROOT.
+ mkdir Emptydir sdir2
+ dotest basicb-2 "${testcvs} add Emptydir sdir2" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir added to the repository
+-Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir put under version control
++Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 put under version control"
+ cd Emptydir
+ echo sfile1 starts >sfile1
+ dotest basicb-2a10 "${testcvs} -n add sfile1" \
+@@ -3288,7 +3373,7 @@
+ dotest basicb-14 "${testcvs} -q co -l ." 'U topfile'
+ mkdir second-dir
+ dotest basicb-15 "${testcvs} add second-dir" \
+-"Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
+ cd second-dir
+ touch aa
+ dotest basicb-16 "${testcvs} add aa" \
+@@ -3327,10 +3412,17 @@
+ # many other folks are still using the older 'invalid option'
+ # lib/getopt.c will use POSIX when __posixly_correct
+ # otherwise the other, so accept both of them. -- mdb
++ # Added optional single quotes. -- mirabilos
++ # The above is actually untrue, POSIX only documents some older
++ # texts that can be used and explicitly leaves open the format
++ # of these messages. Also, GNU getopt is broken and does not
++ # use __progname in the first place. *sigh* -- mirabilos
++ # Also supporting either argv0 with both errors and optional
++ # quotes now. -- mirabilos
+ dotest_fail basicb-21 "${testcvs} -q admin -H" \
+-"admin: invalid option -- H
++"admin: i[ln][lv][ea][gl][ai][ld] option -- '*H'*
+ ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information" \
+-"admin: illegal option -- H
++"cvs: i[ln][lv][ea][gl][ai][ld] option -- '*H'*
+ ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information"
+ cd ..
+ rmdir 1
+@@ -3356,8 +3448,8 @@
+ dotest basicc-2 "$testcvs -q co -l ."
+ mkdir first-dir second-dir
+ dotest basicc-3 "${testcvs} add first-dir second-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
++Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
+ # Old versions of CVS often didn't create this top-level CVS
+ # directory in the first place. I think that maybe the only
+ # way to get it to work currently is to let CVS create it,
+@@ -3807,7 +3899,7 @@
+ for i in dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8; do
+ mkdir $i
+ dotest deep-2-$i "${testcvs} add $i" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* put under version control"
+ cd $i
+ echo file1 >file1
+ dotest deep-3-$i "${testcvs} add file1" \
+@@ -3924,7 +4016,7 @@
+ if test ! -d $i ; then
+ mkdir $i
+ dotest basic2-2-$i "${testcvs} add $i" \
+-"Directory ${CVSROOT_DIRNAME}/.*/$i added to the repository"
++"Directory ${CVSROOT_DIRNAME}/.*/$i put under version control"
+ fi
+
+ cd $i
+@@ -4907,14 +4999,14 @@
+
+ # try and list a file before it's created, during an old revision, in
+ # a period when it was dead and in the future
+- time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
++ time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
+ touch dated
+ dotest ls-D-init-1 "$testcvs -Q add dated"
+ dotest ls-D-init-2 "$testcvs -Q ci -mm dated"
+- time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
++ time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
+ echo mm >> dated
+ dotest ls-D-init-2 "$testcvs -Q ci -mm dated"
+- time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
++ time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
+ rm dated
+ dotest ls-D-init-3 "$testcvs -Q rm dated"
+ dotest ls-D-init-4 "$testcvs -Q ci -mm dated"
+@@ -4963,7 +5055,6 @@
+ CVSROOT=":pserver;proxy=localhost;proxyport=8080:localhost/dev/null"
+ dotest parseroot-3r "$testcvs -d'$CVSROOT' logout" \
+ "Logging out of :pserver:$username@localhost:2401/dev/null
+-$CPROG logout: warning: failed to open $HOME/\.cvspass for reading: No such file or directory
+ $CPROG logout: Entry not found."
+ CVSROOT=":pserver;proxyport=8080:localhost/dev/null"
+ dotest_fail parseroot-4r "$testcvs -d'$CVSROOT' logout" \
+@@ -5010,7 +5101,7 @@
+ dotest files-1 "${testcvs} -q co -l ." ""
+ mkdir first-dir
+ dotest files-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch tfile
+ dotest files-3 "${testcvs} add tfile" \
+@@ -5023,7 +5114,7 @@
+ dotest files-6 "${testcvs} -q update -r C" ""
+ mkdir dir
+ dotest files-7 "${testcvs} add dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control
+ --> Using per-directory sticky tag .C'"
+ cd dir
+ touch .file
+@@ -5032,12 +5123,12 @@
+ ${SPROG} add: use .${SPROG} commit. to add this file permanently"
+ mkdir sdir
+ dotest files-7c "${testcvs} add sdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir added to the repository
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir put under version control
+ --> Using per-directory sticky tag .C'"
+ cd sdir
+ mkdir ssdir
+ dotest files-8 "${testcvs} add ssdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir added to the repository
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir put under version control
+ --> Using per-directory sticky tag .C'"
+ cd ssdir
+ touch .file
+@@ -5117,10 +5208,10 @@
+ initial revision: 1\.1"
+ mkdir 'first dir'
+ dotest spacefiles-4 "${testcvs} add 'first dir'" \
+-"Directory ${CVSROOT_DIRNAME}/first dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first dir put under version control"
+ mkdir ./-b
+ dotest spacefiles-5 "${testcvs} add -- -b" \
+-"Directory ${CVSROOT_DIRNAME}/-b added to the repository"
++"Directory ${CVSROOT_DIRNAME}/-b put under version control"
+ cd 'first dir'
+ touch 'a file'
+ dotest spacefiles-6 "${testcvs} add 'a file'" \
+@@ -5193,7 +5284,7 @@
+ dotest status-init-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest status-init-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo a line >tfile
+ dotest status-init-3 "${testcvs} add tfile" \
+@@ -5285,7 +5376,7 @@
+ cd ..
+ mkdir fourth-dir
+ dotest status-init-8 "$testcvs add fourth-dir" \
+-"Directory $CVSROOT_DIRNAME/fourth-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/fourth-dir put under version control"
+ cd fourth-dir
+ echo yet another line >t3file
+ dotest status-init-9 "$testcvs add t3file" \
+@@ -5297,7 +5388,7 @@
+ cd ../first-dir
+ mkdir third-dir
+ dotest status-init-11 "$testcvs add third-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/third-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir/third-dir put under version control"
+ cd third-dir
+ echo another line >t2file
+ dotest status-init-12 "$testcvs add t2file" \
+@@ -5650,7 +5741,7 @@
+ dotest diff-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest diff-2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+
+ # diff is anomalous. Most CVS commands print the "nothing
+@@ -5697,7 +5788,7 @@
+ dotest diffnl-000 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest diffnl-001 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ ${AWK} 'BEGIN {printf("one\ntwo\nthree\nfour\nfive\nsix")}' </dev/null >abc
+@@ -5861,7 +5952,7 @@
+ # doesn't get confused by it.
+ mkdir subdir
+ dotest 65a0 "${testcvs} add subdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
+ cd subdir
+ echo file in subdir >sfile
+ dotest 65a1 "${testcvs} add sfile" \
+@@ -6590,7 +6681,7 @@
+ dotest rmadd-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest rmadd-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo first file1 >file1
+ dotest rmadd-3 "${testcvs} add file1" \
+@@ -6668,6 +6759,7 @@
+ >$CVSROOT_DIRNAME/CVSROOT/val-tags-tmp
+ mv $CVSROOT_DIRNAME/CVSROOT/val-tags-tmp \
+ $CVSROOT_DIRNAME/CVSROOT/val-tags
++ rm -f $CVSROOT_DIRNAME/CVSROOT/val-tags.db
+
+ dotest rmadd-18 "$testcvs -q update -p -r mynonbranch file1" \
+ "first file1"
+@@ -6733,7 +6825,7 @@
+ # now try forced revision with recursion
+ mkdir sub
+ dotest rmadd-26 "${testcvs} -q add sub" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/sub added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/sub put under version control"
+ echo hello >sub/subfile
+ dotest rmadd-27 "${testcvs} -q add sub/subfile" \
+ "${SPROG} add: use .${SPROG} commit. to add this file permanently"
+@@ -6790,7 +6882,7 @@
+ dotest rmadd2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest rmadd2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo 'initial contents' >file1
+ dotest rmadd2-3 "${testcvs} add file1" \
+@@ -6890,7 +6982,7 @@
+ dotest rmadd3-init1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest rmadd3-init2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo initial content for file1 >file1
+@@ -6941,7 +7033,7 @@
+ dotest resurrection-init1 "$testcvs -q co -l ." ''
+ mkdir first-dir
+ dotest resurrection-init2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+
+ echo initial content for file1 >file1
+@@ -7106,11 +7198,11 @@
+ dotest dirs2-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest dirs2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ mkdir sdir
+ dotest dirs2-3 "${testcvs} add sdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
+ touch sdir/file1
+ dotest dirs2-4 "${testcvs} add sdir/file1" \
+ "${SPROG} add: scheduling file .sdir/file1. for addition
+@@ -7452,7 +7544,7 @@
+ '"${SPROG}"' add: use .'"${SPROG}"' commit. to add this file permanently'
+ mkdir dir1
+ dotest branches2-9 "${testcvs} add dir1" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control
+ --> Using per-directory sticky tag "'`'"b1'"
+ echo "file3 first revision" > dir1/file3
+ dotest branches2-10 "${testcvs} add dir1/file3" \
+@@ -7802,7 +7894,7 @@
+ cd first-dir
+ mkdir dir2
+ dotest branches2-25 "${testcvs} add dir2" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control
+ --> Using per-directory sticky tag "'`'"b1'"
+ echo "file4 first revision" > dir2/file4
+ dotest branches2-26 "${testcvs} add dir2/file4" \
+@@ -7952,10 +8044,10 @@
+ cd first-dir
+ mkdir branches mixed mixed2 versions
+ dotest branches4-2 "${testcvs} -q add branches mixed mixed2 versions" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/branches added to the repository
+-Directory ${CVSROOT_DIRNAME}/first-dir/mixed added to the repository
+-Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 added to the repository
+-Directory ${CVSROOT_DIRNAME}/first-dir/versions added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/branches put under version control
++Directory ${CVSROOT_DIRNAME}/first-dir/mixed put under version control
++Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 put under version control
++Directory ${CVSROOT_DIRNAME}/first-dir/versions put under version control"
+
+ echo file1 >branches/file1
+ echo file2 >branches/file2
+@@ -8031,7 +8123,7 @@
+ dotest tagc-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest tagc-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1 file2
+ dotest tagc-3 "${testcvs} add file1 file2" \
+@@ -8052,7 +8144,7 @@
+ T file2"
+ # Avoid timestamp granularity bugs (FIXME: CVS should be
+ # doing the sleep, right?).
+- sleep 1
++ sleep 2
+ echo myedit >>file1
+ dotest tagc-6a "${testcvs} rm -f file2" \
+ "${SPROG} remove: scheduling .file2. for removal
+@@ -8193,7 +8285,7 @@
+ dotest tagf-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest tagf-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1 file2
+ dotest tagf-3 "${testcvs} add file1 file2" \
+@@ -8397,7 +8489,7 @@
+ dotest tag-space-init-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest tag-space-init-2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+ touch file1
+ dotest tag-space-init-3 "$testcvs add file1" \
+@@ -8672,7 +8764,7 @@
+ dotest rcslib-merge-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest rcslib-merge-2 "$testcvs -q add first-dir" \
+-"Directory $CVSROOT_DIRNAME.*/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME.*/first-dir put under version control"
+ cd ..; rm -r 1
+
+ dotest rcslib-merge-3 "$testcvs -q co first-dir" ""
+@@ -9320,8 +9412,7 @@
+ # Also the -d option.
+
+ # Set a predictable time zone for these tests.
+- save_TZ=$TZ
+- TZ=UTC0; export TZ
++ do_save_TZ
+
+ mkdir 1; cd 1
+ mkdir adir bdir cdir
+@@ -9444,7 +9535,7 @@
+ dotest_fail importc-12 "test -d ${TESTDIR}/other" ""
+
+ dokeep
+- TZ=$save_TZ
++ do_restore_TZ
+ cd ..
+ rm -r 1 2
+ modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
+@@ -9757,7 +9848,19 @@
+ N import-quirks-4/file1
+ N import-quirks-4/file2
+ N import-quirks-4/file3
+-No conflicts created by this import"
++No conflicts created by this import
++cvs import: warning: you are using an even vendor branch, which can
++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead." \
++"
++
++N import-quirks-4/file1
++N import-quirks-4/file2
++N import-quirks-4/file3
++No conflicts created by this import
++cvs import: warning: you are using an even vendor branch, which can
++cvs import: warning: you are using an even vendor branch, which can
++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead.
++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead."
+
+ dokeep
+ cd ..
+@@ -9785,14 +9888,18 @@
+ # Create the module.
+ dotest import-after-initial-1 \
+ "$testcvs -Q import -m. $module X Y" ''
++ sync >/dev/null 2>&1
+
+ file=m
+ # Check it out and add a file.
+ dotest import-after-initial-2 "$testcvs -Q co $module" ''
++ sync >/dev/null 2>&1
+ cd $module
+ echo original > $file
+ dotest import-after-initial-3 "${testcvs} -Q add $file" ""
++ sync >/dev/null 2>&1
+ dotest import-after-initial-4 "$testcvs -Q ci -m. $file"
++ sync >/dev/null 2>&1
+
+ # Delay a little so the following import isn't done in the same
+ # second as the preceding commit.
+@@ -9803,12 +9910,14 @@
+ mkdir sub
+ cd sub
+ echo newer-via-import > $file
++ sync >/dev/null 2>&1
+ dotest import-after-initial-5 \
+ "$testcvs -Q import -m. $module X Y2" ''
++ sync >/dev/null 2>&1
+ cd ..
+
+ # Sleep a second so we're sure to be after the second of the import.
+- sleep 1
++ sleep 2
+
+ dotest import-after-initial-6 \
+ "$testcvs -Q update -p -D now $file" 'original'
+@@ -10380,7 +10489,7 @@
+ dotest join2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest join2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo 'initial contents of file1' >file1
+ dotest join2-3 "${testcvs} add file1" \
+@@ -10489,7 +10598,7 @@
+ dotest join3-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest join3-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo 'initial contents of file1' >file1
+ dotest join3-3 "${testcvs} add file1" \
+@@ -11130,7 +11239,7 @@
+ module=x
+ mkdir $module
+ dotest join-admin-0-2 "$testcvs -q add $module" \
+-"Directory $CVSROOT_DIRNAME/$module added to the repository"
++"Directory $CVSROOT_DIRNAME/$module put under version control"
+ cd $module
+
+ # Create a file so applying the first tag works.
+@@ -11182,7 +11291,7 @@
+ module=x
+ mkdir $module
+ dotest join-admin-2-2 "$testcvs -q add $module" \
+-"Directory ${CVSROOT_DIRNAME}/x added to the repository"
++"Directory ${CVSROOT_DIRNAME}/x put under version control"
+ cd $module
+
+ # Create a file so applying the first tag works.
+@@ -11252,7 +11361,7 @@
+ dotest join-rm-init-1 "$testcvs -q co -l ." ''
+ mkdir $module
+ dotest join-rm-init-2 "$testcvs -q add $module" \
+-"Directory $CVSROOT_DIRNAME/$module added to the repository"
++"Directory $CVSROOT_DIRNAME/$module put under version control"
+ cd $module
+
+ # add some files.
+@@ -11497,7 +11606,7 @@
+ echo add a line >>a
+ mkdir dir1
+ dotest conflicts-127b "${testcvs} add dir1" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
+ dotest conflicts-128 "${testcvs} -q ci -m changed" \
+ "$CVSROOT_DIRNAME/first-dir/a,v <-- a
+ new revision: 1\.2; previous revision: 1\.1"
+@@ -11945,7 +12054,7 @@
+ dotest conflicts3-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest conflicts3-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd ..
+ mkdir 2; cd 2
+ dotest conflicts3-3 "${testcvs} -q co -l first-dir" ''
+@@ -11994,7 +12103,7 @@
+ # and see that CVS doesn't lose its mind.
+ mkdir sdir
+ dotest conflicts3-14 "${testcvs} add sdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
+ touch sdir/sfile
+ dotest conflicts3-14a "${testcvs} add sdir/sfile" \
+ "${SPROG} add: scheduling file .sdir/sfile. for addition
+@@ -12107,7 +12216,7 @@
+ dotest clean-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest clean-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo "The usual boring test text." > cleanme.txt
+ dotest clean-3 "${testcvs} add cleanme.txt" \
+@@ -12437,12 +12546,12 @@
+ cd first-dir
+ mkdir subdir
+ dotest modules-143a "${testcvs} add subdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
+
+ cd subdir
+ mkdir ssdir
+ dotest modules-143b "${testcvs} add ssdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control"
+
+ touch a b
+
+@@ -12699,9 +12808,9 @@
+ mkdir first-dir second-dir third-dir
+ dotest modules2-setup-2 \
+ "${testcvs} add first-dir second-dir third-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/third-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
++Directory ${CVSROOT_DIRNAME}/second-dir put under version control
++Directory ${CVSROOT_DIRNAME}/third-dir put under version control"
+ cd third-dir
+ touch file3
+ dotest modules2-setup-3 "${testcvs} add file3" \
+@@ -12947,7 +13056,7 @@
+ dotest modules3-0 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest modules3-1 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+
+ cd first-dir
+ echo file1 >file1
+@@ -13008,11 +13117,11 @@
+ cd second-dir
+ mkdir suba
+ dotest modules3-7-workaround1 "${testcvs} add suba" \
+-"Directory ${CVSROOT_DIRNAME}/second-dir/suba added to the repository"
++"Directory ${CVSROOT_DIRNAME}/second-dir/suba put under version control"
+ cd suba
+ mkdir subb
+ dotest modules3-7-workaround2 "${testcvs} add subb" \
+-"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb added to the repository"
++"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb put under version control"
+ cd ../..
+ fi
+
+@@ -13113,13 +13222,13 @@
+ dotest modules4-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest modules4-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+
+ cd first-dir
+ mkdir subdir subdir_long
+ dotest modules4-3 "${testcvs} add subdir subdir_long" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository
+-Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control
++Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long put under version control"
+
+ echo file1 > file1
+ dotest modules4-4 "${testcvs} add file1" \
+@@ -13248,11 +13357,11 @@
+ cd first-dir
+ mkdir subdir
+ dotest modules5-2 "${testcvs} add subdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
+ cd subdir
+ mkdir ssdir
+ dotest modules5-3 "${testcvs} add ssdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control"
+ touch a b
+ dotest modules5-4 "${testcvs} add a b" \
+ "${SPROG} add: scheduling file .a. for addition
+@@ -13291,7 +13400,7 @@
+ for i in checkout export tag; do
+ cat >> ${CVSROOT_DIRNAME}/$i.sh <<EOF
+ #! $TESTSHELL
+-sleep 1
++sleep 2
+ echo "$i script invoked in \`pwd\`"
+ echo "args: \$@"
+ EOF
+@@ -13950,12 +14059,12 @@
+ mkdir mod2-2
+ mkdir mod2-2/sub2-2
+ dotest cvsadm-2a "${testcvs} add mod1 mod1-2 mod2 mod2/sub2 mod2-2 mod2-2/sub2-2" \
+-"Directory ${CVSROOT_DIRNAME}/mod1 added to the repository
+-Directory ${CVSROOT_DIRNAME}/mod1-2 added to the repository
+-Directory ${CVSROOT_DIRNAME}/mod2 added to the repository
+-Directory ${CVSROOT_DIRNAME}/mod2/sub2 added to the repository
+-Directory ${CVSROOT_DIRNAME}/mod2-2 added to the repository
+-Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/mod1 put under version control
++Directory ${CVSROOT_DIRNAME}/mod1-2 put under version control
++Directory ${CVSROOT_DIRNAME}/mod2 put under version control
++Directory ${CVSROOT_DIRNAME}/mod2/sub2 put under version control
++Directory ${CVSROOT_DIRNAME}/mod2-2 put under version control
++Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 put under version control"
+
+ # Populate the directories for the halibut
+ echo "file1" > mod1/file1
+@@ -15001,7 +15110,7 @@
+ echo "file1" > mod1/file1
+ mkdir moda/modasub
+ dotest emptydir-3b "${testcvs} add moda/modasub" \
+-"Directory ${CVSROOT_DIRNAME}/moda/modasub added to the repository"
++"Directory ${CVSROOT_DIRNAME}/moda/modasub put under version control"
+ echo "filea" > moda/modasub/filea
+ dotest emptydir-4 "${testcvs} add mod1/file1 moda/modasub/filea" \
+ "${SPROG} add: scheduling file .mod1/file1. for addition
+@@ -15328,8 +15437,8 @@
+ dotest toplevel-1 "${testcvs} -q co -l ." ''
+ mkdir top-dir second-dir
+ dotest toplevel-2 "${testcvs} add top-dir second-dir" \
+-"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/top-dir put under version control
++Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
+ cd top-dir
+
+ touch file1
+@@ -15447,8 +15556,8 @@
+ dotest toplevel2-1 "${testcvs} -q co -l ." ''
+ mkdir top-dir second-dir
+ dotest toplevel2-2 "${testcvs} add top-dir second-dir" \
+-"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/top-dir put under version control
++Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
+ cd top-dir
+
+ touch file1
+@@ -15686,7 +15795,7 @@
+ # can see the "CVS:" lines.
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ sed <\$1 -e 's/^/x/' >${TESTDIR}/edit.new
+ mv ${TESTDIR}/edit.new \$1
+ exit 0
+@@ -15697,7 +15806,7 @@
+ dotest editor-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest editor-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1 file2
+ dotest editor-3 "${testcvs} add file1 file2" \
+@@ -15741,6 +15850,7 @@
+ revision 1\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
+ branches: 1\.1\.2;
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15752,6 +15862,7 @@
+ ----------------------------
+ revision 1\.1\.2\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15779,6 +15890,7 @@
+ revision 1\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
+ branches: 1\.1\.2;
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15790,6 +15902,7 @@
+ ----------------------------
+ revision 1\.1\.2\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15811,6 +15924,7 @@
+ revision 1\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
+ branches: 1\.1\.2;
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15822,6 +15936,7 @@
+ ----------------------------
+ revision 1\.1\.2\.1
+ date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
++x
+ xCVS: ----------------------------------------------------------------------
+ xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
+ xCVS:
+@@ -15836,7 +15951,7 @@
+ # Test CVS's response to an unchanged log message
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ exit 0
+ EOF
+ chmod +x ${TESTDIR}/editme
+@@ -15849,7 +15964,7 @@
+ # Test CVS's response to an empty log message
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ cat /dev/null >\$1
+ exit 0
+ EOF
+@@ -15863,7 +15978,7 @@
+ # Test CVS's response to a log message with one blank line
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ echo >\$1
+ exit 0
+ EOF
+@@ -15877,7 +15992,7 @@
+ # Test CVS's response to a log message with only comments
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ cat \$1 >${TESTDIR}/edit.new
+ mv ${TESTDIR}/edit.new \$1
+ exit 0
+@@ -15905,7 +16020,7 @@
+ cd ../first-dir
+ cat >${TESTDIR}/editme <<EOF
+ #!${TESTSHELL}
+-sleep 1
++sleep 2
+ cp /dev/null \$1
+ exit 1
+ EOF
+@@ -16065,7 +16180,7 @@
+ cd ..
+ mkdir env
+ dotest env-3 "${testcvs} -q add env" \
+-"Directory ${CVSROOT_DIRNAME}/env added to the repository"
++"Directory ${CVSROOT_DIRNAME}/env put under version control"
+ cd env
+ echo testing >file1
+ dotest env-4 "${testcvs} add file1" \
+@@ -16159,7 +16274,7 @@
+ dotest errmsg2-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest errmsg2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ dotest_fail errmsg2-3 "${testcvs} add CVS" \
+ "${CPROG} add: cannot add special file .CVS.; skipping"
+@@ -16189,7 +16304,7 @@
+ mkdir sdir
+ cd ..
+ dotest errmsg2-8 "${testcvs} add first-dir/sdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
+ # while we're here... check commit with no CVS directory
+ dotest_fail errmsg2-8a "${testcvs} -q ci first-dir nonexistant" \
+ "${CPROG} commit: nothing known about .nonexistant'
+@@ -16205,7 +16320,7 @@
+ mkdir sdir10
+ dotest errmsg2-10 "${testcvs} add file10 sdir10" \
+ "${SPROG} add: scheduling file .file10. for addition
+-Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 added to the repository
++Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 put under version control
+ ${SPROG} add: use .${SPROG} commit. to add this file permanently"
+ dotest errmsg2-11 "${testcvs} -q ci -m add-file10" \
+ "$CVSROOT_DIRNAME/first-dir/file10,v <-- file10
+@@ -16219,7 +16334,7 @@
+ cd ..
+ mkdir first-dir/sdir10/ssdir
+ dotest errmsg2-13 "${testcvs} add first-dir/sdir10/ssdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir put under version control"
+
+ touch first-dir/sdir10/ssdir/ssfile
+ dotest errmsg2-14 \
+@@ -16360,7 +16475,7 @@
+ dotest adderrmsg-init1 "${testcvs} -q co -l ." ''
+ mkdir adderrmsg-dir
+ dotest adderrmsg-init2 "${testcvs} add adderrmsg-dir" \
+-"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir put under version control"
+ cd adderrmsg-dir
+
+ # try to add the admin dir
+@@ -16839,7 +16954,7 @@
+ dotest watch4-0a "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest watch4-0b "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+
+ cd first-dir
+ dotest watch4-1 "${testcvs} watch on" ''
+@@ -16854,7 +16969,7 @@
+ # Now test the analogous behavior for directories.
+ mkdir subdir
+ dotest watch4-4 "${testcvs} add subdir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
+ cd subdir
+ touch sfile
+ dotest watch4-5 "${testcvs} add sfile" \
+@@ -16945,7 +17060,7 @@
+ dotest watch5-0a "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest watch5-0b "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+
+ cd first-dir
+ dotest watch5-1 "${testcvs} watch on" ''
+@@ -17125,7 +17240,7 @@
+ dotest edit-check-0a "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest edit-check-0b "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+
+ cd first-dir
+ dotest edit-check-1 "$testcvs watch on"
+@@ -17243,7 +17358,7 @@
+
+ # Manually fake another editor:
+
+- # Try to gaurantee a seperate name for an "other" user editting
++ # Try to guarantee a seperate name for an "other" user editing
+ # the file.
+ otherUser="dummyUser"
+ if [ x"$USER" = x"$otherUser" ] ; then
+@@ -17374,7 +17489,7 @@
+
+ mkdir second-dir
+ dotest edit-check-32c "$testcvs add second-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control"
+ cd second-dir
+ echo ThirdFile >file3
+
+@@ -18770,7 +18885,7 @@
+ dotest mwrap-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest mwrap-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch aa
+ dotest mwrap-3 "${testcvs} add aa" \
+@@ -19180,7 +19295,7 @@
+ exit 0
+ else
+ echo "No BugId found."
+- sleep 1
++ sleep 2
+ exit 1
+ fi
+ EOF
+@@ -19747,7 +19862,7 @@
+ dotest taginfo-newfmt-8 "${testcvs} -q tag tag1" ""
+ mkdir sdir
+ dotest taginfo-newfmt-8b "${testcvs} -q add sdir" \
+-"Directory ${TESTDIR}/cvsroot/first-dir/sdir added to the repository"
++"Directory ${TESTDIR}/cvsroot/first-dir/sdir put under version control"
+ touch sdir/file3
+ dotest taginfo-newfmt-8c "${testcvs} -q add sdir/file3" \
+ "${SPROG} add: use .${SPROG} commit. to add this file permanently"
+@@ -20043,7 +20158,7 @@
+ new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
+ $SPROG commit: Rebuilding administrative file database"
+
+- sleep 1
++ sleep 2
+ echo '# noop' >> config
+ dotest config-7 "$testcvs -q ci -mlog-commit" \
+ "$CVSROOT_DIRNAME/CVSROOT/config,v <-- config
+@@ -21586,7 +21701,7 @@
+ dotest logopt-1 "$testcvs -q co -l ." ''
+ mkdir first-dir
+ dotest logopt-2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+ echo hi >file1
+ dotest logopt-3 "${testcvs} add file1" \
+@@ -21631,7 +21746,7 @@
+ dotest ann-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest ann-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ cat >file1 <<EOF
+ this
+@@ -21811,7 +21926,7 @@
+ module=x
+ mkdir $module
+ dotest ann-id-2 "${testcvs} add $module" \
+-"Directory ${CVSROOT_DIRNAME}/$module added to the repository"
++"Directory ${CVSROOT_DIRNAME}/$module put under version control"
+ cd $module
+
+ file=m
+@@ -21946,9 +22061,10 @@
+ # can look up '..' and want to ask the user about the unknown host
+ # key or somesuch. Which error message we get depends on whether
+ # false finishes running before we try to talk to it or not.
++ # We don't even get to talk to it as of 1.12.13-MirOS-0AB8.2 tho.
+ dotest_fail crerepos-6a "CVS_RSH=false ${testcvs} -q -d ../crerepos get ." \
+-"${SPROG} \[checkout aborted\]: end of file from server (consult above messages if any)" \
+-"${SPROG} \[checkout aborted\]: received broken pipe signal"
++"${SPROG} checkout: Missing or bad hostname in CVSROOT\.
++${SPROG} \[checkout aborted\]: Bad CVSROOT: .\.\./crerepos.\."
+ cd ..
+ rm -r 1
+
+@@ -21972,7 +22088,7 @@
+ dotest crerepos-8 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest crerepos-9 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1
+ dotest crerepos-10 "${testcvs} add file1" \
+@@ -21988,7 +22104,7 @@
+ dotest crerepos-12 "$testcvs -d $CREREPOS_ROOT -q co -l ."
+ mkdir crerepos-dir
+ dotest crerepos-13 "$testcvs add crerepos-dir" \
+-"Directory $TESTDIR/crerepos/crerepos-dir added to the repository"
++"Directory $TESTDIR/crerepos/crerepos-dir put under version control"
+ cd crerepos-dir
+ touch cfile
+ dotest crerepos-14 "${testcvs} add cfile" \
+@@ -22039,8 +22155,7 @@
+
+ # Save the timezone and set it to UTC for these tests to make the
+ # value more predicatable.
+- save_TZ=$TZ
+- TZ=UTC0; export TZ
++ do_save_TZ
+
+ modify_repo mkdir $CVSROOT_DIRNAME/first-dir
+
+@@ -22517,7 +22632,7 @@
+ revision 1\.4"
+
+ dokeep
+- TZ=$save_TZ
++ do_restore_TZ
+ cd ..
+ rm -r first-dir
+ modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
+@@ -22707,8 +22822,7 @@
+ # revisions 1.1 and 1.1.1.1 differ by 1 second.
+
+ # Need a predictable time zone.
+- save_TZ=$TZ
+- TZ=UTC0; export TZ
++ do_save_TZ
+
+ mkdir rcs4
+ cd rcs4
+@@ -22766,7 +22880,7 @@
+ Sticky Options: (none)'
+
+ dokeep
+- TZ=$save_TZ
++ do_restore_TZ
+ cd ../..
+ rm -r rcs4
+ modify_repo rm -rf $CVSROOT_DIRNAME/rcs4-dir
+@@ -23087,11 +23201,11 @@
+ dotest backuprecover-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest backuprecover-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ mkdir dir
+ dotest backuprecover-3 "${testcvs} add dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control"
+ touch file1 dir/file2
+ dotest backuprecover-4 "${testcvs} -q add file1 dir/file2" \
+ "${SPROG} add: use \`${SPROG} commit' to add these files permanently"
+@@ -23348,7 +23462,7 @@
+ dotest sshstdio-1 "$testcvs -d $SSHSTDIO_ROOT -q co -l ."
+ mkdir first-dir
+ dotest sshstdio-2 "$testcvs add first-dir" \
+- "Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++ "Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+ a='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ c='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+@@ -23497,7 +23611,7 @@
+ dotest parseroot3-9 "$testcvs -Q co -ldtop ."
+ dotest parseroot3-10 "test -d top"
+ dotest parseroot3-11 "test -d top/CVS"
+- dotest parseroot3-10 "cat top/CVS/Root" "$CVSROOT"
++ dotest parseroot3-12 "cat top/CVS/Root" "$CVSROOT"
+
+ dokeep
+ cd ..
+@@ -23526,16 +23640,17 @@
+ continue
+ fi
+
++ # times have been tweaked so leap seconds don't matter
+ cat <<EOF >$CVSROOT_DIRNAME/CVSROOT/history
+-O3395c677|anonymous|<remote>/*0|ccvs||ccvs
++O3395c684|anonymous|<remote>/*0|ccvs||ccvs
+ O3396c677|anonymous|<remote>/src|ccvs||src
+ O3397c677|kingdon|<remote>/*0|ccvs||ccvs
+ M339cafae|nk|<remote>|ccvs/src|1.229|sanity.sh
+-M339cafff|anonymous|<remote>|ccvs/src|1.23|Makefile
++M339cb00c|anonymous|<remote>|ccvs/src|1.23|Makefile
+ M339dc339|kingdon|~/work/*0|ccvs/src|1.231|sanity.sh
+ W33a6eada|anonymous|<remote>*4|ccvs/emx||Makefile.in
+ C3b235f50|kingdon|<remote>|ccvs/emx|1.3|README
+-M3b23af50|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo
++M3b23af62|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo
+ EOF
+
+ dotest history-1 "${testcvs} history -e -a" \
+@@ -23691,7 +23806,7 @@
+ dotest modes-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest modes-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch aa
+ dotest modes-3 "${testcvs} add aa" \
+@@ -23817,7 +23932,7 @@
+ dotest modes2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest modes2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch aa
+ dotest modes2-3 "${testcvs} add aa" \
+@@ -23864,8 +23979,8 @@
+ dotest modes3-1 "$testcvs -q co -l ."
+ mkdir first-dir second-dir
+ dotest modes3-2 "${testcvs} add first-dir second-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
+-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
++Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
+ touch first-dir/aa second-dir/ab
+ dotest modes3-3 "${testcvs} add first-dir/aa second-dir/ab" \
+ "${SPROG} add: scheduling file .first-dir/aa. for addition
+@@ -23944,7 +24059,7 @@
+ dotest stamps-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest stamps-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch aa
+ echo '$''Id$' >kw
+@@ -24073,7 +24188,7 @@
+ dotest perms-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest perms-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ touch foo
+@@ -24115,7 +24230,7 @@
+ dotest symlinks-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest symlinks-2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+
+ dotest symlinks-2.1 "ln -s $TESTDIR/fumble slink"
+@@ -24158,7 +24273,7 @@
+ dotest symlinks2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest symlinks2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo nonsymlink > slink
+ dotest symlinks2-3 "${testcvs} add slink" \
+@@ -24196,7 +24311,7 @@
+ dotest hardlinks-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest hardlinks-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ # Make up some ugly filenames, to test that they get
+@@ -24285,7 +24400,7 @@
+ dotest sticky-1 "$testcvs -q co -l ."
+ mkdir first-dir
+ dotest sticky-2 "$testcvs add first-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir put under version control"
+ cd first-dir
+
+ touch file1
+@@ -24390,7 +24505,7 @@
+ dotest keyword-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest keyword-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo '$''Author$' > file1
+@@ -24595,7 +24710,7 @@
+ dotest keywordlog-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest keywordlog-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ echo initial >file1
+ dotest keywordlog-3 "${testcvs} add file1" \
+@@ -24852,7 +24967,7 @@
+ xx"
+
+ cd ../CVSROOT
+- echo "MaxCommentLeaderLength=1k" >>config
++ echo "MaxCommentLeaderLength=1K" >>config
+ dotest keywordlog-35 "$testcvs -Q ci -mset-MaxCommentLeaderLength"
+
+ cd ../first-dir
+@@ -24892,7 +25007,7 @@
+ dotest keywordname-init-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest keywordname-init-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo '$'"Name$" >file1
+@@ -25012,7 +25127,7 @@
+ dotest keyword2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest keyword2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo '$''Revision$' >> file1
+@@ -25214,7 +25329,7 @@
+ ${PLUS} modify on branch
+ ${PLUS} modify on branch after brtag"
+
+- # With a branch sticky tag, HEAD is the head of the trunk.
++ # Even with a branch sticky tag, HEAD is the head of the trunk.
+ dotest head-br1-setup "${testcvs} -q update -r br1" "[UP] file1"
+ dotest head-br1-update "${testcvs} -q update -r HEAD -p file1" \
+ "imported contents
+@@ -25222,7 +25337,26 @@
+ add a line on trunk after trunktag"
+ # But diff thinks that HEAD is "br1". Case (b) from cvs.texinfo.
+ # Probably people are relying on it.
+- dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
++ #dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
++ dotest head-br1-diffdot "${testcvs} -q diff -c -r .bhead -r br1" ""
++ # Always. Fuck people relying on it.
++ dotest_fail head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" \
++"Index: file1
++===================================================================
++RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
++retrieving revision 1\.3
++retrieving revision 1\.3\.2\.2
++diff -c -r1\.3 -r1\.3\.2\.2
++\*\*\* file1 ${RFCDATE} 1\.3
++--- file1 ${RFCDATE} 1\.3\.2\.2
++\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
++\*\*\* 1,3 \*\*\*\*
++--- 1,5 ----
++ imported contents
++ add a line on trunk
++ add a line on trunk after trunktag
++${PLUS} modify on branch
++${PLUS} modify on branch after brtag"
+
+ # With a nonbranch sticky tag on a branch,
+ # HEAD is the head of the trunk
+@@ -25235,7 +25369,26 @@
+ # CVS 1.9 and older thought that HEAD is "brtag" (this was
+ # noted as "strange, maybe accidental"). But "br1" makes a
+ # whole lot more sense.
+- dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
++ #dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
++ dotest head-brtag-diffdot "${testcvs} -q diff -c -r .bhead -r br1" ""
++ # HEAD is always tip of the trunk.
++ dotest_fail head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" \
++"Index: file1
++===================================================================
++RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
++retrieving revision 1\.3
++retrieving revision 1\.3\.2\.2
++diff -c -r1\.3 -r1\.3\.2\.2
++\*\*\* file1 ${RFCDATE} 1\.3
++--- file1 ${RFCDATE} 1\.3\.2\.2
++\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
++\*\*\* 1,3 \*\*\*\*
++--- 1,5 ----
++ imported contents
++ add a line on trunk
++ add a line on trunk after trunktag
++${PLUS} modify on branch
++${PLUS} modify on branch after brtag"
+
+ # With a nonbranch sticky tag on the trunk, HEAD is the head
+ # of the trunk, I think.
+@@ -25319,12 +25472,11 @@
+ # for checkout and update as well.
+ #
+ mkdir 1; cd 1
+- save_TZ=$TZ
+- TZ=UTC0; export TZ
++ do_save_TZ
+ dotest tagdate-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest tagdate-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo trunk-1 >file1
+@@ -25784,7 +25936,7 @@
+
+ unset date_T1 date_T2 date_T3 date_T4 date_T5
+ unset date_T6 date_T7 date_T8 date_T9
+- TZ=$save_TZ
++ do_restore_TZ
+
+ dokeep
+ rm -r 1 2 3 4
+@@ -25802,7 +25954,7 @@
+ dotest multibranch2-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest multibranch2-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ echo trunk-1 >file1
+@@ -26038,7 +26190,7 @@
+ dotest admin-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest admin-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+
+ dotest_fail admin-3 "${testcvs} -q admin -i file1" \
+@@ -27002,7 +27154,7 @@
+ dotest reserved-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest reserved-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1
+ dotest reserved-3 "${testcvs} add file1" \
+@@ -28061,18 +28213,18 @@
+ dotest release-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest release-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ mkdir dir1
+ dotest release-3 "${testcvs} add dir1" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
+ mkdir dir2
+ dotest release-4 "${testcvs} add dir2" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control"
+ cd dir2
+ mkdir dir3
+ dotest release-5 "${testcvs} add dir3" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control"
+
+ cd ../..
+ dotest release-6 "${testcvs} release -d first-dir/dir2/dir3 first-dir/dir1" \
+@@ -28093,11 +28245,11 @@
+ cd first-dir
+ mkdir dir1
+ dotest release-10 "${testcvs} add dir1" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
+ cd dir2
+ mkdir dir3
+ dotest release-11 "${testcvs} add dir3" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control"
+
+ cd ../..
+ dotest release-12 "${testcvs} release first-dir/dir2/dir3 first-dir/dir1" \
+@@ -28148,7 +28300,7 @@
+ cd first-dir
+ mkdir second-dir
+ dotest release-18 "$testcvs add second-dir" \
+-"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository"
++"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control"
+
+ cd second-dir
+ touch file1
+@@ -28756,8 +28908,34 @@
+ testcvs2="$testcvs -d '$CVSROOT2'"
+
+ dotest multiroot-setup-1 "mkdir $CVSROOT1_DIRNAME $CVSROOT2_DIRNAME"
++
+ dotest multiroot-setup-2 "$testcvs1 init"
++ # remove automatically-created LogHistory to work around the fact
++ # that CVS does not track those per root (and thus warns about
++ # encountering multiple of these entries)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot-setup-2a "$testcvs1 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot-setup-2b "$testcvs1 -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
++
+ dotest multiroot-setup-3 "$testcvs2 init"
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot-setup-3a "$testcvs2 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot-setup-3b "$testcvs2 -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+
+ #
+ # create some directories in ${CVSROOT1_DIRNAME}
+@@ -28766,8 +28944,8 @@
+ dotest multiroot-setup-4 "${testcvs1} co -l ." "${SPROG} checkout: Updating ."
+ mkdir mod1-1 mod1-2
+ dotest multiroot-setup-5 "${testcvs1} add mod1-1 mod1-2" \
+-"Directory ${CVSROOT1_DIRNAME}/mod1-1 added to the repository
+-Directory ${CVSROOT1_DIRNAME}/mod1-2 added to the repository"
++"Directory ${CVSROOT1_DIRNAME}/mod1-1 put under version control
++Directory ${CVSROOT1_DIRNAME}/mod1-2 put under version control"
+ echo file1-1 > mod1-1/file1-1
+ echo file1-2 > mod1-2/file1-2
+ dotest multiroot-setup-6 "${testcvs1} add mod1-1/file1-1 mod1-2/file1-2" \
+@@ -28792,8 +28970,8 @@
+ dotest multiroot-setup-8 "${testcvs2} co -l ." "${SPROG} checkout: Updating ."
+ mkdir mod2-1 mod2-2
+ dotest multiroot-setup-9 "${testcvs2} add mod2-1 mod2-2" \
+-"Directory ${CVSROOT2_DIRNAME}/mod2-1 added to the repository
+-Directory ${CVSROOT2_DIRNAME}/mod2-2 added to the repository"
++"Directory ${CVSROOT2_DIRNAME}/mod2-1 put under version control
++Directory ${CVSROOT2_DIRNAME}/mod2-2 put under version control"
+ echo file2-1 > mod2-1/file2-1
+ echo file2-2 > mod2-2/file2-2
+ dotest multiroot-setup-6 "${testcvs2} add mod2-1/file2-1 mod2-2/file2-2" \
+@@ -29861,7 +30039,29 @@
+ CVSROOT2=`newroot $CVSROOT2_DIRNAME`
+
+ dotest multiroot2-1 "${testcvs} -d ${CVSROOT1} init" ""
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot2-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot2-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+ dotest multiroot2-2 "${testcvs} -d ${CVSROOT2} init" ""
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot2-2a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot2-2b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+
+ mkdir imp-dir; cd imp-dir
+ echo file1 >file1
+@@ -30017,12 +30217,34 @@
+
+ mkdir 1; cd 1
+ dotest multiroot3-1 "${testcvs} -d ${CVSROOT1} init" ""
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot3-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot3-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+ dotest multiroot3-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
+ mkdir dir1
+ dotest multiroot3-3 "${testcvs} add dir1" \
+-"Directory ${TESTDIR}/root1/dir1 added to the repository"
++"Directory ${TESTDIR}/root1/dir1 put under version control"
+ dotest multiroot3-4 "${testcvs} -d ${CVSROOT2} init" ""
+ rm -r CVS
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot3-4a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot3-4b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+ dotest multiroot3-5 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
+ mkdir dir2
+
+@@ -30037,7 +30259,7 @@
+ echo "D/dir2////" >>CVS/Entries
+
+ dotest multiroot3-7 "${testcvs} add dir2" \
+-"Directory ${TESTDIR}/root2/dir2 added to the repository"
++"Directory ${TESTDIR}/root2/dir2 put under version control"
+
+ touch dir1/file1 dir2/file2
+ if $remote; then
+@@ -30143,10 +30365,21 @@
+
+ mkdir 1; cd 1
+ dotest multiroot4-1 "${testcvs} -d ${CVSROOT1} init" ""
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot4-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot4-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+ dotest multiroot4-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
+ mkdir dircom
+ dotest multiroot4-3 "${testcvs} add dircom" \
+-"Directory ${TESTDIR}/root1/dircom added to the repository"
++"Directory ${TESTDIR}/root1/dircom put under version control"
+ cd dircom
+ touch file1
+ dotest multiroot4-4 "${testcvs} add file1" \
+@@ -30158,10 +30391,21 @@
+ cd ../..
+ mkdir 2; cd 2
+ dotest multiroot4-6 "${testcvs} -d ${CVSROOT2} init" ""
++ # remove automatically-created LogHistory (see above)
++ mkdir wrkarnd; cd wrkarnd
++ dotest multiroot4-6a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
++ cd CVSROOT
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
++ dotest multiroot4-6b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
++".*/CVSROOT/config,v <-- config
++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
++$SPROG commit: Rebuilding administrative file database"
++ cd ../..; rm -r wrkarnd
+ dotest multiroot4-7 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
+ mkdir dircom
+ dotest multiroot4-8 "${testcvs} add dircom" \
+-"Directory ${TESTDIR}/root2/dircom added to the repository"
++"Directory ${TESTDIR}/root2/dircom put under version control"
+ cd dircom
+ touch file2
+ dotest multiroot4-9 "${testcvs} add file2" \
+@@ -30179,7 +30423,7 @@
+ # repository) and so on would also look the same.
+ mkdir sdir2
+ dotest multiroot4-11 "${testcvs} -d ${CVSROOT2} add sdir2" \
+-"Directory ${TESTDIR}/root2/dircom/sdir2 added to the repository"
++"Directory ${TESTDIR}/root2/dircom/sdir2 put under version control"
+
+ dotest multiroot4-12 "${testcvs} -q update" ""
+ cd ..
+@@ -30208,7 +30452,7 @@
+ dotest rmroot-setup-1 "${testcvs} -q co -l ." ''
+ mkdir first-dir
+ dotest rmroot-setup-2 "${testcvs} add first-dir" \
+-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
+ cd first-dir
+ touch file1 file2
+ dotest rmroot-setup-3 "${testcvs} add file1 file2" \
+@@ -30383,7 +30627,7 @@
+ willfail: :whocares
+ EOF
+ dotest_fail pserver-3 "$servercvs pserver" \
+-"error 0 Server configuration missing --allow-root in inetd.conf" <<EOF
++"error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf" <<EOF
+ BEGIN AUTH REQUEST
+ $CVSROOT_DIRNAME
+ testme
+@@ -30391,6 +30635,26 @@
+ END AUTH REQUEST
+ EOF
+
++ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$'
++ dotest pserver-3b "${testcvs} --allow-root-regexp=$regexp pserver" \
++"I LOVE YOU" <<EOF
++BEGIN AUTH REQUEST
++${CVSROOT_DIRNAME}
++testme
++Ay::'d
++END AUTH REQUEST
++EOF
++
++ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$'
++ dotest_fail pserver-3c "${testcvs} --allow-root-regexp=$regexp pserver" \
++"$CPROG \\[pserver aborted\\]: ${CVSROOT_DIRNAME}/subdir: no such repository" <<EOF
++BEGIN AUTH REQUEST
++${CVSROOT_DIRNAME}/subdir
++testme
++Ay::'d
++END AUTH REQUEST
++EOF
++
+ # Confirm that not sending a newline during auth cannot constitute
+ # a denial-of-service attack. This assumes that PATH_MAX is less
+ # than 65536 bytes. If PATH_MAX is larger than 65535 bytes, this
+@@ -30925,7 +31189,7 @@
+ EOF
+
+ dotest server-9 "${servercvs} server" \
+-"E Protocol error; misformed Notify request
++"E Protocol error; malformed Notify request
+ error " <<EOF
+ Root ${TESTDIR}/crerepos
+ Directory .
+@@ -31033,6 +31297,8 @@
+ EOF
+ echo THIS-CONFIG-OPTION-IS-BAD=XXX >$TESTDIR/newconfig
+ dotest_fail server-20 "$testcvs server -c $TESTDIR/newconfig" \
++"Usage: cvs server
++Normally invoked by a cvs client on a remote machine." \
+ "E $SPROG \[server aborted\]: Invalid path to config file specified: \`$TESTDIR/newconfig'" <<EOF
+ Root $TESTDIR/crerepos
+ Directory .
+@@ -31041,6 +31307,8 @@
+ EOF
+ dotest_fail server-21 \
+ "$testcvs server -c /etc/cvs/this-shouldnt-exist" \
++"Usage: cvs server
++Normally invoked by a cvs client on a remote machine." \
+ "E $SPROG \[server aborted\]: Failed to resolve path: \`/etc/cvs/this-shouldnt-exist': No such file or directory" <<EOF
+ Root $TESTDIR/crerepos
+ Directory .
+@@ -31101,7 +31369,7 @@
+ noop
+ EOF
+
+- dotest 2-3 "${servercvs} server" \
++ dotest server2-3 "${servercvs} server" \
+ "E protocol error: directory '${TESTDIR}' not within root '${CVSROOT_DIRNAME}'
+ error " <<EOF
+ Root ${CVSROOT_DIRNAME}
+@@ -31123,6 +31391,20 @@
+ Unchanged foo/bar
+ noop
+ EOF
++
++ dotest server2-5 \
++"${servercvs} --allow-root=${CVSROOT_DIRNAME}.bad server" \
++"E Bad root ${CVSROOT_DIRNAME}
++error " <<EOF
++Root ${CVSROOT_DIRNAME}
++noop
++EOF
++ dotest server2-6 \
++"${servercvs} --allow-root=${CVSROOT_DIRNAME} server" \
++"ok" <<EOF
++Root ${CVSROOT_DIRNAME}
++noop
++EOF
+ servercvs=$save_servercvs
+ fi
+ ;;
+@@ -31301,7 +31583,7 @@
+ #
+ # Incidentally, I can reproduce this behavior with Linux 2.4.20 and
+ # Bash 2.05 or Bash 2.05b.
+- sleep 1
++ sleep 2
+ dotest_fail client-10 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
+@@ -31322,7 +31604,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-11 "$testcvs update" \
+ "$CPROG \[update aborted\]: patch original file \./\.bashrc does not exist"
+
+@@ -31342,7 +31624,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-12 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
+@@ -31362,7 +31644,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-13 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
+@@ -31382,7 +31664,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-14 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
+@@ -31402,7 +31684,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-15 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
+@@ -31422,7 +31704,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-16 "$testcvs update" \
+ "$CPROG update: Server attempted to update a file via an invalid pathname:
+ $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
+@@ -31446,7 +31728,7 @@
+ echo "ok"
+ cat >/dev/null
+ EOF
+- sleep 1
++ sleep 2
+ dotest_fail client-18 "$testcvs update" \
+ "$CPROG \[update aborted\]: protocol error: Copy-file tried to specify directory"
+
+@@ -31459,7 +31741,7 @@
+ # Check that the client detects redirect loops.
+ cat >$TESTDIR/serveme <<EOF
+ #!$TESTSHELL
+-echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version"
++echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck"
+ echo "ok"
+ echo "Redirect $CVSROOT"
+
+@@ -31467,7 +31749,7 @@
+ cat >/dev/null
+ EOF
+ echo newstuff >file1
+- sleep 1
++ sleep 2
+ dotest_fail client-20 "$testcvs ci" \
+ "$CPROG commit: Examining \.
+ $CPROG \[commit aborted\]: \`Redirect' loop detected\. Server misconfiguration$QUESTION"
+@@ -31709,7 +31991,7 @@
+ cd second
+ mkdir otherdir
+ dotest template-add-1 "${testcvs} add otherdir" \
+-"Directory ${CVSROOT_DIRNAME}/second/otherdir added to the repository"
++"Directory ${CVSROOT_DIRNAME}/second/otherdir put under version control"
+ if $remote; then
+ dotest template-add-2r \
+ "cmp otherdir/CVS/Template ${TESTDIR}/template/temp.def" ''
+@@ -31845,6 +32127,7 @@
+ SECONDARY_CVSROOT_save=$SECONDARY_CVSROOT
+ SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
+ SECONDARY_CVSROOT=`newroot $SECONDARY_CVSROOT_DIRNAME`
++ write_secondary_wrapper
+
+ # Initialize the primary repository
+ dotest writeproxy-init-1 "$testcvs -d$PRIMARY_CVSROOT init"
+@@ -31856,6 +32139,10 @@
+ ALL (cat >/dev/null; echo %R) >$TESTDIR/referrer
+ ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
+ EOF
++ # remove automatically-created LogHistory to work around the fact
++ # that we see both writeproxy and primary config here
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
+ cat >>config <<EOF
+ PrimaryServer=$PRIMARY_CVSROOT
+ EOF
+@@ -31868,7 +32155,7 @@
+ save_CVS_SERVER=$CVS_SERVER
+ ln -s $PRIMARY_CVSROOT_DIRNAME $TESTDIR/primary_link
+ dotest writeproxy-0 "$CVS_SERVER server" \
+-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
+ ok
+ ok
+ ok" \
+@@ -32021,6 +32308,7 @@
+ PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
+ SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
+ SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
++ write_secondary_wrapper
+ ;;
+
+
+@@ -32054,10 +32342,11 @@
+ PRIMARY_CVSROOT=`newroot $PRIMARY_CVSROOT_DIRNAME`
+ SECONDARY_CVSROOT_DIRNAME_save=$SECONDARY_CVSROOT_DIRNAME
+ SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
++ write_secondary_wrapper
+
+ # Initialize the primary repository
+ dotest writeproxy-noredirect-init-1 \
+-"$testcvs -d'$PRIMARY_CVSROOT' init"
++"$testcvs -d'$PRIMARY_CVSROOT_DIRNAME' init"
+ mkdir writeproxy-noredirect; cd writeproxy-noredirect
+ mkdir primary; cd primary
+ dotest writeproxy-noredirect-init-2 \
+@@ -32066,6 +32355,9 @@
+ cat >>loginfo <<EOF
+ ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
+ EOF
++ # remove automatically-created LogHistory (see above)
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
+ cat >>config <<EOF
+ PrimaryServer=$PRIMARY_CVSROOT
+ EOF
+@@ -32088,7 +32380,7 @@
+
+ # No need to check the PID of the last client since we are testing with
+ # Redirect disabled.
+-proot_arg="--allow-root $SECONDARY_CVSROOT_DIRNAME"
++proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root $SECONDARY_CVSROOT_DIRNAME"
+ exec $servercvs \$proot_arg "\$@"
+ EOF
+ cat <<EOF >$TESTDIR/writeproxy-primary-wrapper
+@@ -32152,7 +32444,7 @@
+ mv $TESTDIR/save-root $PRIMARY_CVSROOT_DIRNAME
+
+ dotest writeproxy-noredirect-5 "$CVS_SERVER server" \
+-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
+ ok
+ ok
+ ok
+@@ -32184,7 +32476,7 @@
+ cd firstdir
+ echo now you see me >file1
+ dotest writeproxy-noredirect-6 "$CVS_SERVER server" \
+-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
+ ok
+ ok
+ ok
+@@ -32214,7 +32506,7 @@
+ echo /file1/0/dummy+timestamp// >>CVS/Entries
+
+ dotest writeproxy-noredirect-7 "$CVS_SERVER server" \
+-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
+ ok
+ ok
+ Mode u=rw,g=rw,o=r
+@@ -32287,6 +32579,7 @@
+ PRIMARY_CVSROOT_DIRNAME=$PRIMARY_CVSROOT_DIRNAME_save
+ PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
+ SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
++ write_secondary_wrapper
+ ;;
+
+
+@@ -32327,9 +32620,10 @@
+
+ # Set new roots.
+ PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot
+- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME
++ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME
+ SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
+- SECONDARY_CVSROOT=":ext;Redirect=yes:$host$SECONDARY_CVSROOT_DIRNAME"
++ SECONDARY_CVSROOT=":ext;Redirect=yes:$host:$SECONDARY_CVSROOT_DIRNAME"
++ write_secondary_wrapper
+
+ # Initialize the primary repository
+ dotest writeproxy-ssh-init-1 "$testcvs -d$PRIMARY_CVSROOT init"
+@@ -32343,6 +32637,9 @@
+ cat >>loginfo <<EOF
+ ALL echo Referrer=%R; cat >/dev/null
+ EOF
++ # remove automatically-created LogHistory (see above)
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
+ cat >>config <<EOF
+ PrimaryServer=$PRIMARY_CVSROOT
+ EOF
+@@ -32391,6 +32688,7 @@
+ PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
+ SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
+ SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
++ write_secondary_wrapper
+ ;;
+
+
+@@ -32426,9 +32724,10 @@
+
+ # Set new roots.
+ PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot
+- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME
++ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME
+ SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
+- SECONDARY_CVSROOT=":ext;Redirect=no:$host$PRIMARY_CVSROOT_DIRNAME"
++ SECONDARY_CVSROOT=":ext;Redirect=no:$host:$PRIMARY_CVSROOT_DIRNAME"
++ write_secondary_wrapper
+
+ # Initialize the primary repository
+ dotest writeproxy-ssh-noredirect-init-1 \
+@@ -32444,6 +32743,9 @@
+ cat >>loginfo <<EOF
+ ALL echo Referrer=%R; cat >/dev/null
+ EOF
++ # remove automatically-created LogHistory (see above)
++ sed -e '/^LogHistory/d' <config >tmpconfig
++ mv tmpconfig config
+ cat >>config <<EOF
+ PrimaryServer=$PRIMARY_CVSROOT
+ EOF
+@@ -32463,8 +32765,8 @@
+
+ # No need to check the PID of the last client since we are testing with
+ # Redirect disabled.
+-proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME"
+-exec $CVS_SERVER \$proot_arg "\$@"
++proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root=$SECONDARY_CVSROOT_DIRNAME"
++exec $CVS_SERVER_secondary_wrapper_orig \$proot_arg "\$@"
+ EOF
+ cat <<EOF >$TESTDIR/writeproxy-primary-wrapper
+ #! $TESTSHELL
+@@ -32517,6 +32819,7 @@
+ PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
+ SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
+ SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
++ write_secondary_wrapper
+ rm $TESTDIR/writeproxy-secondary-wrapper \
+ $TESTDIR/writeproxy-primary-wrapper
+ CVS_SERVER=$CVS_SERVER_save
+@@ -32836,7 +33139,7 @@
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+-Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository" \
++Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control" \
+ "
+ *callerdat=${PFMT}, argc=1, argv=${PFMT},
+ *direntproc=${PFMT}, dirleavproc=${PFMT},
+@@ -32868,7 +33171,7 @@
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+ *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
+-${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository
++${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control
+ S -> CVS_SERVER_SLEEP not set\.
+ S -> Lock_Cleanup()
+ S -> Lock_Cleanup()
+@@ -35508,6 +35811,35 @@
+
+
+
++ suck)
++ modify_repo mkdir $CVSROOT_DIRNAME/first-dir
++ dotest suck-init-1 "$testcvs -Q co first-dir"
++
++ cd first-dir
++ ${AWK} 'BEGIN { for (i = 64; i < 96; i++) printf "%02x %c\n", i-64, i }' \
++ </dev/null | ${TR} '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_' \
++ '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037' \
++ | ${TR} 'abcdef' 'ABCDEF' >alloctet.dat
++ ${AWK} 'BEGIN { for (i = 32; i < 256; i++) printf "%02X %c\n", i, i }' \
++ </dev/null >>alloctet.dat
++
++ dotest suck-1 "$testcvs -Q add alloctet.dat"
++ dotest suck-2 "$testcvs -Q ci -m added"
++
++ cd ..
++
++ dotest suck-3 "$testcvs -Q suck first-dir/alloctet.dat >commavs"
++ echo "first-dir/alloctet.dat,v" >commavl
++ cat $CVSROOT_DIRNAME/first-dir/alloctet.dat,v >>commavl
++ dotest suck-eq "diff commavs commavl"
++
++ dokeep
++ rm -r first-dir commavs commavl
++ modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
++ ;;
++
++
++
+ *)
+ echo $what is not the name of a test -- ignored
+ ;;
+@@ -35545,7 +35877,7 @@
+ if cmp $file $TESTDIR/`basename $file`-clean >/dev/null 2>&1; then
+ :;
+ else
+- echo "\`$file' and \`$TESTDIR/`basename $file`-clean' differ." \
++ echo "'$file' and '$TESTDIR/`basename $file`-clean' differ." \
+ >>$LOGFILE
+ problem=:
+ fi
+@@ -35599,7 +35931,7 @@
+ extendedinfo="$extendedinfo)"
+ fi
+
+-echo "OK, all $passed tests passed$extendedinfo."
++echo "OK, all $passed tests passed$extendedinfo." | tee -a $LOGFILE
+
+ # TODO:
+ # * Test `cvs update -d foo' (where foo does not exist).
+--- cvs-1.12.13+real.orig/src/server.c
++++ cvs-1.12.13+real/src/server.c
+@@ -1,12 +1,18 @@
+-/* This program is free software; you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2, or (at your option)
+- any later version.
+-
+- This program is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- GNU General Public License for more details. */
++/*
++ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2005, 2010, 2011, 2013, 2016, 2017, 2021
++ * mirabilos <m@mirbsd.org>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ */
+
+ #include "cvs.h"
+
+@@ -80,6 +86,13 @@
+ /* for select */
+ # include "xselect.h"
+
++/* for TCP_NODELAY */
++# include <netinet/tcp.h>
++
++# ifndef S_ISSOCK
++# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
++# endif
++
+ # ifndef O_NONBLOCK
+ # define O_NONBLOCK O_NDELAY
+ # endif
+@@ -497,6 +510,7 @@
+
+ /* Allocate SIZE bytes for pending_error_text and return nonzero
+ if we could do it. */
++static size_t alloc_pending_sz;
+ static inline int
+ alloc_pending_internal (char **dest, size_t size)
+ {
+@@ -506,6 +520,7 @@
+ pending_error = ENOMEM;
+ return 0;
+ }
++ alloc_pending_sz = size;
+ return 1;
+ }
+
+@@ -539,8 +554,8 @@
+
+
+
+-static int
+-supported_response (char *name)
++int
++supported_response (const char *name)
+ {
+ struct response *rs;
+
+@@ -677,6 +692,9 @@
+ */
+ static pid_t command_pid;
+
++static void outbuf_memory_error (struct buffer *)
++ __attribute__((__noreturn__));
++
+ static void
+ outbuf_memory_error (struct buffer *buf)
+ {
+@@ -700,6 +718,8 @@
+ }
+
+
++static void input_memory_error (struct buffer *)
++ __attribute__((__noreturn__));
+
+ static void
+ input_memory_error (struct buffer *buf)
+@@ -779,7 +799,7 @@
+ if (!ISABSOLUTE (arg))
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Root %s must be an absolute pathname", arg);
+ return;
+ }
+@@ -794,7 +814,7 @@
+ if (current_parsed_root != NULL)
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: Duplicate Root request, for %s", arg);
+ return;
+ }
+@@ -815,7 +835,7 @@
+ /* The explicitness is to aid people who are writing clients.
+ I don't see how this information could help an
+ attacker. */
+- sprintf (pending_error_text, "\
++ snprintf(pending_error_text, alloc_pending_sz, "\
+ E Protocol error: Root says \"%s\" but pserver says \"%s\"",
+ current_parsed_root->directory, Pserver_Repos);
+ return;
+@@ -823,6 +843,14 @@
+ }
+ # endif
+
++ if (root_allow_used() && !root_allow_ok(arg))
++ {
++ if (alloc_pending (80 + strlen (arg)))
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E Bad root %s", arg);
++ return;
++ }
++
+ /* For pserver, this will already have happened, and the call will do
+ nothing. But for rsh, we need to do it now. */
+ config = get_root_allow_config (current_parsed_root->directory,
+@@ -865,7 +893,7 @@
+ if (!ISABSOLUTE (get_cvs_tmp_dir ()))
+ {
+ if (alloc_pending (80 + strlen (get_cvs_tmp_dir ())))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Value of %s for TMPDIR is not absolute",
+ get_cvs_tmp_dir ());
+
+@@ -925,7 +953,7 @@
+ if (status)
+ {
+ if (alloc_pending (80 + strlen (server_temp_dir)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E can't create temporary directory %s",
+ server_temp_dir);
+ pending_error = status;
+@@ -935,7 +963,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (server_temp_dir)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot change permissions on temporary directory %s",
+ server_temp_dir);
+ pending_error = save_errno;
+@@ -945,7 +973,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (server_temp_dir)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot change to temporary directory %s",
+ server_temp_dir);
+ pending_error = save_errno;
+@@ -976,7 +1004,7 @@
+
+ if (forced && !quiet
+ && alloc_pending_warning (120 + strlen (program_name)))
+- sprintf (pending_warning_text,
++ snprintf(pending_warning_text, alloc_pending_sz,
+ "E %s server: Forcing compression level %d (allowed: %d <= z <= %d).",
+ program_name, gzip_level, config->MinCompressionLevel,
+ config->MaxCompressionLevel);
+@@ -995,7 +1023,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (path)))
+- sprintf (pending_error_text, "E Cannot access %s", path);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E Cannot access %s", path);
+ pending_error = save_errno;
+ }
+ free (path);
+@@ -1060,7 +1089,7 @@
+ if (!ISABSOLUTE (repos))
+ {
+ if (alloc_pending (repos_len + 80))
+- sprintf (pending_error_text, "\
++ snprintf(pending_error_text, alloc_pending_sz, "\
+ E protocol error: %s is not absolute", repos);
+ return 1;
+ }
+@@ -1072,7 +1101,7 @@
+ if (alloc_pending (strlen (current_parsed_root->directory)
+ + strlen (repos)
+ + 80))
+- sprintf (pending_error_text, "\
++ snprintf(pending_error_text, alloc_pending_sz, "\
+ E protocol error: directory '%s' not within root '%s'",
+ repos, current_parsed_root->directory);
+ return 1;
+@@ -1099,7 +1128,7 @@
+ {
+ if (alloc_pending (strlen (file)
+ + 80))
+- sprintf (pending_error_text, "\
++ snprintf(pending_error_text, alloc_pending_sz, "\
+ E protocol error: directory '%s' not within current directory",
+ file);
+ return 1;
+@@ -1168,7 +1197,7 @@
+ if (ISABSOLUTE (dir))
+ {
+ if (alloc_pending (80 + strlen (dir)))
+- sprintf ( pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E absolute pathnames invalid for server (specified `%s')",
+ dir);
+ return;
+@@ -1176,7 +1205,7 @@
+ if (pathname_levels (dir) > max_dotdot_limit)
+ {
+ if (alloc_pending (80 + strlen (dir)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: `%s' has too many ..", dir);
+ return;
+ }
+@@ -1191,7 +1220,7 @@
+ && dir[dir_len - 1] == '/')
+ {
+ if (alloc_pending (80 + dir_len))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: invalid directory syntax in %s", dir);
+ return;
+ }
+@@ -1222,7 +1251,8 @@
+ && status != EEXIST)
+ {
+ if (alloc_pending (80 + strlen (gDirname)))
+- sprintf (pending_error_text, "E cannot mkdir %s", gDirname);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot mkdir %s", gDirname);
+ pending_error = status;
+ return;
+ }
+@@ -1237,7 +1267,8 @@
+ if (status != 0)
+ {
+ if (alloc_pending (80 + strlen (gDirname)))
+- sprintf (pending_error_text, "E cannot create_adm_p %s", gDirname);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot create_adm_p %s", gDirname);
+ pending_error = status;
+ return;
+ }
+@@ -1246,7 +1277,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname)))
+- sprintf (pending_error_text, "E cannot change to %s", gDirname);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot change to %s", gDirname);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1258,7 +1290,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot mkdir %s/%s", gDirname, CVSADM);
+ pending_error = save_errno;
+ return;
+@@ -1274,7 +1306,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM_REP)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot open %s/%s", gDirname, CVSADM_REP);
+ pending_error = save_errno;
+ return;
+@@ -1283,7 +1315,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM_REP)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E error writing %s/%s", gDirname, CVSADM_REP);
+ pending_error = save_errno;
+ fclose (f);
+@@ -1301,7 +1333,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM_REP)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E error writing %s/%s", gDirname, CVSADM_REP);
+ pending_error = save_errno;
+ fclose (f);
+@@ -1312,7 +1344,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM_REP)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E error writing %s/%s", gDirname, CVSADM_REP);
+ pending_error = save_errno;
+ fclose (f);
+@@ -1322,7 +1354,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (gDirname) + strlen (CVSADM_REP)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E error closing %s/%s", gDirname, CVSADM_REP);
+ pending_error = save_errno;
+ return;
+@@ -1334,7 +1366,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENT)))
+- sprintf (pending_error_text, "E cannot open %s", CVSADM_ENT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot open %s", CVSADM_ENT);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1342,7 +1375,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENT)))
+- sprintf (pending_error_text, "E cannot close %s", CVSADM_ENT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot close %s", CVSADM_ENT);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1353,13 +1387,13 @@
+ static void
+ serve_repository (char *arg)
+ {
++ static const char msg[] = "E Repository request is obsolete; aborted";
+ # ifdef PROXY_SUPPORT
+ assert (!proxy_log);
+ # endif /* PROXY_SUPPORT */
+
+ if (alloc_pending (80))
+- strcpy (pending_error_text,
+- "E Repository request is obsolete; aborted");
++ memcpy(pending_error_text, msg, sizeof(msg));
+ return;
+ }
+
+@@ -1454,7 +1488,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENTSTAT)))
+- sprintf (pending_error_text, "E cannot open %s", CVSADM_ENTSTAT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot open %s", CVSADM_ENTSTAT);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1462,7 +1497,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENTSTAT)))
+- sprintf (pending_error_text, "E cannot close %s", CVSADM_ENTSTAT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot close %s", CVSADM_ENTSTAT);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1486,7 +1522,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_TAG)))
+- sprintf (pending_error_text, "E cannot open %s", CVSADM_TAG);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot open %s", CVSADM_TAG);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1494,7 +1531,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_TAG)))
+- sprintf (pending_error_text, "E cannot write to %s", CVSADM_TAG);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot write to %s", CVSADM_TAG);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1502,7 +1540,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_TAG)))
+- sprintf (pending_error_text, "E cannot close %s", CVSADM_TAG);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot close %s", CVSADM_TAG);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1565,7 +1604,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (40))
+- strcpy (pending_error_text, "E unable to write");
++ memcpy(pending_error_text, "E unable to write",
++ sizeof("E unable to write"));
+ pending_error = save_errno;
+
+ /* Read and discard the file data. */
+@@ -1604,7 +1644,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (40 + strlen (arg)))
+- sprintf (pending_error_text, "E cannot open %s", arg);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot open %s", arg);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1675,7 +1716,7 @@
+ if (gunzip_and_write (fd, file, (unsigned char *) filebuf, size))
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E aborting due to compression error");
+ }
+ free (filebuf);
+@@ -1700,7 +1741,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (40 + strlen (arg)))
+- sprintf (pending_error_text, "E cannot close %s", arg);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot close %s", arg);
+ pending_error = save_errno;
+ return;
+ }
+@@ -1763,7 +1805,7 @@
+ * the end of the string, so just exit.
+ */
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Malformed Entry encountered.");
+ return;
+ }
+@@ -1807,7 +1849,7 @@
+ if (kopt != NULL)
+ {
+ if (alloc_pending (strlen (name) + 80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: both Kopt and Entry for %s",
+ arg);
+ free (kopt);
+@@ -1935,7 +1977,7 @@
+
+ if (read_size < 0 && alloc_pending (80))
+ {
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E client sent invalid (negative) file size");
+ return;
+ }
+@@ -1999,7 +2041,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text, "E cannot utime %s", arg);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot utime %s", arg);
+ pending_error = save_errno;
+ free (mode_text);
+ return;
+@@ -2013,7 +2056,7 @@
+ if (status)
+ {
+ if (alloc_pending (40 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot change mode for %s", arg);
+ pending_error = status;
+ return;
+@@ -2077,7 +2120,7 @@
+ * the end of the string, so just exit.
+ */
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Malformed Entry encountered.");
+ return;
+ }
+@@ -2175,7 +2218,7 @@
+ if (!cp || *cp != '/')
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: Malformed Entry");
+ return;
+ }
+@@ -2217,7 +2260,7 @@
+ if (kopt != NULL)
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: duplicate Kopt request: %s", arg);
+ return;
+ }
+@@ -2230,7 +2273,7 @@
+ if (strlen (arg) > 10)
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: invalid Kopt request: %s", arg);
+ return;
+ }
+@@ -2261,7 +2304,7 @@
+ if (checkin_time_valid)
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E protocol error: duplicate Checkin-time request: %s",
+ arg);
+ return;
+@@ -2270,7 +2313,8 @@
+ if (!get_date (&t, arg, NULL))
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text, "E cannot parse date %s", arg);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot parse date %s", arg);
+ return;
+ }
+
+@@ -2305,7 +2349,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENT)))
+- sprintf (pending_error_text, "E cannot open %s", CVSADM_ENT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot open %s", CVSADM_ENT);
+ pending_error = save_errno;
+ }
+ }
+@@ -2317,7 +2362,7 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen(CVSADM_ENT)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E cannot write to %s", CVSADM_ENT);
+ pending_error = save_errno;
+ }
+@@ -2332,7 +2377,8 @@
+ {
+ int save_errno = errno;
+ if (alloc_pending (80 + strlen (CVSADM_ENT)))
+- sprintf (pending_error_text, "E cannot close %s", CVSADM_ENT);
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E cannot close %s", CVSADM_ENT);
+ pending_error = save_errno;
+ }
+ }
+@@ -2350,6 +2396,7 @@
+ bool *pre = closure;
+
+ /* %c = cvs_cmd_name
++ * %I = commit ID
+ * %p = shortrepos
+ * %r = repository
+ */
+@@ -2367,6 +2414,7 @@
+ # endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+ filter,
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ "R", "s", referrer ? referrer->original : "NONE",
+ "p", "s", ".",
+ "r", "s", current_parsed_root->directory,
+@@ -2753,7 +2801,7 @@
+ {
+ # endif /* PROXY_SUPPORT */
+ if (alloc_pending (160) + strlen (program_name))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E This CVS server does not support disconnected `%s edit'. For now, remove all `%s' files in your workspace and try your command again.",
+ program_name, CVSADM_NOTIFY);
+ return;
+@@ -2869,8 +2917,8 @@
+ error:
+ pending_error = 0;
+ if (alloc_pending (80))
+- strcpy (pending_error_text,
+- "E Protocol error; misformed Notify request");
++ snprintf(pending_error_text, alloc_pending_sz,
++ "E Protocol error; malformed Notify request");
+ if (data != NULL)
+ free (data);
+ if (new != NULL)
+@@ -2987,7 +3035,7 @@
+ if (argument_count >= 10000)
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: too many arguments");
+ return;
+ }
+@@ -3028,7 +3076,7 @@
+ if (argument_count <= 1)
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: called argumentx without prior call to argument");
+ return;
+ }
+@@ -3061,7 +3109,7 @@
+ {
+ error_return:
+ if (alloc_pending (strlen (arg) + 80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: bad global option %s",
+ arg);
+ return;
+@@ -3238,7 +3286,7 @@
+ if (gDirname == NULL)
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: `Directory' missing");
+ return;
+ }
+@@ -3519,7 +3567,7 @@
+ * Therefore, we wish to avoid reprocessing the command since that would
+ * cause endless recursion.
+ */
+- if (isProxyServer())
++ if ((command != version || current_parsed_root) && isProxyServer())
+ {
+ # ifdef PROXY_SUPPORT
+ if (reprocessing)
+@@ -3552,7 +3600,7 @@
+ if (lookup_command_attribute (cmd_name)
+ & CVS_CMD_MODIFIES_REPOSITORY
+ && alloc_pending (120))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E You need a CVS client that supports the `Redirect' response for write requests to this server.");
+ return;
+ # endif /* PROXY_SUPPORT */
+@@ -3716,7 +3764,7 @@
+ * Set this in .bashrc if you want to give yourself time to attach
+ * to the subprocess with a debugger.
+ */
+- if (getenv ("CVS_SERVER_SLEEP"))
++ if (getenv("CVS_SERVER_SLEEP") && *getenv("CVS_SERVER_SLEEP"))
+ {
+ int secs = atoi (getenv ("CVS_SERVER_SLEEP"));
+ TRACE (TRACE_DATA, "Sleeping CVS_SERVER_SLEEP (%d) seconds", secs);
+@@ -3922,7 +3970,11 @@
+ {
+ FD_SET (stderr_pipe[0], &readfds);
+ }
+- if (protocol_pipe[0] >= 0)
++ if (protocol_pipe[0] >= 0
++#ifdef SERVER_FLOWCONTROL
++ && !have_flowcontrolled
++#endif
++ )
+ {
+ FD_SET (protocol_pipe[0], &readfds);
+ }
+@@ -4621,6 +4673,14 @@
+
+
+ static void
++serve_suck (char *arg)
++{
++ do_cvs_command ("suck", suck);
++}
++
++
++
++static void
+ serve_add (char *arg)
+ {
+ do_cvs_command ("add", add);
+@@ -4808,7 +4868,7 @@
+ if (!ISABSOLUTE (arg))
+ {
+ if (alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E init %s must be an absolute pathname", arg);
+ }
+ # ifdef AUTH_SERVER_SUPPORT
+@@ -4820,7 +4880,7 @@
+ /* The explicitness is to aid people who are writing clients.
+ I don't see how this information could help an
+ attacker. */
+- sprintf (pending_error_text, "\
++ snprintf(pending_error_text, alloc_pending_sz, "\
+ E Protocol error: init says \"%s\" but pserver says \"%s\"",
+ arg, Pserver_Repos);
+ }
+@@ -5237,6 +5297,7 @@
+ {
+ free (vers->ts_user);
+ vers->ts_user = NULL;
++ vers->ts_user_ists = 0;
+ }
+ }
+ else if (scratched_file == NULL && entries_line == NULL)
+@@ -5482,7 +5543,7 @@
+
+ if (forced && !quiet
+ && alloc_pending_warning (120 + strlen (program_name)))
+- sprintf (pending_warning_text,
++ snprintf(pending_warning_text, alloc_pending_sz,
+ "E %s server: Forcing compression level %d (allowed: %d <= z <= %d).",
+ program_name, level, config->MinCompressionLevel,
+ config->MaxCompressionLevel);
+@@ -5513,7 +5574,7 @@
+
+ if (forced && !quiet
+ && alloc_pending_warning (120 + strlen (program_name)))
+- sprintf (pending_warning_text,
++ snprintf(pending_warning_text, alloc_pending_sz,
+ "E %s server: Forcing compression level %d (allowed: %d <= z <= %d).",
+ program_name, level, config->MinCompressionLevel,
+ config->MaxCompressionLevel);
+@@ -5838,7 +5899,7 @@
+
+ if (!referrer
+ && alloc_pending (80 + strlen (arg)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: Invalid Referrer: `%s'",
+ arg);
+ }
+@@ -5856,7 +5917,7 @@
+ /*
+ * Parts of this table are shared with the client code,
+ * but the client doesn't need to know about the handler
+- * functions.
++ * functions. It likes to write to the flags field, though.
+ */
+
+ struct request requests[] =
+@@ -5962,6 +6023,7 @@
+ REQ_LINE("rannotate", serve_rannotate, 0),
+ REQ_LINE("noop", serve_noop, RQ_ROOTLESS),
+ REQ_LINE("version", serve_version, RQ_ROOTLESS),
++ REQ_LINE("suck", serve_suck, 0),
+ REQ_LINE(NULL, NULL, 0)
+
+ #undef REQ_LINE
+@@ -6271,8 +6333,12 @@
+
+ static const char *const server_usage[] =
+ {
++#ifdef ALLOW_CONFIG_OVERRIDE
+ "Usage: %s %s [-c config-file]\n",
+ "\t-c config-file\tPath to an alternative CVS config file.\n",
++#else
++ "Usage: %s %s\n",
++#endif
+ "Normally invoked by a cvs client on a remote machine.\n",
+ NULL
+ };
+@@ -6289,8 +6355,8 @@
+ {
+ switch (c)
+ {
+-#ifdef ALLOW_CONFIG_OVERRIDE
+ case 'c':
++#ifdef ALLOW_CONFIG_OVERRIDE
+ if (gConfigPath) free (gConfigPath);
+ gConfigPath = xstrdup (optarg);
+ break;
+@@ -6319,7 +6385,7 @@
+ * Set this in .bashrc if you want to give yourself time to attach
+ * to the subprocess with a debugger.
+ */
+- if (getenv ("CVS_PARENT_SERVER_SLEEP"))
++ if (getenv("CVS_PARENT_SERVER_SLEEP") && *getenv("CVS_PARENT_SERVER_SLEEP"))
+ {
+ int secs = atoi (getenv ("CVS_PARENT_SERVER_SLEEP"));
+ TRACE (TRACE_DATA, "Sleeping CVS_PARENT_SERVER_SLEEP (%d) seconds",
+@@ -6433,7 +6499,7 @@
+ && current_parsed_root == NULL)
+ {
+ if (alloc_pending (80))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E Protocol error: Root request missing");
+ }
+ else
+@@ -6446,7 +6512,7 @@
+ * been requested by the client.
+ */
+ if (alloc_pending (80 + strlen (program_name)))
+- sprintf (pending_error_text,
++ snprintf(pending_error_text, alloc_pending_sz,
+ "E %s [server aborted]: Compression must be used with this server.",
+ program_name);
+ }
+@@ -6671,6 +6737,22 @@
+
+ extern char *crypt (const char *, const char *);
+
++char *crypt_trad(const char *, const char *);
++
++char *
++crypt_trad(const char *key, const char *setting)
++{
++ char *rv;
++ static char buf[2];
++
++ if ((rv = crypt(key, setting)) == NULL) {
++ buf[0] = setting && (*setting == 'x') ? '*' : 'x';
++ buf[1] = '\0';
++ rv = buf;
++ }
++
++ return (rv);
++}
+
+ /*
+ * 0 means no entry found for this user.
+@@ -6799,7 +6881,7 @@
+
+ /* Verify blank passwords directly, otherwise use crypt(). */
+ if ((found_password == NULL)
+- || ((strcmp (found_password, crypt (password, found_password))
++ || ((strcmp (found_password, crypt_trad (password, found_password))
+ == 0)))
+ {
+ /* Give host_user_ptr permanent storage. */
+@@ -6811,7 +6893,7 @@
+ #ifdef LOG_AUTHPRIV
+ syslog (LOG_AUTHPRIV | LOG_NOTICE,
+ "password mismatch for %s in %s: %s vs. %s", username,
+- repository, crypt(password, found_password), found_password);
++ repository, crypt_trad(password, found_password), found_password);
+ #endif
+ *host_user_ptr = NULL;
+ retval = 2;
+@@ -6887,7 +6969,7 @@
+ static int
+ check_pam_password (char **username, char *password)
+ {
+- int retval, err;
++ int retval;
+ struct pam_conv conv = { cvs_pam_conv, 0 };
+ char *pam_stage = "start";
+
+@@ -6930,7 +7012,7 @@
+
+ return retval == PAM_SUCCESS; /* indicate success */
+ }
+-#endif
++#else /* !HAVE_PAM */
+
+ static int
+ check_system_password (char *username, char *password)
+@@ -6976,14 +7058,14 @@
+ if (*found_passwd)
+ {
+ /* user exists and has a password */
+- if (strcmp (found_passwd, crypt (password, found_passwd)) == 0)
++ if (strcmp (found_passwd, crypt_trad (password, found_passwd)) == 0)
+ return 1;
+ else
+ {
+ #ifdef LOG_AUTHPRIV
+ syslog (LOG_AUTHPRIV | LOG_NOTICE,
+ "password mismatch for %s: %s vs. %s", username,
+- crypt(password, found_passwd), found_passwd);
++ crypt_trad(password, found_passwd), found_passwd);
+ #endif
+ return 0;
+ }
+@@ -6996,6 +7078,7 @@
+ #endif
+ return 1;
+ }
++#endif /* !HAVE_PAM */
+
+
+
+@@ -7164,8 +7247,10 @@
+ if the client dies while we are waiting for input. */
+ {
+ int on = 1;
++ struct stat sb;
+
+- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
++ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
++ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
+ &on, sizeof on) < 0)
+ {
+ # ifdef HAVE_SYSLOG_H
+@@ -7175,6 +7260,23 @@
+ }
+ #endif
+
++#ifdef TCP_NODELAY
++ /* Avoid latency due to Nagle algorithm. */
++ {
++ int on = 1;
++ struct stat sb;
++
++ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
++ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY,
++ &on, sizeof on) < 0)
++ {
++# ifdef HAVE_SYSLOG_H
++ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m");
++# endif /* HAVE_SYSLOG_H */
++ }
++ }
++#endif
++
+ /* Make sure the protocol starts off on the right foot... */
+ pserver_read_line (&tmp, NULL);
+
+@@ -7317,8 +7419,10 @@
+ if the client dies while we are waiting for input. */
+ {
+ int on = 1;
++ struct stat sb;
+
+- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
++ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
++ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
+ (char *) &on, sizeof on) < 0)
+ {
+ # ifdef HAVE_SYSLOG_H
+@@ -7328,6 +7432,23 @@
+ }
+ #endif
+
++#ifdef TCP_NODELAY
++ /* Avoid latency due to Nagle algorithm. */
++ {
++ int on = 1;
++ struct stat sb;
++
++ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
++ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY,
++ (char *) &on, sizeof on) < 0)
++ {
++# ifdef HAVE_SYSLOG_H
++ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m");
++# endif /* HAVE_SYSLOG_H */
++ }
++ }
++#endif
++
+ status = krb_recvauth (KOPT_DO_MUTUAL, STDIN_FILENO, &ticket, "rcmd",
+ instance, &peer, &laddr, &auth, "", sched,
+ version);
+@@ -7611,6 +7732,12 @@
+ void
+ cvs_output (const char *str, size_t len)
+ {
++ cvs_output_ex (str, len, 'M');
++}
++
++void
++cvs_output_ex (const char *str, size_t len, int buftag)
++{
+ if (len == 0)
+ len = strlen (str);
+ #ifdef SERVER_SUPPORT
+@@ -7619,7 +7746,7 @@
+ if (buf_to_net)
+ {
+ buf_output (saved_output, str, len);
+- buf_copy_lines (buf_to_net, saved_output, 'M');
++ buf_copy_lines (buf_to_net, saved_output, buftag);
+ }
+ # if HAVE_SYSLOG_H
+ else
+@@ -7634,7 +7761,7 @@
+ if (protocol)
+ {
+ buf_output (saved_output, str, len);
+- buf_copy_lines (protocol, saved_output, 'M');
++ buf_copy_lines (protocol, saved_output, buftag);
+ buf_send_counted (protocol);
+ }
+ # if HAVE_SYSLOG_H
+--- cvs-1.12.13+real.orig/src/server.h
++++ cvs-1.12.13+real/src/server.h
+@@ -1,3 +1,5 @@
++/* $MirOS: src/gnu/usr.bin/cvs/src/server.h,v 1.2 2017/11/18 23:04:57 tg Exp $ */
++
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+@@ -161,7 +163,7 @@
+ struct request
+ {
+ /* Name of the request. */
+- char *name;
++ const char *name;
+
+ #ifdef SERVER_SUPPORT
+ /*
+--- cvs-1.12.13+real.orig/src/status.c
++++ cvs-1.12.13+real/src/status.c
+@@ -213,8 +213,11 @@
+ cvs_output (" Working revision:\t", 0);
+ cvs_output (vers->vn_user, 0);
+
+- /* Only add the UTC timezone if there is a time to use. */
+- if (!server_active && strlen (vers->ts_rcs) > 0)
++ /* Only add the UTC timezone if there is a time to use.
++ * ts_rcs sometimes contains only "=" character so we check len > 1 */
++ if (!server_active && strlen (vers->ts_rcs) > 1 &&
++ /* prevent an ugly error message */
++ strcmp(vers->ts_rcs, "Result of merge") != 0)
+ {
+ /* Convert from the asctime() format to ISO 8601 */
+ char *buf;
+--- cvs-1.12.13+real.orig/src/subr.c
++++ cvs-1.12.13+real/src/subr.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2006, 2007, 2011, 2017, 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -315,8 +316,12 @@
+ char *name;
+
+ /* super-user; try getlogin() to distinguish */
+- if (((name = getlogin ()) || (name = getenv("LOGNAME")) ||
+- (name = getenv("USER"))) && *name)
++ name = getlogin();
++ if (!name || !*name)
++ name = getenv("LOGNAME");
++ if (!name || !*name)
++ name = getenv("USER");
++ if (name && *name)
+ {
+ cache = xstrdup (name);
+ return cache;
+@@ -795,7 +800,21 @@
+ return buf;
+ }
+
++static time_t
++sleep_past_chk(struct timespec *ts)
++{
++#ifdef HAVE_GETTIMEOFDAY
++ struct timeval tv;
+
++ gettimeofday(&tv, NULL);
++ ts->tv_sec = tv.tv_sec;
++ ts->tv_nsec = tv.tv_usec * 1000;
++#else
++ ts->tv_sec = time(NULL);
++ ts->tv_nsec = 0;
++#endif
++ return (ts->tv_sec);
++}
+
+ /*
+ * We can only travel forwards in time, not backwards. :)
+@@ -803,41 +822,52 @@
+ void
+ sleep_past (time_t desttime)
+ {
+- time_t t;
+- long s;
+- long us;
++ struct timespec t;
+
+- while (time (&t) <= desttime)
+- {
++ while (sleep_past_chk(&t) <= desttime) {
++ t.tv_sec = desttime - t.tv_sec;
+ #ifdef HAVE_GETTIMEOFDAY
+- struct timeval tv;
+- gettimeofday (&tv, NULL);
+- if (tv.tv_sec > desttime)
+- break;
+- s = desttime - tv.tv_sec;
+- if (tv.tv_usec > 0)
+- us = 1000000 - tv.tv_usec;
+- else
+- {
+- s++;
+- us = 0;
+- }
++ if (t.tv_nsec > 0)
++ t.tv_nsec = 1000000000L - t.tv_nsec;
++ else {
++ ++t.tv_sec;
++ t.tv_nsec = 0;
++ }
+ #else
+- /* default to 20 ms increments */
+- s = desttime - t;
+- us = 20000;
++ /* default to 20ms increments */
++ t.tv_nsec = 20000000L;
+ #endif
+-
+- {
+- struct timespec ts;
+- ts.tv_sec = s;
+- ts.tv_nsec = us * 1000;
+- (void)nanosleep (&ts, NULL);
++ nanosleep(&t, NULL);
+ }
+- }
++
++ /* sleep another 20ms to avoid races (LP#12230) */
++ /* so I’m not the only one whose clock can go backwards… */
++ t.tv_sec = 0;
++ t.tv_nsec = 20000000L;
++ nanosleep(&t, NULL);
+ }
+
++#ifdef HAVE_GETTIMEOFDAY
++/*
++ * Ensure time never travels backwards for us. :(
++ * This file is the only user of gettimeofday in all CVS,
++ * and everything else calls time always, so wrap it.
++ */
++time_t
++time(time_t *tp)
++{
++ register time_t t;
++ struct timeval tv;
++ static time_t lt = 0;
+
++ gettimeofday(&tv, NULL);
++ t = tv.tv_sec < lt ? lt : tv.tv_sec;
++ lt = t;
++ if (tp)
++ *tp = t;
++ return (t);
++}
++#endif
+
+ /* used to store callback data in a list indexed by the user format string
+ */
+@@ -1045,7 +1075,9 @@
+ */
+ Node *p;
+ struct cmdline_bindings *b;
++#ifdef SUPPORT_OLD_INFO_FMT_STRINGS
+ static int warned_of_deprecation = 0;
++#endif
+ char key[] = "?"; /* Used as temporary storage for a single
+ * character search string used to locate a
+ * hash key.
+@@ -1285,7 +1317,7 @@
+ dellist(&pflist);
+ free(b);
+ error (1, 0,
+-"internal error: unknown integer arg size (%d)",
++"internal error: unknown integer arg size (%zd)",
+ length);
+ break;
+ }
+@@ -1328,7 +1360,7 @@
+ dellist(&pflist);
+ free(b);
+ error (1, 0,
+-"internal error: unknown floating point arg size (%d)",
++"internal error: unknown floating point arg size (%zd)",
+ length);
+ break;
+ }
+@@ -1704,7 +1736,7 @@
+ doff = d - buf;
+ expand_string (&buf, &length, doff + strlen(outstr));
+ d = buf + doff;
+- strncpy(d, outstr, strlen(outstr));
++ memcpy(d, outstr, strlen(outstr));
+ d += strlen(outstr);
+ #ifdef SUPPORT_OLD_INFO_FMT_STRINGS
+ if (!onearg)
+@@ -1735,7 +1767,7 @@
+ doff = d - buf;
+ expand_string (&buf, &length, doff + strlen(srepos));
+ d = buf + doff;
+- strncpy(d, srepos, strlen(srepos));
++ memcpy(d, srepos, strlen(srepos));
+ d += strlen(srepos);
+ }
+ #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
+--- cvs-1.12.13+real.orig/src/suck.c
++++ cvs-1.12.13+real/src/suck.c
+@@ -0,0 +1,140 @@
++/*-
++ * Copyright (c) 2011
++ * mirabilos <m@mirbsd.org>
++ *
++ * Provided that these terms and disclaimer and all copyright notices
++ * are retained or reproduced in an accompanying document, permission
++ * is granted to deal in this work without restriction, including un-
++ * limited rights to use, publicly perform, distribute, sell, modify,
++ * merge, give away, or sublicence.
++ *
++ * This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
++ * the utmost extent permitted by applicable law, neither express nor
++ * implied; without malicious intent or gross negligence. In no event
++ * may a licensor, author or contributor be held liable for indirect,
++ * direct, other damage, loss, or other issues arising in any way out
++ * of dealing in the work, even if advised of the possibility of such
++ * damage or existence of a defect, except proven that it results out
++ * of said person's immediate fault when using the work as intended.
++ *-
++ * Download a ,v file from the repository
++ */
++
++#include "cvs.h"
++
++#ifdef HAVE_MMAP
++#include <sys/mman.h>
++
++#ifndef MAP_FILE
++#define MAP_FILE 0
++#endif
++
++#ifndef MAP_FAILED
++#define MAP_FAILED ((void *)-1)
++#endif
++#endif
++
++static const char * const suck_usage[] = {
++ "Usage: %s %s module/filename\n",
++ NULL
++};
++
++int
++suck(int argc, char *argv[])
++{
++ size_t m, n;
++ int fd;
++ char *buf, *cp, *fn;
++ struct stat sb;
++ FILE *fp;
++ RCSNode *rcs;
++
++ if (argc != 2)
++ usage(suck_usage);
++
++#ifdef CLIENT_SUPPORT
++ if (current_parsed_root->isremote) {
++ start_server();
++
++ if (!supported_request("suck"))
++ error(1, 0, "server does not support %s", "suck");
++
++ send_arg(argv[1]);
++ send_to_server("suck\012", 0);
++
++ return (get_responses_and_close());
++ }
++#endif
++
++ /* check for ../ attack */
++ if (pathname_levels(argv[1]) > 0)
++ error(1, 0, "path %s outside of repository", argv[1]);
++
++ /* repo + / + module/file */
++ cp = Xasprintf("%s/%s", current_parsed_root->directory, argv[1]);
++
++ /* find the slash */
++ if ((fn = cp + (last_component(cp) - cp)) == cp)
++ usage(suck_usage);
++
++ /* repo/module + file */
++ fn[-1] = '\0';
++
++ /* check if it's a valid RCS file, not /etc/passwd or somesuch */
++ if ((rcs = RCS_parse(fn, cp)) == NULL) {
++ error(1, 0, "not a valid RCS file: %s/%s", cp, fn);
++ return (1);
++ }
++
++ /* save the real pathname of the RCS file for later */
++ fn = xstrdup(rcs->path);
++
++ /* free up resources allocated until now */
++ freercsnode(&rcs);
++ free(cp);
++
++ /* attempt to open the file ourselves */
++ if ((fp = CVS_FOPEN(fn, FOPEN_BINARY_READ)) == NULL)
++ error(1, errno, "Could not open RCS archive %s", fn);
++ if (fstat(fd = fileno(fp), &sb) < 0)
++ error(1, errno, "Could not stat RCS archive %s", fn);
++
++ /*XXX this code will fail for large files */
++
++ /* attempt to slurp entire file into memory */
++#ifdef HAVE_MMAP
++ buf = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
++ if (buf == NULL || buf == MAP_FAILED) {
++ error(0, errno, "Could not map memory to RCS archive %s", fn);
++#endif
++ /* backup: just read */
++ cp = buf = xmalloc(n = sb.st_size);
++ while (n) {
++ m = read(fd, cp, n);
++ if (m == (size_t)-1)
++ error(1, errno,
++ "Could not read RCS archive %s", fn);
++ cp += m;
++ n -= m;
++ }
++#ifdef HAVE_MMAP
++ }
++#endif
++
++ /* write real pathname plus newline as text */
++ cvs_output(fn + strlen(current_parsed_root->directory) + 1, 0);
++ cvs_output("\n", 1);
++
++ /* write file content as binary */
++ cvs_output_binary(buf, sb.st_size);
++
++ /* release all resources allocated */
++#ifdef HAVE_MMAP
++ munmap(buf, sb.st_size);
++#endif
++ fclose(fp);
++ free(fn);
++
++ /* success */
++ return (0);
++}
+--- cvs-1.12.13+real.orig/src/tag.c
++++ cvs-1.12.13+real/src/tag.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
++ * Copyright (c) 2005, 2006, 2021 mirabilos <m@mirbsd.org>
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+@@ -310,6 +311,7 @@
+ * %b = branch mode = "?" (delete ops - unknown) | "T" (branch)
+ * | "N" (not branch)
+ * %c = cvs_cmd_name
++ * %I = commit ID
+ * %p = path from $CVSROOT
+ * %r = path from root
+ * %{sVv} = attribute list = file name, old version tag will be deleted
+@@ -333,6 +335,7 @@
+ "b", "c", delete_flag
+ ? '?' : branch_mode ? 'T' : 'N',
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+@@ -747,6 +750,7 @@
+ * %b = branch mode = "?" (delete ops - unknown) | "T" (branch)
+ * | "N" (not branch)
+ * %c = cvs_cmd_name
++ * %I = commit ID
+ * %p = path from $CVSROOT
+ * %r = path from root
+ * %{sVv} = attribute list = file name, old version tag will be deleted
+@@ -770,6 +774,7 @@
+ "b", "c", delete_flag
+ ? '?' : branch_mode ? 'T' : 'N',
+ "c", "s", cvs_cmd_name,
++ "I", "s", global_session_id,
+ #ifdef SERVER_SUPPORT
+ "R", "s", referrer ? referrer->original : "NONE",
+ #endif /* SERVER_SUPPORT */
+@@ -902,7 +907,7 @@
+ doff = d - *c->buf;
+ expand_string (c->buf, c->length, doff + strlen (arg));
+ d = *c->buf + doff;
+- strncpy (d, arg, strlen (arg));
++ memcpy (d, arg, strlen (arg));
+ d += strlen (arg);
+
+ free (arg);
+@@ -1235,14 +1240,14 @@
+ else if (strcmp (version, "0") == 0)
+ {
+ if (!quiet)
+- error (0, 0, "couldn't tag added but un-commited file `%s'",
++ error (0, 0, "couldn't tag added but un-committed file `%s'",
+ finfo->file);
+ goto free_vars_and_return;
+ }
+ else if (version[0] == '-')
+ {
+ if (!quiet)
+- error (0, 0, "skipping removed but un-commited file `%s'",
++ error (0, 0, "skipping removed but un-committed file `%s'",
+ finfo->file);
+ goto free_vars_and_return;
+ }
+@@ -1450,6 +1455,7 @@
+ * 2. If IDB is non-NULL and val-tags cannot be opened for write.
+ * This allows callers to ignore the harmless inability to
+ * update the val-tags cache.
++ * 3. If CVSREADONLYFS is set (same as #2 above).
+ * false If the file could be opened and the tag is not present.
+ */
+ static int is_in_val_tags (DBM **idb, const char *name)
+@@ -1459,6 +1465,10 @@
+ datum mytag;
+ int status;
+
++ /* do nothing if we know we fail anyway */
++ if (readonlyfs)
++ return 1;
++
+ /* Casting out const should be safe here - input datums are not
+ * written to by the myndbm functions.
+ */
+@@ -1580,7 +1590,7 @@
+ * we are already there, or "" if we should do a W_LOCAL recursion.
+ * Sorry for three cases, but the "" case is needed in case the
+ * working directories come from diverse parts of the repository, the
+- * NULL case avoids an unneccesary chdir, and the non-NULL, non-""
++ * NULL case avoids an unnecessary chdir, and the non-NULL, non-""
+ * case is needed for checkout, where we don't want to chdir if the
+ * tag is found in CVSROOTADM_VALTAGS, but there is not (yet) any
+ * local directory.
+--- cvs-1.12.13+real.orig/src/update.c
++++ cvs-1.12.13+real/src/update.c
+@@ -58,7 +58,7 @@
+ static int patch_file (struct file_info *finfo,
+ Vers_TS *vers_ts,
+ int *docheckout, struct stat *file_info,
+- unsigned char *checksum);
++ md5_uint32 *checksum);
+ static void patch_file_write (void *, const char *, size_t);
+ #endif
+ static int merge_file (struct file_info *finfo, Vers_TS *vers);
+@@ -723,7 +723,7 @@
+ {
+ int docheckout;
+ struct stat file_info;
+- unsigned char checksum[16];
++ md5_uint32 checksum[4];
+
+ retval = patch_file (finfo,
+ vers, &docheckout,
+@@ -735,7 +735,8 @@
+ (rcs_diff_patches
+ ? SERVER_RCS_DIFF
+ : SERVER_PATCHED),
+- file_info.st_mode, checksum,
++ file_info.st_mode,
++ (void *)checksum,
+ NULL);
+ break;
+ }
+@@ -1181,6 +1182,7 @@
+ {
+ free (vers->ts_user);
+ vers->ts_user = NULL;
++ vers->ts_user_ists = 0;
+ }
+ }
+ return 0;
+@@ -1197,7 +1199,7 @@
+ {
+ char *backup;
+ int set_time, retval = 0;
+- int status;
++ int status = 0;
+ int file_is_dead;
+ struct buffer *revbuf;
+
+@@ -1366,6 +1368,7 @@
+
+ if (xvers_ts->ts_user != NULL)
+ free (xvers_ts->ts_user);
++ xvers_ts->ts_user_ists = 0; /*XXX really? */
+ xvers_ts->ts_user = xstrdup (xvers_ts->ts_rcs);
+ }
+
+@@ -1511,7 +1514,7 @@
+ */
+ static int
+ patch_file (struct file_info *finfo, Vers_TS *vers_ts, int *docheckout,
+- struct stat *file_info, unsigned char *checksum)
++ struct stat *file_info, md5_uint32 *checksum)
+ {
+ char *backup;
+ char *file1;
+--- cvs-1.12.13+real.orig/src/vers_ts.c
++++ cvs-1.12.13+real/src/vers_ts.c
+@@ -268,7 +268,10 @@
+ time_stamp_server (finfo->file, vers_ts, entdata);
+ else
+ #endif
++ {
+ vers_ts->ts_user = time_stamp (finfo->file);
++ vers_ts->ts_user_ists = 1;
++ }
+ }
+
+ return (vers_ts);
+@@ -339,6 +342,7 @@
+ {
+ struct tm *tm_p;
+
++ vers_ts->ts_user_ists = 1;
+ vers_ts->ts_user = xmalloc (25);
+ /* We want to use the same timestamp format as is stored in the
+ st_mtime. For unix (and NT I think) this *must* be universal
+--- cvs-1.12.13+real.orig/src/version.c
++++ cvs-1.12.13+real/src/version.c
+@@ -16,6 +16,7 @@
+
+ #include "cvs.h"
+
++static const
+ #ifdef CLIENT_SUPPORT
+ #ifdef SERVER_SUPPORT
+ char *config_string = " (client/server)\n";
+@@ -81,4 +82,3 @@
+ #endif
+ return err;
+ }
+-
+--- cvs-1.12.13+real.orig/src/watch.c
++++ cvs-1.12.13+real/src/watch.c
+@@ -459,7 +459,7 @@
+ cvs_output (p++, 1);
+ if (*p == '\0')
+ {
+- /* Only happens if attribute is misformed. */
++ /* Only happens if attribute is malformed. */
+ cvs_output ("\n", 1);
+ break;
+ }
+--- cvs-1.12.13+real.orig/src/wrapper.c
++++ cvs-1.12.13+real/src/wrapper.c
+@@ -86,7 +86,7 @@
+ move this to a per-connection data structure, or better yet
+ think about a cleaner solution. */
+ static int wrap_setup_already_done = 0;
+- char *homedir;
++ char *homedir = NULL;
+
+ if (wrap_setup_already_done != 0)
+ return;
+@@ -107,6 +107,11 @@
+ free (file);
+ }
+
++#ifdef SERVER_SUPPORT
++ if (!server_active)
++#endif
++ {
++
+ /* Then add entries found in home dir, (if user has one) and file
+ exists. */
+ homedir = get_homedir ();
+@@ -115,6 +120,8 @@
+ hand it might be obnoxious to complain when CVS will function
+ just fine without .cvswrappers (and many users won't even know what
+ .cvswrappers is). */
++ }
++
+ if (homedir != NULL)
+ {
+ char *file = strcat_filename_onto_homedir (homedir, CVSDOTWRAPPER);
+@@ -339,11 +346,19 @@
+ if (!line || line[0] == '#')
+ return;
+
++ /* Allows user to declare all wrappers null and void */
++ if (line[0] == '!') {
++ wrap_kill ();
++ return;
++ }
++
+ memset (&e, 0, sizeof(e));
+
+ /* Search for the wild card */
+ while (*line && isspace ((unsigned char) *line))
+ ++line;
++ if (!*line)
++ return;
+ for (temp = line;
+ *line && !isspace ((unsigned char) *line);
+ ++line)
+--- cvs-1.12.13+real.orig/src/zlib.c
++++ cvs-1.12.13+real/src/zlib.c
+@@ -229,7 +229,7 @@
+ would fetch all the available bytes, and at least one byte. */
+
+ status = (*cb->buf->input) (cb->buf->closure, bd->text,
+- need, BUFFER_DATA_SIZE, &nread);
++ need ? 1 : 0, BUFFER_DATA_SIZE, &nread);
+
+ if (status == -2)
+ /* Don't try to recover from memory allcoation errors. */
+--- cvs-1.12.13/configure.orig 2005-10-03 15:36:42.000000000 +0200
++++ cvs-1.12.13/configure 2022-10-23 14:36:34.653406085 +0200
+@@ -10582,7 +10582,7 @@
+ am_aux_dir=`cd $ac_aux_dir && pwd`
+
+ # getdate.y works with bison only.
+- : ${YACC="\${SHELL} $am_aux_dir/bison-missing --run bison -y"}
++ : ${YACC="\${SHELL} $am_aux_dir/missing --run bison -y"}
+
+
+
diff --git a/patches/dante-1.4.2.local.patch b/patches/dante-1.4.3.local.patch
index 0a6c8c75..42916c1b 100644
--- a/patches/dante-1.4.2.local.patch
+++ b/patches/dante-1.4.3.local.patch
@@ -1,7 +1,16 @@
-diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
---- dante-1.4.2.orig/configure 2017-02-03 15:17:15.000000000 +0100
-+++ dante-1.4.2/configure 2018-08-04 19:01:29.524396348 +0200
-@@ -15341,10 +15341,8 @@
+diff -ru dante-1.4.3.orig/configure dante-1.4.3/configure
+--- dante-1.4.3.orig/configure 2021-04-30 21:29:06.000000000 +0200
++++ dante-1.4.3/configure 2024-02-22 00:14:19.279836011 +0100
+@@ -3314,8 +3314,6 @@
+ #NOTE: save CFLAGS; wish to compile without -O2 when debugging
+ oCFLAGS="$CFLAGS"
+ oLDFLAGS="$LDFLAGS"
+-unset CFLAGS
+-unset LDFLAGS
+ case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+@@ -15347,10 +15345,8 @@
$as_echo_n "checking whether realloc with a NULL pointer calls malloc... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -14,7 +23,7 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-@@ -16923,8 +16921,9 @@
+@@ -16929,8 +16925,9 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking read/send-side pipe system" >&5
$as_echo_n "checking read/send-side pipe system... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -26,7 +35,7 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-@@ -17226,13 +17225,10 @@
+@@ -17232,13 +17229,10 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errorless select behavior with high timeouts" >&5
$as_echo_n "checking for errorless select behavior with high timeouts... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -43,7 +52,7 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
_ACEOF
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -23228,12 +23224,13 @@
+@@ -23234,12 +23228,13 @@
#AC_CHECK_FUNCS will add HAVE_foo define as long as function exists,
#check overselves as we only want define set if function is also working.
@@ -60,7 +69,7 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-@@ -23286,8 +23283,9 @@
+@@ -23292,8 +23287,9 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sockatmark" >&5
$as_echo_n "checking for working sockatmark... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -72,7 +81,7 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-@@ -23888,8 +23886,9 @@
+@@ -23894,8 +23890,9 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLOCK_MONOTONIC clock_gettime() support" >&5
$as_echo_n "checking for CLOCK_MONOTONIC clock_gettime() support... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -84,9 +93,10 @@ diff -ru dante-1.4.2.orig/configure dante-1.4.2/configure
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-diff -ru dante-1.4.2.orig/dlib/Makefile.in dante-1.4.2/dlib/Makefile.in
---- dante-1.4.2.orig/dlib/Makefile.in 2017-02-03 15:17:27.000000000 +0100
-+++ dante-1.4.2/dlib/Makefile.in 2018-08-05 01:50:52.803073351 +0200
+Only in dante-1.4.3: configure.orig
+diff -ru dante-1.4.3.orig/dlib/Makefile.in dante-1.4.3/dlib/Makefile.in
+--- dante-1.4.3.orig/dlib/Makefile.in 2021-04-30 21:30:18.000000000 +0200
++++ dante-1.4.3/dlib/Makefile.in 2024-02-22 00:14:19.283169345 +0100
@@ -409,7 +409,7 @@
../libscompat/pselect.c ../libscompat/setproctitle.c \
../libscompat/strlcpy.c ../libscompat/strvis.c \
@@ -96,3 +106,27 @@ diff -ru dante-1.4.2.orig/dlib/Makefile.in dante-1.4.2/dlib/Makefile.in
libdsocks_la_LIBADD = @LIBDSCSRC@ @DLIBDEPS@ @LIBSCOMPAT@
libdsocks_la_DEPENDENCIES = Makefile.am _reconf @LIBDSCSRC@ \
$(am__append_1)
+Only in dante-1.4.3/dlib: Makefile.in.orig
+diff -ru dante-1.4.3.orig/include/symbols_preload.txt dante-1.4.3/include/symbols_preload.txt
+--- dante-1.4.3.orig/include/symbols_preload.txt 2024-02-22 00:37:06.753086184 +0100
++++ dante-1.4.3/include/symbols_preload.txt 2024-02-22 00:37:21.979752748 +0100
+@@ -2,11 +2,9 @@
+ bind
+ bindresvport
+ connect
+-freehostent
+ getaddrinfo
+ gethostbyname
+ gethostbyname2
+-getipnodebyname
+ getpeername
+ getsockname
+ getsockopt
+@@ -16,7 +14,6 @@
+ recv
+ recvfrom
+ recvmsg
+-rresvport
+ send
+ sendmsg
+ sendto
diff --git a/patches/dbus-1.11.20.local.patch b/patches/dbus-1.11.20.local.patch
deleted file mode 100644
index 9d53ef2a..00000000
--- a/patches/dbus-1.11.20.local.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-diff -ru dbus-1.11.20.orig/bus/Makefile.in dbus-1.11.20/bus/Makefile.in
---- dbus-1.11.20.orig/bus/Makefile.in 2017-10-03 08:46:44.000000000 +0200
-+++ dbus-1.11.20/bus/Makefile.in 2017-10-10 01:13:19.263921202 +0200
-@@ -164,8 +164,8 @@
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
--dbus_daemon_DEPENDENCIES = $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1) \
-+dbus_daemon_DEPENDENCIES = $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-1.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2)
- AM_V_lt = $(am__v_lt_@AM_V@)
- am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-@@ -182,8 +182,8 @@
- am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
- dbus_daemon_launch_helper_DEPENDENCIES = \
-- $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_3)
-+ $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-1.la $(am__DEPENDENCIES_3)
- am__objects_4 = \
- dbus_daemon_launch_helper_test-config-loader-expat.$(OBJEXT) \
- dbus_daemon_launch_helper_test-config-parser-common.$(OBJEXT) \
-@@ -196,8 +196,8 @@
- dbus_daemon_launch_helper_test_OBJECTS = \
- $(am_dbus_daemon_launch_helper_test_OBJECTS)
- dbus_daemon_launch_helper_test_DEPENDENCIES = \
-- $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_3)
-+ $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-1.la $(am__DEPENDENCIES_3)
- am__test_bus_SOURCES_DIST = activation.c activation.h \
- activation-exit-codes.h apparmor.c apparmor.h audit.c audit.h \
- bus.c bus.h config-loader-expat.c config-parser.c \
-@@ -223,8 +223,8 @@
- $(am__objects_5)
- test_bus_launch_helper_OBJECTS = $(am_test_bus_launch_helper_OBJECTS)
- test_bus_launch_helper_DEPENDENCIES = \
-- $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_3)
-+ $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-1.la $(am__DEPENDENCIES_3)
- am_test_bus_system_OBJECTS = config-loader-expat.$(OBJEXT) \
- config-parser-common.$(OBJEXT) config-parser-trivial.$(OBJEXT) \
- utils.$(OBJEXT) test-system.$(OBJEXT)
-@@ -685,8 +685,8 @@
- main.c
-
- dbus_daemon_LDADD = \
-- $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-internal.la \
-+ $(top_builddir)/dbus/libdbus-1.la \
- $(EFENCE) \
- $(DBUS_BUS_LIBS)
-
-@@ -709,8 +709,8 @@
- $(LAUNCH_HELPER_SOURCES)
-
- dbus_daemon_launch_helper_LDADD = \
-+ $(top_builddir)/dbus/libdbus-internal.la \
- $(top_builddir)/dbus/libdbus-1.la \
-- $(top_builddir)/dbus/libdbus-internal.la \
- $(DBUS_LAUNCHER_LIBS)
-
- dbus_daemon_launch_helper_test_SOURCES = \
-diff -ru dbus-1.11.20.orig/dbus/dbus-sysdeps.h dbus-1.11.20/dbus/dbus-sysdeps.h
---- dbus-1.11.20.orig/dbus/dbus-sysdeps.h 2017-09-27 16:15:31.000000000 +0200
-+++ dbus-1.11.20/dbus/dbus-sysdeps.h 2017-10-10 01:24:40.402809152 +0200
-@@ -53,7 +53,7 @@
- * DBusPollFD
- */
- #ifdef HAVE_POLL
--#include <sys/poll.h>
-+#include <poll.h>
- #endif
-
- #ifdef DBUS_WINCE
-diff -ru dbus-1.11.20.orig/dbus/dbus-sysdeps-unix.c dbus-1.11.20/dbus/dbus-sysdeps-unix.c
---- dbus-1.11.20.orig/dbus/dbus-sysdeps-unix.c 2017-10-02 10:41:48.000000000 +0200
-+++ dbus-1.11.20/dbus/dbus-sysdeps-unix.c 2017-10-10 01:24:57.590686601 +0200
-@@ -69,7 +69,7 @@
- #include <sys/uio.h>
- #endif
- #ifdef HAVE_POLL
--#include <sys/poll.h>
-+#include <poll.h>
- #endif
- #ifdef HAVE_BACKTRACE
- #include <execinfo.h>
-diff -ru dbus-1.11.20.orig/dbus/Makefile.in dbus-1.11.20/dbus/Makefile.in
---- dbus-1.11.20.orig/dbus/Makefile.in 2017-10-03 08:46:45.000000000 +0200
-+++ dbus-1.11.20/dbus/Makefile.in 2017-10-10 00:54:28.948451539 +0200
-@@ -250,7 +250,7 @@
- @DBUS_WIN_TRUE@am_libdbus_init_win_la_OBJECTS = dbus-init-win.lo
- libdbus_init_win_la_OBJECTS = $(am_libdbus_init_win_la_OBJECTS)
- @DBUS_WIN_TRUE@am_libdbus_init_win_la_rpath =
--libdbus_internal_la_DEPENDENCIES = $(am__DEPENDENCIES_1) libdbus-1.la
-+libdbus_internal_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
- am__libdbus_internal_la_SOURCES_DIST = dbus-asv-util.c dbus-asv-util.h \
- dbus-auth-script.c dbus-auth-script.h dbus-auth-util.c \
- dbus-credentials-util.c dbus-mainloop.c dbus-mainloop.h \
-@@ -838,7 +838,7 @@
- $(dbus_res_ldflag) \
- $(NULL)
-
--libdbus_internal_la_LIBADD = $(LIBDBUS_LIBS) libdbus-1.la
-+libdbus_internal_la_LIBADD = $(LIBDBUS_LIBS)
- @DBUS_WIN_TRUE@AM_CXXFLAGS = \
- @DBUS_WIN_TRUE@ $(CODE_COVERAGE_CXXFLAGS) \
- @DBUS_WIN_TRUE@ $(NULL)
-diff -Naur dbus-1.11.20.orig/Makefile.in dbus-1.11.20/Makefile.in
---- dbus-1.11.20.orig/Makefile.in 2017-10-03 00:46:44.000000000 -0600
-+++ dbus-1.11.20/Makefile.in 2017-12-07 10:56:37.853995935 -0700
-@@ -498,7 +498,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = dbus bus tools test doc
-+SUBDIRS = dbus bus tools doc
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = dbus-1.pc
- cmakeconfigdir = $(libdir)/cmake/DBus1
---- dbus-1.11.20/test/Makefile.in.orig 2017-10-03 06:46:45.000000000 +0000
-+++ dbus-1.11.20/test/Makefile.in 2018-10-14 20:56:47.156000000 +0000
-@@ -2288,7 +2288,7 @@
- @DBUS_ENABLE_INSTALLED_TESTS_TRUE@ $(installable_tests); }
-
- all-local: copy-config-local uninstalled-config-local
-- $(AM_V_at)$(MKDIR_P) -m700 XDG_RUNTIME_DIR
-+ $(AM_V_at)$(MKDIR_P) -m 700 XDG_RUNTIME_DIR
-
- copy-config-local:
- $(AM_V_at)$(MKDIR_P) data/valid-config-files/session.d
diff --git a/patches/dbus_host-1.11.20.local.patch b/patches/dbus_host-1.11.20.local.patch
deleted file mode 100644
index 0d2da4f4..00000000
--- a/patches/dbus_host-1.11.20.local.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- dbus-1.11.20/test/Makefile.in.orig 2017-10-03 06:46:45.000000000 +0000
-+++ dbus-1.11.20/test/Makefile.in 2018-10-14 20:56:47.156000000 +0000
-@@ -2288,7 +2288,7 @@
- @DBUS_ENABLE_INSTALLED_TESTS_TRUE@ $(installable_tests); }
-
- all-local: copy-config-local uninstalled-config-local
-- $(AM_V_at)$(MKDIR_P) -m700 XDG_RUNTIME_DIR
-+ $(AM_V_at)$(MKDIR_P) -m 700 XDG_RUNTIME_DIR
-
- copy-config-local:
- $(AM_V_at)$(MKDIR_P) data/valid-config-files/session.d
diff --git a/patches/ed-1.18_pre.local.patch b/patches/ed-1.20_pre.local.patch
index ad5d95e0..624c9d12 100644
--- a/patches/ed-1.18_pre.local.patch
+++ b/patches/ed-1.20_pre.local.patch
@@ -1,12 +1,11 @@
diff -ru ed-1.17.orig/configure ed-1.17/configure
--- ed-1.17.orig/configure 2021-01-06 14:06:29.000000000 +0100
+++ ed-1.17/configure 2021-01-13 12:29:03.995851327 +0100
-@@ -23,7 +23,7 @@
+@@ -23,7 +23,6 @@
program_prefix=
CC=gcc
CPPFLAGS=
-CFLAGS='-Wall -W -O2'
-+CFLAGS ?= '-Wall -W -O2'
LDFLAGS=
# checking whether we are using GNU C.
diff --git a/patches/elinks-0.15.0_pre.local.patch b/patches/elinks-0.15.0_pre.local.patch
index e57afb81..64b1684f 100644
--- a/patches/elinks-0.15.0_pre.local.patch
+++ b/patches/elinks-0.15.0_pre.local.patch
@@ -1,7 +1,26 @@
-diff -ru elinks-0.15.0.orig/configure elinks-0.15.0/configure
---- elinks-0.15.0.orig/configure 2021-12-24 20:57:15.000000000 +0100
-+++ elinks-0.15.0/configure 2022-01-01 15:57:15.992481385 +0100
-@@ -13347,59 +13347,9 @@
+--- elinks-0.15.0/configure.orig 2021-12-24 20:57:15.000000000 +0100
++++ elinks-0.15.0/configure 2023-03-27 08:37:42.627732227 +0200
+@@ -10345,18 +10345,10 @@
+ fi
+ fi
+
+- for ac_header in term.h
+-do :
+- ac_fn_cxx_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" "$ac_includes_default"
+-if test "x$ac_cv_header_term_h" = xyes
+-then :
++ac_cv_header_term_h=yes
+ printf "%s\n" "#define HAVE_TERM_H 1" >>confdefs.h
+ CONFIG_TERMINFO=yes
+-else $as_nop
+- CONFIG_TERMINFO=no; break;
+-fi
+
+-done
+ if test "$CONFIG_TERMINFO" = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setupterm in -ltinfo" >&5
+ printf %s "checking for setupterm in -ltinfo... " >&6; }
+@@ -13347,59 +13339,9 @@
chosen_ssl_library="GNUTLS"
diff --git a/patches/ffmpeg-5.1.1.local.patch b/patches/ffmpeg-6.1.1.local.patch
index 1c385d2c..ee0c91f7 100644
--- a/patches/ffmpeg-5.1.1.local.patch
+++ b/patches/ffmpeg-6.1.1.local.patch
@@ -1,3 +1,30 @@
+diff -ru ffmpeg-6.0.orig/libavcodec/x86/lpc_init.c ffmpeg-6.0/libavcodec/x86/lpc_init.c
+--- ffmpeg-6.0.orig/libavcodec/x86/lpc_init.c 2023-02-27 21:43:45.000000000 +0100
++++ ffmpeg-6.0/libavcodec/x86/lpc_init.c 2023-03-15 10:24:51.602248563 +0100
+@@ -45,9 +45,9 @@
+ x86_reg i = -len*sizeof(double);
+ if(j == lag-2) {
+ __asm__ volatile(
+- "movsd "MANGLE(pd_1)", %%xmm0 \n\t"
+- "movsd "MANGLE(pd_1)", %%xmm1 \n\t"
+- "movsd "MANGLE(pd_1)", %%xmm2 \n\t"
++ "movsd "LOCAL_MANGLE(pd_1)", %%xmm0 \n\t"
++ "movsd "LOCAL_MANGLE(pd_1)", %%xmm1 \n\t"
++ "movsd "LOCAL_MANGLE(pd_1)", %%xmm2 \n\t"
+ "1: \n\t"
+ "movapd (%2,%0), %%xmm3 \n\t"
+ "movupd -8(%3,%0), %%xmm4 \n\t"
+@@ -76,8 +76,8 @@
+ );
+ } else {
+ __asm__ volatile(
+- "movsd "MANGLE(pd_1)", %%xmm0 \n\t"
+- "movsd "MANGLE(pd_1)", %%xmm1 \n\t"
++ "movsd "LOCAL_MANGLE(pd_1)", %%xmm0 \n\t"
++ "movsd "LOCAL_MANGLE(pd_1)", %%xmm1 \n\t"
+ "1: \n\t"
+ "movapd (%3,%0), %%xmm3 \n\t"
+ "movupd -8(%4,%0), %%xmm4 \n\t"
diff -ru ffmpeg-5.1.orig/libavcodec/x86/cabac.h ffmpeg-5.1/libavcodec/x86/cabac.h
--- ffmpeg-5.1.orig/libavcodec/x86/cabac.h 2022-07-22 19:58:39.000000000 +0200
+++ ffmpeg-5.1/libavcodec/x86/cabac.h 2022-08-21 12:11:42.010806805 +0200
@@ -143,44 +170,6 @@ diff -ru ffmpeg-5.1.orig/libavcodec/x86/h264_cabac.c ffmpeg-5.1/libavcodec/x86/h
#endif
"add %11, %6 \n\t"
-diff -ru ffmpeg-5.1.orig/libavcodec/x86/lpc.c ffmpeg-5.1/libavcodec/x86/lpc.c
---- ffmpeg-5.1.orig/libavcodec/x86/lpc.c 2022-07-22 19:58:39.000000000 +0200
-+++ ffmpeg-5.1/libavcodec/x86/lpc.c 2022-08-21 12:11:41.774806812 +0200
-@@ -40,8 +40,8 @@
- x86_reg j = n2*sizeof(int32_t);
- __asm__ volatile(
- "movsd %4, %%xmm7 \n\t"
-- "movapd "MANGLE(pd_1)", %%xmm6 \n\t"
-- "movapd "MANGLE(pd_2)", %%xmm5 \n\t"
-+ "movapd "LOCAL_MANGLE(pd_1)", %%xmm6 \n\t"
-+ "movapd "LOCAL_MANGLE(pd_2)", %%xmm5 \n\t"
- "movlhps %%xmm7, %%xmm7 \n\t"
- "subpd %%xmm5, %%xmm7 \n\t"
- "addsd %%xmm6, %%xmm7 \n\t"
-@@ -91,9 +91,9 @@
- x86_reg i = -len*sizeof(double);
- if(j == lag-2) {
- __asm__ volatile(
-- "movsd "MANGLE(pd_1)", %%xmm0 \n\t"
-- "movsd "MANGLE(pd_1)", %%xmm1 \n\t"
-- "movsd "MANGLE(pd_1)", %%xmm2 \n\t"
-+ "movsd "LOCAL_MANGLE(pd_1)", %%xmm0 \n\t"
-+ "movsd "LOCAL_MANGLE(pd_1)", %%xmm1 \n\t"
-+ "movsd "LOCAL_MANGLE(pd_1)", %%xmm2 \n\t"
- "1: \n\t"
- "movapd (%2,%0), %%xmm3 \n\t"
- "movupd -8(%3,%0), %%xmm4 \n\t"
-@@ -122,8 +122,8 @@
- );
- } else {
- __asm__ volatile(
-- "movsd "MANGLE(pd_1)", %%xmm0 \n\t"
-- "movsd "MANGLE(pd_1)", %%xmm1 \n\t"
-+ "movsd "LOCAL_MANGLE(pd_1)", %%xmm0 \n\t"
-+ "movsd "LOCAL_MANGLE(pd_1)", %%xmm1 \n\t"
- "1: \n\t"
- "movapd (%3,%0), %%xmm3 \n\t"
- "movupd -8(%4,%0), %%xmm4 \n\t"
diff -ru ffmpeg-5.1.orig/libavcodec/x86/mlpdsp_init.c ffmpeg-5.1/libavcodec/x86/mlpdsp_init.c
--- ffmpeg-5.1.orig/libavcodec/x86/mlpdsp_init.c 2022-07-22 19:58:39.000000000 +0200
+++ ffmpeg-5.1/libavcodec/x86/mlpdsp_init.c 2022-08-21 12:11:42.286806796 +0200
@@ -395,19 +384,6 @@ diff -ru ffmpeg-5.1.orig/libpostproc/postprocess_template.c ffmpeg-5.1/libpostpr
"psubb %%mm0, %%mm5 \n\t" // q
"paddsb %%mm6, %%mm5 \n\t" // fix bad rounding
"pcmpgtb %%mm5, %%mm7 \n\t" // SIGN(q)
-@@ -991,10 +991,10 @@
- "psubusw %%mm1, %%mm5 \n\t" // ld
-
-
-- "movq "MANGLE(w05)", %%mm2 \n\t" // 5
-+ "movq "LOCAL_MANGLE(w05)", %%mm2 \n\t" // 5
- "pmullw %%mm2, %%mm4 \n\t"
- "pmullw %%mm2, %%mm5 \n\t"
-- "movq "MANGLE(w20)", %%mm2 \n\t" // 32
-+ "movq "LOCAL_MANGLE(w20)", %%mm2 \n\t" // 32
- "paddw %%mm2, %%mm4 \n\t"
- "paddw %%mm2, %%mm5 \n\t"
- "psrlw $6, %%mm4 \n\t"
@@ -1187,7 +1187,7 @@
"psubb %%mm7, %%mm6 \n\t" // max - min
"push %%"FF_REG_a" \n\t"
diff --git a/patches/ffmpeg-5.1.1_pre.local.patch b/patches/ffmpeg-6.1.1_pre.local.patch
index d8e39cba..d8e39cba 100644
--- a/patches/ffmpeg-5.1.1_pre.local.patch
+++ b/patches/ffmpeg-6.1.1_pre.local.patch
diff --git a/patches/file-5.42_pre.local.patch b/patches/file-5.45_pre.local.patch
index c3cbd39d..c3cbd39d 100644
--- a/patches/file-5.42_pre.local.patch
+++ b/patches/file-5.45_pre.local.patch
diff --git a/patches/file_host-5.42_pre.local.patch b/patches/file_host-5.45_pre.local.patch
index c3cbd39d..c3cbd39d 100644
--- a/patches/file_host-5.42_pre.local.patch
+++ b/patches/file_host-5.45_pre.local.patch
diff --git a/patches/fontconfig-2.14.1.local.patch b/patches/fontconfig-2.14.1.local.patch
new file mode 100644
index 00000000..01ff6c07
--- /dev/null
+++ b/patches/fontconfig-2.14.1.local.patch
@@ -0,0 +1,21 @@
+diff -ru fontconfig-2.14.1.orig/src/fcstat.c fontconfig-2.14.1/src/fcstat.c
+--- fontconfig-2.14.1.orig/src/fcstat.c 2021-07-08 07:47:01.000000000 +0200
++++ fontconfig-2.14.1/src/fcstat.c 2023-01-18 13:38:16.297077648 +0100
+@@ -373,7 +373,7 @@
+ p = buf.f_fstypename;
+ # endif
+ }
+-#elif defined(HAVE_FSTATFS) && (defined(HAVE_STRUCT_STATFS_F_FLAGS) || defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(__linux__))
++#elif defined(HAVE_FSTATFS) && (defined(HAVE_STRUCT_STATFS_F_FLAGS) || defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(__linux__) || defined(__midipix__))
+ struct statfs buf;
+
+ memset (statb, 0, sizeof (FcStatFS));
+@@ -386,7 +386,7 @@
+ # endif
+ # if defined(HAVE_STRUCT_STATFS_F_FSTYPENAME)
+ p = buf.f_fstypename;
+-# elif defined(__linux__) || defined (__EMSCRIPTEN__)
++# elif defined(__linux__) || defined(__midipix__) || defined (__EMSCRIPTEN__)
+ switch (buf.f_type)
+ {
+ case 0x6969: /* nfs */
diff --git a/patches/gcal-4.1_pre.local.patch b/patches/gcal-4.1_pre.local.patch
new file mode 100644
index 00000000..dc6c3fa6
--- /dev/null
+++ b/patches/gcal-4.1_pre.local.patch
@@ -0,0 +1,12 @@
+diff -ru gcal-4.1.orig/configure gcal-4.1/configure
+--- gcal-4.1.orig/configure 2017-01-22 18:09:59.000000000 +0100
++++ gcal-4.1/configure 2023-01-31 14:35:28.553255306 +0100
+@@ -8769,7 +8769,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5
+ $as_echo "$ac_cv_lib_ncurses_initscr" >&6; }
+ if test "x$ac_cv_lib_ncurses_initscr" = xyes; then :
+- TTYLIBS="-lncurses"
++ TTYLIBS="-lncurses -ltinfo"
+ fi
+
+ if test -z "$TTYLIBS"; then
diff --git a/patches/gdk-2.36.10.local.patch b/patches/gdk-2.36.10.local.patch
deleted file mode 100644
index 3c19f614..00000000
--- a/patches/gdk-2.36.10.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in gdk-pixbuf-2.36.10/thumbnailer/Makefile.in
---- gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in 2017-09-11 13:00:44.000000000 +0200
-+++ gdk-pixbuf-2.36.10/thumbnailer/Makefile.in 2017-09-15 20:57:24.196896220 +0200
-@@ -453,7 +453,7 @@
- $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GDK_PIXBUF_API_VERSION).la
-
- thumbnailerdir = $(datadir)/thumbnailers/
--thumbnailer_DATA = gdk-pixbuf-thumbnailer.thumbnailer
-+thumbnailer_DATA =
- EXTRA_DIST = gdk-pixbuf-thumbnailer.thumbnailer.in
- CLEANFILES = $(thumbnailer_DATA)
- all: all-am
diff --git a/patches/ghostpdl-9.52.local.patch b/patches/ghostpdl-9.52.local.patch
index 11712f1a..5a9646fe 100644
--- a/patches/ghostpdl-9.52.local.patch
+++ b/patches/ghostpdl-9.52.local.patch
@@ -31,7 +31,17 @@ diff -ru ghostpdl-9.52.orig/base/fapi_ft.c ghostpdl-9.52/base/fapi_ft.c
diff -ru ghostpdl-9.52.orig/configure ghostpdl-9.52/configure
--- ghostpdl-9.52.orig/configure 2020-06-05 13:19:23.032760767 +0200
+++ ghostpdl-9.52/configure 2020-06-05 13:18:58.367780811 +0200
-@@ -10957,7 +10957,7 @@
+@@ -7566,9 +7566,6 @@
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for local zlib source" >&5
+ $as_echo_n "checking for local zlib source... " >&6; }
+-# we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
+-# this seems a harmless default
+-ZLIBDIR=src
+ AUX_SHARED_ZLIB=
+ ZLIBCFLAGS=""
+
+@@ -10957,7 +10954,7 @@
enableval=$enable_dynamic;
if test "x$enable_dynamic" != xno; then
case $host in
diff --git a/patches/giflib-5.2.1.local.patch b/patches/giflib-5.2.1.local.patch
deleted file mode 100644
index 597708b6..00000000
--- a/patches/giflib-5.2.1.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru giflib-5.2.1.orig/Makefile giflib-5.2.1/Makefile
---- giflib-5.2.1.orig/Makefile 2019-06-24 18:08:57.000000000 +0200
-+++ giflib-5.2.1/Makefile 2020-06-22 16:38:04.273418161 +0200
-@@ -61,7 +61,7 @@
-
- LDLIBS=libgif.a -lm
-
--all: libgif.so libgif.a libutil.so libutil.a $(UTILS)
-+all: libgif.so libgif.a libutil.a $(UTILS)
- $(MAKE) -C doc
-
- $(UTILS):: libgif.a libutil.a
diff --git a/patches/giflib-5.2.2.local.patch b/patches/giflib-5.2.2.local.patch
new file mode 100644
index 00000000..8e421d52
--- /dev/null
+++ b/patches/giflib-5.2.2.local.patch
@@ -0,0 +1,32 @@
+diff -ru giflib-5.2.2.orig/doc/Makefile giflib-5.2.2/doc/Makefile
+--- giflib-5.2.2.orig/doc/Makefile 2024-02-18 19:15:05.000000000 +0100
++++ giflib-5.2.2/doc/Makefile 2024-03-11 15:46:56.522195535 +0100
+@@ -15,7 +15,7 @@
+ .adoc.html:
+ asciidoc $<
+
+-all: allhtml manpages
++all: manpages
+
+ # The distinction between XMLMAN and XMLINTERNAL is because
+ # some pages shouldn't be installed as part of a binary package;
+diff -ru giflib-5.2.2.orig/Makefile giflib-5.2.2/Makefile
+--- giflib-5.2.2.orig/Makefile 2024-02-19 02:01:50.000000000 +0100
++++ giflib-5.2.2/Makefile 2024-03-11 10:30:17.730765319 +0100
+@@ -8,7 +8,6 @@
+ #
+ OFLAGS = -O0 -g
+ OFLAGS = -O2
+-CFLAGS = -std=gnu99 -fPIC -Wall -Wno-format-truncation $(OFLAGS)
+
+ SHELL = /bin/sh
+ TAR = tar
+@@ -87,7 +86,7 @@
+ LIBUTILSOMAJOR = libutil.$(LIBMAJOR).$(SOEXTENSION)
+ endif
+
+-all: $(LIBGIFSO) libgif.a $(LIBUTILSO) libutil.a $(UTILS)
++all: $(LIBGIFSO) libgif.a libutil.a $(UTILS)
+ ifeq ($(UNAME), Darwin)
+ else
+ $(MAKE) -C doc
diff --git a/patches/git-2.35.2.local.patch b/patches/git-2.35.8.local.patch
index 0b885529..581f6ea7 100644
--- a/patches/git-2.35.2.local.patch
+++ b/patches/git-2.35.8.local.patch
@@ -79,3 +79,25 @@
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(filter %.a,$^) $(LIBS)
check-sha1:: t/helper/test-tool$X
+--- git-2.35.6/git-compat-util.h.orig 2022-12-13 13:17:26.000000000 +0100
++++ git-2.35.6/git-compat-util.h 2023-03-28 08:13:34.179644083 +0200
+@@ -221,7 +221,7 @@
+ #include <time.h>
+ #include <signal.h>
+ #include <assert.h>
+-#include <regex.h>
++#include <pcreposix.h>
+ #include <utime.h>
+ #include <syslog.h>
+ #if !defined(NO_POLL_H)
+--- git-2.35.6/compat/regex/regex.c.orig 2022-12-13 13:17:26.000000000 +0100
++++ git-2.35.6/compat/regex/regex.c 2023-03-28 08:18:00.186635875 +0200
+@@ -66,7 +66,7 @@
+ #undef alloca
+ #define alloca alloca_is_bad_you_should_never_use_it
+ #endif
+-#include <regex.h>
++#include "compat/regex/regex.h"
+ #include "regex_internal.h"
+
+ #include "regex_internal.c"
diff --git a/patches/git/git-no-owner-check.patch b/patches/git/git-no-owner-check.patch
new file mode 100644
index 00000000..a4cf34db
--- /dev/null
+++ b/patches/git/git-no-owner-check.patch
@@ -0,0 +1,25 @@
+diff -ru git-2.35.5.orig/setup.c git-2.35.5/setup.c
+--- git-2.35.5.orig/setup.c 2022-10-06 23:44:02.000000000 +0200
++++ git-2.35.5/setup.c 2022-10-19 13:48:26.183628821 +0200
+@@ -1130,6 +1130,13 @@
+ static int ensure_valid_ownership(const char *gitfile,
+ const char *worktree, const char *gitdir)
+ {
++#if 1
++ (void)gitfile;
++ (void)worktree;
++ (void)gitdir;
++
++ return 1;
++#else
+ struct safe_directory_data data = {
+ .path = worktree ? worktree : gitdir
+ };
+@@ -1148,6 +1155,7 @@
+ read_very_early_config(safe_directory_cb, &data);
+
+ return data.is_safe;
++#endif
+ }
+
+ enum discovery_result {
diff --git a/patches/git_host b/patches/git_host
new file mode 120000
index 00000000..0899c299
--- /dev/null
+++ b/patches/git_host
@@ -0,0 +1 @@
+git \ No newline at end of file
diff --git a/patches/glew-2.1.0.local.patch b/patches/glew-2.1.0.local.patch
deleted file mode 100644
index 4221c9c5..00000000
--- a/patches/glew-2.1.0.local.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nru glew-2.1.0.orig/config/Makefile.midipix glew-2.1.0/config/Makefile.midipix
---- glew-2.1.0.orig/config/Makefile.midipix 1970-01-01 01:00:00.000000000 +0100
-+++ glew-2.1.0/config/Makefile.midipix 2018-07-19 22:26:01.674783470 +0200
-@@ -0,0 +1,17 @@
-+NAME = $(GLEW_NAME)
-+CC = gcc
-+LD = gcc
-+LDFLAGS.GL = -lGL -lX11
-+NAME = GLEW
-+WARN = -Wall -W
-+POPT = -O2
-+CFLAGS.EXTRA += -fPIC -I./include
-+CFLAGS.EXTRA += -Wcast-qual
-+CFLAGS.EXTRA += -ansi -pedantic
-+CFLAGS.EXTRA += -fno-stack-protector
-+BIN.SUFFIX =
-+LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
-+LIB.DEVLNK = lib$(NAME).so
-+LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
-+LIB.STATIC = lib$(NAME).a
-+LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) -Wl,--out-dsolib,lib/lib$(NAME).lib.a
diff --git a/patches/gnupg-2.3.8.local.patch b/patches/gnupg-2.3.8.local.patch
new file mode 100644
index 00000000..7e2d9617
--- /dev/null
+++ b/patches/gnupg-2.3.8.local.patch
@@ -0,0 +1,13 @@
+diff -ru gnupg-2.3.8.orig/dirmngr/server.c gnupg-2.3.8/dirmngr/server.c
+--- gnupg-2.3.8.orig/dirmngr/server.c 2022-10-07 15:23:50.000000000 +0200
++++ gnupg-2.3.8/dirmngr/server.c 2022-10-22 15:52:13.224088828 +0200
+@@ -3137,7 +3137,9 @@
+ ctrl->refcount);
+ else
+ {
++#if USE_LDAP
+ ks_ldap_free_state (ctrl->ks_get_state);
++#endif
+ ctrl->ks_get_state = NULL;
+ release_ctrl_ocsp_certs (ctrl);
+ xfree (ctrl->server_local);
diff --git a/patches/gnupg-2.3.8_pre.local.patch b/patches/gnupg-2.3.8_pre.local.patch
new file mode 100644
index 00000000..947bce1b
--- /dev/null
+++ b/patches/gnupg-2.3.8_pre.local.patch
@@ -0,0 +1,21 @@
+diff -ru gnupg-2.3.8.orig/configure gnupg-2.3.8/configure
+--- gnupg-2.3.8.orig/configure 2022-10-13 17:56:41.000000000 +0200
++++ gnupg-2.3.8/configure 2022-10-22 15:45:44.541933579 +0200
+@@ -9004,7 +9004,7 @@
+
+ if test $ok = yes; then
+ LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG --cflags`
+- LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG --libs`
++ LIBASSUAN_LIBS="-lassuan -lgpg-error"
+ have_libassuan=yes
+ else
+ LIBASSUAN_CFLAGS=""
+@@ -9183,7 +9183,7 @@
+ fi
+ if test $ok = yes; then
+ KSBA_CFLAGS=`$KSBA_CONFIG --cflags`
+- KSBA_LIBS=`$KSBA_CONFIG --libs`
++ KSBA_LIBS="-lksba -lgpg-error -lnpth"
+ have_ksba=yes
+ if test -z "$use_gpgrt_config"; then
+ libksba_config_host=`$KSBA_CONFIG --host 2>/dev/null || echo none`
diff --git a/patches/gnutls-3.7.6.local.patch b/patches/gnutls-3.8.5.local.patch
index 968143cf..968143cf 100644
--- a/patches/gnutls-3.7.6.local.patch
+++ b/patches/gnutls-3.8.5.local.patch
diff --git a/patches/gnutls-3.7.6_pre.local.patch b/patches/gnutls-3.8.5_pre.local.patch
index b214ccc0..b214ccc0 100644
--- a/patches/gnutls-3.7.6_pre.local.patch
+++ b/patches/gnutls-3.8.5_pre.local.patch
diff --git a/patches/graphicsmagick-1.3.35_pre.local.patch b/patches/graphicsmagick-1.3.42_pre.local.patch
index 8ccf465c..8ccf465c 100644
--- a/patches/graphicsmagick-1.3.35_pre.local.patch
+++ b/patches/graphicsmagick-1.3.42_pre.local.patch
diff --git a/patches/gtk2-2.24.31.local.patch b/patches/gtk2-2.24.31.local.patch
deleted file mode 100644
index fe47cd61..00000000
--- a/patches/gtk2-2.24.31.local.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -ru gtk+-2.24.31.orig/gtk/Makefile.in gtk+-2.24.31/gtk/Makefile.in
---- gtk+-2.24.31.orig/gtk/Makefile.in 2016-09-09 21:33:09.000000000 +0200
-+++ gtk+-2.24.31/gtk/Makefile.in 2017-10-20 00:08:05.310575203 +0200
-@@ -1937,7 +1937,7 @@
- libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
- libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
- libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
--libgtk_x11_2_0_la_LIBADD = $(libadd)
-+libgtk_x11_2_0_la_LIBADD = $(libadd) -latk-1.0 -lglib-2.0 -lgobject-2.0
- libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
- libgtk_quartz_2_0_la_LIBADD = $(libadd)
- libgtk_directfb_2_0_la_LIBADD = $(libadd)
-diff -ru gtk+-2.24.31.orig/Makefile.in gtk+-2.24.31/Makefile.in
---- gtk+-2.24.31.orig/Makefile.in 2016-09-09 21:33:07.000000000 +0200
-+++ gtk+-2.24.31/Makefile.in 2017-10-20 00:07:42.010704831 +0200
-@@ -564,7 +564,7 @@
- || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
- && DISPLAY=:$$XID && export DISPLAY
-
--SRC_SUBDIRS = gdk gtk modules demos tests perf
-+SRC_SUBDIRS = gdk gtk modules perf
- SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
-
- # require automake 1.4
-
---- gtk+-2.24.31/configure.orig 2016-09-09 19:33:11.000000000 +0000
-+++ gtk+-2.24.31/configure 2017-11-28 09:52:56.536000000 +0000
-@@ -24351,7 +24351,7 @@
- GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
- ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
- PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
--CAIRO_PREFIX="`pkg-config --variable=prefix cairo`"
-+CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
-
-
-
diff --git a/patches/gxemul-0.7.0.local.patch b/patches/gxemul-0.7.0.local.patch
new file mode 100644
index 00000000..69693038
--- /dev/null
+++ b/patches/gxemul-0.7.0.local.patch
@@ -0,0 +1,56 @@
+diff -ru gxemul-0.7.0.orig/src/cpus/cpu_riscv.c gxemul-0.7.0/src/cpus/cpu_riscv.c
+--- gxemul-0.7.0.orig/src/cpus/cpu_riscv.c 2021-04-22 18:04:18.000000000 +0000
++++ gxemul-0.7.0/src/cpus/cpu_riscv.c 2022-10-18 15:23:16.025840300 +0000
+@@ -401,13 +401,13 @@
+ if (!(cpu->cd.riscv.extensions & RISCV_EXT_C))
+ debug("compressed (req. C ext)\t; ");
+
+- uint w13 = (iw >> 13) & 7;
+- uint w0 = (iw >> 0) & 3;
+- uint op = (w13 << 2) | w0;
++ uint32_t w13 = (iw >> 13) & 7;
++ uint32_t w0 = (iw >> 0) & 3;
++ uint32_t op = (w13 << 2) | w0;
+
+- uint rs1rd = (iw >> 7) & 31;
+- uint rs2 = (iw >> 2) & 31;
+- uint rprim_2 = ((iw >> 2) & 7) + RISCV_CREGBASE;
++ uint32_t rs1rd = (iw >> 7) & 31;
++ uint32_t rs2 = (iw >> 2) & 31;
++ uint32_t rprim_2 = ((iw >> 2) & 7) + RISCV_CREGBASE;
+ uint64_t nzimm5 = ((iw & (1 << 12)) ? -1 : 0) << 5;
+ uint64_t nzimm;
+
+diff -ru gxemul-0.7.0.orig/src/cpus/cpu_riscv_instr.c gxemul-0.7.0/src/cpus/cpu_riscv_instr.c
+--- gxemul-0.7.0.orig/src/cpus/cpu_riscv_instr.c 2021-04-22 18:04:18.000000000 +0000
++++ gxemul-0.7.0/src/cpus/cpu_riscv_instr.c 2022-10-18 15:22:53.407914100 +0000
+@@ -209,11 +209,11 @@
+ */
+
+ if (instr_length_in_bytes == sizeof(uint16_t)) {
+- uint w13 = (iw >> 13) & 7;
+- uint w0 = (iw >> 0) & 3;
+- uint op = (w13 << 2) | w0;
++ uint32_t w13 = (iw >> 13) & 7;
++ uint32_t w0 = (iw >> 0) & 3;
++ uint32_t op = (w13 << 2) | w0;
+
+- uint rs1rd = (iw >> 7) & 31;
++ uint32_t rs1rd = (iw >> 7) & 31;
+ uint64_t nzimm5 = ((iw & (1 << 12)) ? -1 : 0) << 5;
+ uint64_t nzimm = nzimm5 | ((iw >> 2) & 31);
+
+diff -ru gxemul-0.7.0.orig/src/include/thirdparty/alpha_rpb.h gxemul-0.7.0/src/include/thirdparty/alpha_rpb.h
+--- gxemul-0.7.0.orig/src/include/thirdparty/alpha_rpb.h 2021-04-22 18:04:14.000000000 +0000
++++ gxemul-0.7.0/src/include/thirdparty/alpha_rpb.h 2022-10-18 15:15:22.740823100 +0000
+@@ -334,8 +334,8 @@
+ u_int64_t pcs_reserved_soft; /* 120: preserved software */
+
+ struct { /* 128: inter-console buffers */
+- u_int iccb_rxlen;
+- u_int iccb_txlen;
++ u_int32_t iccb_rxlen;
++ u_int32_t iccb_txlen;
+ char iccb_rxbuf[80];
+ char iccb_txbuf[80];
+ } pcs_iccb;
diff --git a/patches/gxemul-0.7.0_pre.local.patch b/patches/gxemul-0.7.0_pre.local.patch
new file mode 100644
index 00000000..ac2c844c
--- /dev/null
+++ b/patches/gxemul-0.7.0_pre.local.patch
@@ -0,0 +1,525 @@
+diff -ru gxemul-0.7.0.orig/configure gxemul-0.7.0/configure
+--- gxemul-0.7.0.orig/configure 2021-04-22 18:04:21.000000000 +0000
++++ gxemul-0.7.0/configure 2022-10-18 18:28:37.542626000 +0000
+@@ -112,11 +112,6 @@
+ echo "value, which on this platform is: $DEFAULTPREFIX"
+ echo
+ exit
+- else
+- echo "Invalid option: $a"
+- echo "Run $0 --help to get a list of" \
+- "available options."
+- exit
+ fi; fi; fi
+ done
+ fi
+@@ -267,44 +262,6 @@
+ CC=cc
+ fi
+
+-printf "#!/bin/sh\n$CC $CFLAGS _testprog.c -o _testprog >" > _test.sh
+-printf " /dev/null 2> /dev/null\n" >> _test.sh
+-chmod 755 _test.sh
+-./_test.sh > /dev/null 2> /dev/null
+-OK=0
+-if [ -x _testprog ]; then
+- OK=1
+- if [ z`./_testprog` = z0,1,1,1,2 ]; then
+- OK=2
+- fi
+-fi
+-
+-if [ z$OK = z0 ]; then
+- printf "broken cc detected: $CC $CFLAGS\n"
+- printf "The test program:\n\n"
+- cat _testprog.c
+- printf "could not be compiled at all.\n"
+-fi
+-
+-if [ z$OK = z1 ]; then
+- printf "broken cc detected: $CC $CFLAGS\n"
+- printf "The test program:\n\n"
+- cat _testprog.c
+- printf "should have resulted in 0,1,1,1,2 but the result was: "
+- ./_testprog
+-fi
+-
+-if [ z$OK != z2 ]; then
+- printf "\nPlease set the CC environment variable to a working C "
+- printf "compiler before running\nthe configure script, and make"
+- printf " sure that the CFLAGS environment variable is\nalso valid"
+- printf " for that compiler (e.g. -std=c99 if needed).\n"
+- exit
+-fi
+-
+-rm -f _testprog
+-rm -f _test.sh
+-
+
+ echo "$CC $CFLAGS"
+
+@@ -317,120 +274,12 @@
+ if [ z$NOX11 = z ]; then
+ printf "checking for X11 headers and libs\n"
+
+- # Try to compile a small X11 test program:
+- printf "#include <X11/Xlib.h>
+- #include <stdio.h>
+- Display *dis;
+- void f(void) {
+- dis = XOpenDisplay(NULL);
+- }
+- int main(int argc, char *argv[])
+- { printf(\"1\"); return 0; }
+- " > _test_x11.c
+-
+- XOK=0
+-
+- XINCLUDE=-I/usr/X11R6/include
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- XLIB="-L/usr/X11R6/lib -lX11 -Wl,-rpath,/usr/X11R6/lib"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- if [ 1 = `./_test_x11` ]; then
+- XOK=1
+- fi
+- fi
+-
+- rm -f _test_x11 _test_x11.o
+-
+- if [ z$XOK = z0 ]; then
+- XINCLUDE=-I/usr/X11R7/include
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- XLIB="-L/usr/X11R7/lib -lX11 -Wl,-rpath,/usr/X11R7/lib"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- if [ 1 = `./_test_x11` ]; then
+- XOK=1
+- fi
+- fi
+- fi
+- rm -f _test_x11 _test_x11.o
+-
+- if [ z$XOK = z0 ]; then
+- XINCLUDE=-I/usr/local/include
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- XLIB="-L/usr/local/lib -lX11 -Wl,-rpath,/usr/local/lib"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- if [ 1 = `./_test_x11` ]; then
+- XOK=1
+- fi
+- fi
+- fi
+- rm -f _test_x11 _test_x11.o
+-
+- # MacOS:
+- if [ z$XOK = z0 ]; then
+- XINCLUDE=-I/opt/X11/include
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- XLIB="-L/opt/X11/lib -lX11"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- XOK=1
+- fi
+- fi
+- rm -f _test_x11 _test_x11.o
+-
+- # Special case for some 64-bit Linux/x86_64 systems:
+- if [ z$XOK = z0 ]; then
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- XLIB="-L/usr/X11R6/lib64 -lX11"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- if [ 1 = `./_test_x11` ]; then
+- XOK=1
+- fi
+- fi
+- fi
+- rm -f _test_x11 _test_x11.o
+-
+- if [ z$XOK = z0 ]; then
+- XINCLUDE=""
+- $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
+-
+- # -lsocket for Solaris
+- XLIB="-lX11 -lsocket"
+- $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
+-
+- if [ -x _test_x11 ]; then
+- if [ 1 = `./_test_x11` ]; then
+- XOK=1
+- fi
+- fi
+- rm -f _test_x11 _test_x11.o
+- fi
+-
+- if [ z$XOK = z0 ]; then
+- echo "Failed to compile X11 test program." \
+- "Configuring without X11."
+- else
+ printf " headers: $XINCLUDE\n"
+ printf " libraries: $XLIB\n"
+ echo "XINCLUDE=$XINCLUDE" >> _Makefile.header
+ echo "XLIB=$XLIB" >> _Makefile.header
+ printf "#define WITH_X11\n" >> config.h
+- fi
+
+- rm -f _test_x11.c
+ fi
+
+
+@@ -549,8 +398,8 @@
+ rm -f _testprog
+ $CC $CFLAGS -O3 _testprog.c -o _testprog 2> /dev/null
+ if [ -x _testprog ]; then
+- CFLAGS="-O3 $CFLAGS"
+- printf "yes, -O3\n"
++ CFLAGS="-O0 $CFLAGS"
++ printf "yes, -O0\n"
+ else
+ CFLAGS="-O $CFLAGS"
+ printf "yes, -O\n"
+@@ -843,83 +692,17 @@
+
+ # Check for PRIx64 in inttypes.h:
+ printf "checking for PRIx64 in inttypes.h... "
+-printf "#include <inttypes.h>\nint main(int argc, char *argv[])\n
+-{\n#ifdef PRIx64\nreturn 0;\n#else\nreturn 1;\n#endif\n}\n" > _testpri.c
+-$CC $CFLAGS _testpri.c -o _testpri 2> /dev/null
+-if [ ! -x _testpri ]; then
+- printf "\nERROR! COULD NOT COMPILE PRIx64 TEST PROGRAM AT ALL!\n"
+- exit
+-else
+- if ./_testpri; then
+- printf "yes\n"
+- else
+- $CC $CFLAGS -D__STDC_FORMAT_MACROS _testpri.c -o _testpri 2> /dev/null
+- if [ -x _testpri ]; then
+- printf "using __STDC_FORMAT_MACROS\n"
+- CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS"
+- else
+- printf "no, using an ugly hack instead, "
+- printf "#define NO_C99_PRINTF_DEFINES\n" >> config.h
+-
+- # Try llx first:
+- printf "#include <stdio.h>\n#include <inttypes.h>\nint main(int argc, char *argv[]){
+- printf(\"%%llx\\\n\", (int64_t)128);return 0;}\n" > _testpri.c
+- rm -f _testpri
+- $CC $CFLAGS $CWARNINGS _testpri.c -o _testpri 2> /dev/null
+- if [ z`./_testpri` = z80 ]; then
+- printf "PRIx64=llx\n"
+- printf "#define NO_C99_64BIT_LONGLONG\n" >> config.h
+- else
+- # Try lx too:
+- printf "#include <stdio.h>\n#include <inttypes.h>\nint main(int argc, char *argv[]){
+- printf(\"%%lx\\\n\", (int64_t)128);return 0;}\n" > _testpri.c
+- rm -f _testpri
+- $CC $CFLAGS $CWARNINGS _testpri.c -o _testpri 2> _testpri.result
+- if [ z`./_testpri` = z80 ]; then
+- printf "PRIx64=lx\n"
+- else
+- printf "\nFailed, neither lx nor llx worked!\n"
+- exit
+- fi
+- fi
+- fi
+- fi
+-fi
+-rm -f _testpri.c _testpri _testpri.result
+
++printf "using __STDC_FORMAT_MACROS\n"
++CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS"
+
+ # Check for 64-bit off_t:
+ printf "checking for 64-bit off_t... "
+-printf "#include <stdio.h>\n#include <inttypes.h>\n#include <sys/types.h>\n
+-int main(int argc, char *argv[]){printf(\"%%i\\\n\",
+- (int)sizeof(off_t));return 0;}\n" > _testoff.c
+-$CC $CFLAGS _testoff.c -o _testoff 2> /dev/null
+-if [ ! -x _testoff ]; then
+- printf "\nWARNING! COULD NOT COMPILE off_t TEST PROGRAM AT ALL!\n"
+-else
+- if [ z`./_testoff` = z8 ]; then
+- printf "yes\n"
+- else
+- $CC $CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+- _testoff.c -o _testoff 2> /dev/null
+- if [ ! -x _testoff ]; then
+- printf "\nWARNING! COULD NOT COMPILE off_t TEST "
+- printf "PROGRAM!\n"
+- else
+- if [ z`./_testoff` = z8 ]; then
+- CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
+- CFLAGS="-D_LARGEFILE_SOURCE $CFLAGS"
+- printf "using -D_FILE_OFFSET_BITS=64"
+- printf " -D_LARGEFILE_SOURCE\n"
+- else
+- printf "NO\n"
+- printf "Warning! No 64-bit off_t. Continuing "
+- printf "anyway.\n"
+- fi
+- fi
+- fi
+-fi
+-rm -f _testoff.c _testoff
++
++CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
++CFLAGS="-D_LARGEFILE_SOURCE $CFLAGS"
++printf "using -D_FILE_OFFSET_BITS=64"
++printf " -D_LARGEFILE_SOURCE\n"
+
+
+ # Check for u_int8_t etc:
+@@ -1004,7 +787,7 @@
+ if (*p) printf("little\\\n"); else printf("big\\\n"); }
+ ' > _test_end.c
+ $CC $CFLAGS _test_end.c -o _test_end 2> /dev/null
+-X=`./_test_end`
++X=little
+ echo $X
+ if [ z$X = zlittle ]; then
+ printf "#define HOST_LITTLE_ENDIAN\n" >> config.h
+diff -ru gxemul-0.7.0.orig/src/cpus/Makefile.skel gxemul-0.7.0/src/cpus/Makefile.skel
+--- gxemul-0.7.0.orig/src/cpus/Makefile.skel 2021-04-22 18:04:18.000000000 +0000
++++ gxemul-0.7.0/src/cpus/Makefile.skel 2022-10-18 17:51:18.073318900 +0000
+@@ -21,184 +21,50 @@
+
+ ###############################################################################
+
+-cpu_alpha.o: cpu_alpha.c cpu_alpha_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_alpha_head.c tmp_alpha_tail.c
++cpu_alpha.o: cpu_alpha.c cpu_alpha_instr.c cpu_dyntrans.c memory_rw.c
+
+-cpu_alpha_instr.c: cpu_alpha_instr_alu.c tmp_alpha_misc.c
+-
+-tmp_alpha_misc.c: cpu_alpha_instr_loadstore.c generate_alpha_misc
+- ./generate_alpha_misc > tmp_alpha_misc.c
+-
+-tmp_alpha_head.c: generate_head
+- ./generate_head alpha Alpha > tmp_alpha_head.c
+-
+-tmp_alpha_tail.c: generate_tail
+- ./generate_tail alpha Alpha > tmp_alpha_tail.c
++cpu_alpha_instr.c: cpu_alpha_instr_alu.c
+
+
+ ###############################################################################
+
+-cpu_arm.o: cpu_arm.c cpu_arm_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_arm_head.c tmp_arm_tail.c
++cpu_arm.o: cpu_arm.c cpu_arm_instr.c cpu_dyntrans.c memory_rw.c
+
+ cpu_arm_instr.c: cpu_arm_instr_misc.c
+
+-tmp_arm_loadstore.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore > tmp_arm_loadstore.c
+-tmp_arm_loadstore_p0_u0_w0.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 0 0 0 > tmp_arm_loadstore_p0_u0_w0.c
+-tmp_arm_loadstore_p0_u0_w1.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 0 0 1 > tmp_arm_loadstore_p0_u0_w1.c
+-tmp_arm_loadstore_p0_u1_w0.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 0 1 0 > tmp_arm_loadstore_p0_u1_w0.c
+-tmp_arm_loadstore_p0_u1_w1.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 0 1 1 > tmp_arm_loadstore_p0_u1_w1.c
+-tmp_arm_loadstore_p1_u0_w0.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 1 0 0 > tmp_arm_loadstore_p1_u0_w0.c
+-tmp_arm_loadstore_p1_u0_w1.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 1 0 1 > tmp_arm_loadstore_p1_u0_w1.c
+-tmp_arm_loadstore_p1_u1_w0.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 1 1 0 > tmp_arm_loadstore_p1_u1_w0.c
+-tmp_arm_loadstore_p1_u1_w1.c: cpu_arm_instr_loadstore.c generate_arm_loadstore
+- ./generate_arm_loadstore 1 1 1 > tmp_arm_loadstore_p1_u1_w1.c
+-
+-tmp_arm_multi.c: generate_arm_multi cpu_arm_multi.txt
+- ./generate_arm_multi `cat cpu_arm_multi.txt` > tmp_arm_multi.c
+-
+-tmp_arm_dpi.c: cpu_arm_instr_dpi.c generate_arm_dpi
+- ./generate_arm_dpi > tmp_arm_dpi.c
+-
+-tmp_arm_r0.c: generate_arm_r
+- ./generate_arm_r 0x000 0x0ff > tmp_arm_r0.c
+-tmp_arm_r1.c: generate_arm_r
+- ./generate_arm_r 0x100 0x1ff > tmp_arm_r1.c
+-tmp_arm_r2.c: generate_arm_r
+- ./generate_arm_r 0x200 0x2ff > tmp_arm_r2.c
+-tmp_arm_r3.c: generate_arm_r
+- ./generate_arm_r 0x300 0x3ff > tmp_arm_r3.c
+-tmp_arm_r4.c: generate_arm_r
+- ./generate_arm_r 0x400 0x4ff > tmp_arm_r4.c
+-tmp_arm_r5.c: generate_arm_r
+- ./generate_arm_r 0x500 0x5ff > tmp_arm_r5.c
+-tmp_arm_r6.c: generate_arm_r
+- ./generate_arm_r 0x600 0x6ff > tmp_arm_r6.c
+-tmp_arm_r7.c: generate_arm_r
+- ./generate_arm_r 0x700 0x7ff > tmp_arm_r7.c
+-tmp_arm_r8.c: generate_arm_r
+- ./generate_arm_r 0x800 0x8ff > tmp_arm_r8.c
+-tmp_arm_r9.c: generate_arm_r
+- ./generate_arm_r 0x900 0x9ff > tmp_arm_r9.c
+-tmp_arm_ra.c: generate_arm_r
+- ./generate_arm_r 0xa00 0xaff > tmp_arm_ra.c
+-tmp_arm_rb.c: generate_arm_r
+- ./generate_arm_r 0xb00 0xbff > tmp_arm_rb.c
+-tmp_arm_rc.c: generate_arm_r
+- ./generate_arm_r 0xc00 0xcff > tmp_arm_rc.c
+-tmp_arm_rd.c: generate_arm_r
+- ./generate_arm_r 0xd00 0xdff > tmp_arm_rd.c
+-tmp_arm_re.c: generate_arm_r
+- ./generate_arm_r 0xe00 0xeff > tmp_arm_re.c
+-tmp_arm_rf.c: generate_arm_r
+- ./generate_arm_r 0xf00 0xfff > tmp_arm_rf.c
+-
+-tmp_arm_r.c: generate_arm_r
+- ./generate_arm_r 0 0 > tmp_arm_r.c
+-
+-tmp_arm_head.c: generate_head
+- ./generate_head arm ARM > tmp_arm_head.c
+-
+-tmp_arm_tail.c: generate_tail
+- ./generate_tail arm ARM > tmp_arm_tail.c
+-
+-
+-###############################################################################
+-
+-cpu_i960.o: cpu_i960.c cpu_i960_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_i960_head.c tmp_i960_tail.c
+-
+-tmp_i960_head.c: generate_head
+- ./generate_head i960 I960 > tmp_i960_head.c
+-
+-tmp_i960_tail.c: generate_tail
+- ./generate_tail i960 I960 > tmp_i960_tail.c
+-
+-
+-###############################################################################
+-
+-cpu_m88k.o: cpu_m88k.c cpu_m88k_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_m88k_loadstore.c tmp_m88k_head.c tmp_m88k_tail.c tmp_m88k_bcnd.c
+-
+-tmp_m88k_bcnd.c: generate_m88k_bcnd
+- ./generate_m88k_bcnd > tmp_m88k_bcnd.c
+
+-tmp_m88k_loadstore.c: cpu_m88k_instr_loadstore.c generate_m88k_loadstore
+- ./generate_m88k_loadstore > tmp_m88k_loadstore.c
+-
+-tmp_m88k_head.c: generate_head
+- ./generate_head m88k M88K > tmp_m88k_head.c
++###############################################################################
+
+-tmp_m88k_tail.c: generate_tail
+- ./generate_tail m88k M88K > tmp_m88k_tail.c
++cpu_i960.o: cpu_i960.c cpu_i960_instr.c cpu_dyntrans.c memory_rw.c
+
+
+ ###############################################################################
+
+-cpu_mips.o: cpu_mips.c cpu_dyntrans.c memory_mips.c \
+- cpu_mips_instr.c tmp_mips_loadstore.c tmp_mips_loadstore_multi.c \
+- tmp_mips_head.c tmp_mips_tail.c
+-
+-memory_mips.c: memory_rw.c memory_mips_v2p.c
++cpu_m88k.o: cpu_m88k.c cpu_m88k_instr.c cpu_dyntrans.c memory_rw.c
+
+-tmp_mips_loadstore.c: cpu_mips_instr_loadstore.c generate_mips_loadstore
+- ./generate_mips_loadstore > tmp_mips_loadstore.c
+
+-tmp_mips_loadstore_multi.c: generate_mips_loadstore_multi
+- ./generate_mips_loadstore_multi > tmp_mips_loadstore_multi.c
++###############################################################################
+
+-tmp_mips_head.c: generate_head
+- ./generate_head mips MIPS > tmp_mips_head.c
++cpu_mips.o: cpu_mips.c cpu_dyntrans.c memory_mips.c \
++ cpu_mips_instr.c
+
+-tmp_mips_tail.c: generate_tail
+- ./generate_tail mips MIPS > tmp_mips_tail.c
++memory_mips.c: memory_rw.c memory_mips_v2p.c
+
+
+ ###############################################################################
+
+ cpu_ppc.o: cpu_ppc.c cpu_ppc_instr.c cpu_dyntrans.c memory_ppc.c \
+- memory_rw.c tmp_ppc_head.c tmp_ppc_tail.c tmp_ppc_loadstore.c
+-
+-tmp_ppc_loadstore.c: cpu_ppc_instr_loadstore.c generate_ppc_loadstore
+- ./generate_ppc_loadstore > tmp_ppc_loadstore.c
+-
+-tmp_ppc_head.c: generate_head
+- ./generate_head ppc PPC > tmp_ppc_head.c
+-
+-tmp_ppc_tail.c: generate_tail
+- ./generate_tail ppc PPC > tmp_ppc_tail.c
++ memory_rw.c
+
+
+ ###############################################################################
+
+-cpu_riscv.o: cpu_riscv.c cpu_riscv_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_riscv_head.c tmp_riscv_tail.c
+-
+-tmp_riscv_head.c: generate_head
+- ./generate_head riscv RISCV > tmp_riscv_head.c
+-
+-tmp_riscv_tail.c: generate_tail
+- ./generate_tail riscv RISCV > tmp_riscv_tail.c
++cpu_riscv.o: cpu_riscv.c cpu_riscv_instr.c cpu_dyntrans.c memory_rw.c
+
+
+ ###############################################################################
+
+-cpu_sh.o: cpu_sh.c cpu_sh_instr.c cpu_dyntrans.c memory_rw.c \
+- tmp_sh_head.c tmp_sh_tail.c
+-
+-tmp_sh_head.c: generate_head
+- ./generate_head sh SH > tmp_sh_head.c
+-
+-tmp_sh_tail.c: generate_tail
+- ./generate_tail sh SH > tmp_sh_tail.c
++cpu_sh.o: cpu_sh.c cpu_sh_instr.c cpu_dyntrans.c memory_rw.c
+
+
+ ###############################################################################
+diff -ru gxemul-0.7.0.orig/src/devices/fonts/Makefile.skel gxemul-0.7.0/src/devices/fonts/Makefile.skel
+--- gxemul-0.7.0.orig/src/devices/fonts/Makefile.skel 2021-04-22 18:04:20.000000000 +0000
++++ gxemul-0.7.0/src/devices/fonts/Makefile.skel 2022-10-18 18:14:35.825867300 +0000
+@@ -1,13 +1,13 @@
+ all: font8x8.c font8x10.c font8x16.c
+
+ font8x8.c: Xconv_raw_to_c
+- ./Xconv_raw_to_c vt220l.808 font8x8 > font8x8.c
++ @echo foo.
+
+ font8x10.c: Xconv_raw_to_c
+- ./Xconv_raw_to_c vt220l.810 font8x10 > font8x10.c
++ @echo foo.
+
+ font8x16.c: Xconv_raw_to_c
+- ./Xconv_raw_to_c vt220l.816 font8x16 > font8x16.c
++ @echo foo.
+
+ clean:
+ rm -f Xconv_raw_to_c font8x16.c font8x8.c font8x10.c
+diff -ru gxemul-0.7.0.orig/src/include/Makefile.skel gxemul-0.7.0/src/include/Makefile.skel
+--- gxemul-0.7.0.orig/src/include/Makefile.skel 2021-04-22 18:04:15.000000000 +0000
++++ gxemul-0.7.0/src/include/Makefile.skel 2022-10-18 17:19:09.499745700 +0000
+@@ -5,7 +5,7 @@
+ all: ppc_spr_strings.h
+
+ ppc_spr_strings.h: make_ppc_spr_strings
+- grep '#define.SPR_' thirdparty/ppc_spr.h |cut -d _ -f 2- | ./make_ppc_spr_strings > ppc_spr_strings.h
++ @echo foo.
+
+ clean:
+ rm -f *core ppc_spr_strings.h make_ppc_spr_strings
diff --git a/patches/gxemul/generated.patch b/patches/gxemul/generated.patch
new file mode 100644
index 00000000..1b457106
--- /dev/null
+++ b/patches/gxemul/generated.patch
@@ -0,0 +1,123136 @@
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_alpha_head.c gxemul-0.7.0/src/cpus/tmp_alpha_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_alpha_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_alpha_head.c 2022-10-18 16:37:22.074736200 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES ALPHA_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH alpha
++#define DYNTRANS_ALPHA
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N ALPHA_L2N
++#define DYNTRANS_L3N ALPHA_L3N
++#if !defined(ALPHA_L2N) || !defined(ALPHA_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE alpha_l2_64_table
++#define DYNTRANS_L3_64_TABLE alpha_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC alpha_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE ALPHA_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT ALPHA_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE alpha_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY alpha_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR ALPHA_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY ALPHA_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE alpha_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE alpha_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS alpha_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC alpha_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS alpha_combine_instructions
++#define DISASSEMBLE alpha_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_alpha_instr.c */
++#define instr(n) alpha_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) alpha32_instr_ ## n
++
++#endif
++
++
++#define X(n) void alpha_instr_ ## n(struct cpu *cpu, \
++ struct alpha_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.alpha.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct alpha_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_alpha_misc.c gxemul-0.7.0/src/cpus/tmp_alpha_misc.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_alpha_misc.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_alpha_misc.c 2022-10-18 16:37:22.075737100 +0000
+@@ -0,0 +1,4119 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#define ALU_N alpha_instr_addl
++#define ALU_LONG
++#define ALU_ADD
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_N
++#define ALU_N alpha_instr_subl
++#define ALU_LONG
++#define ALU_SUB
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_N
++#define ALU_N alpha_instr_s4addl
++#define ALU_LONG
++#define ALU_ADD
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s4subl
++#define ALU_LONG
++#define ALU_SUB
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s8addl
++#define ALU_LONG
++#define ALU_ADD
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_s8subl
++#define ALU_LONG
++#define ALU_SUB
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_addq
++#define ALU_ADD
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_ADD
++#undef ALU_N
++#define ALU_N alpha_instr_subq
++#define ALU_SUB
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SUB
++#undef ALU_N
++#define ALU_N alpha_instr_s4addq
++#define ALU_ADD
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_ADD
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s4subq
++#define ALU_SUB
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SUB
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s8addq
++#define ALU_ADD
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_ADD
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_s8subq
++#define ALU_SUB
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SUB
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_addl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_ADD
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_N
++#define ALU_N alpha_instr_subl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_SUB
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_N
++#define ALU_N alpha_instr_s4addl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_ADD
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s4subl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_SUB
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s8addl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_ADD
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_ADD
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_s8subl_imm
++#define ALU_IMM
++#define ALU_LONG
++#define ALU_SUB
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_LONG
++#undef ALU_SUB
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_addq_imm
++#define ALU_IMM
++#define ALU_ADD
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_ADD
++#undef ALU_N
++#define ALU_N alpha_instr_subq_imm
++#define ALU_IMM
++#define ALU_SUB
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SUB
++#undef ALU_N
++#define ALU_N alpha_instr_s4addq_imm
++#define ALU_IMM
++#define ALU_ADD
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_ADD
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s4subq_imm
++#define ALU_IMM
++#define ALU_SUB
++#define ALU_S4
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SUB
++#undef ALU_S4
++#undef ALU_N
++#define ALU_N alpha_instr_s8addq_imm
++#define ALU_IMM
++#define ALU_ADD
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_ADD
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_s8subq_imm
++#define ALU_IMM
++#define ALU_SUB
++#define ALU_S8
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SUB
++#undef ALU_S8
++#undef ALU_N
++#define ALU_N alpha_instr_and
++#define ALU_AND
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_AND
++#undef ALU_N
++#define ALU_N alpha_instr_or
++#define ALU_OR
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_OR
++#undef ALU_N
++#define ALU_N alpha_instr_xor
++#define ALU_XOR
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_XOR
++#undef ALU_N
++#define ALU_N alpha_instr_zap
++#define ALU_ZAP
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_ZAP
++#undef ALU_N
++#define ALU_N alpha_instr_sll
++#define ALU_SLL
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SLL
++#undef ALU_N
++#define ALU_N alpha_instr_srl
++#define ALU_SRL
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SRL
++#undef ALU_N
++#define ALU_N alpha_instr_sra
++#define ALU_SRA
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_SRA
++#undef ALU_N
++#define ALU_N alpha_instr_andnot
++#define ALU_AND
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_NOT
++#undef ALU_AND
++#undef ALU_N
++#define ALU_N alpha_instr_ornot
++#define ALU_OR
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_NOT
++#undef ALU_OR
++#undef ALU_N
++#define ALU_N alpha_instr_xornot
++#define ALU_XOR
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_NOT
++#undef ALU_XOR
++#undef ALU_N
++#define ALU_N alpha_instr_zapnot
++#define ALU_ZAP
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_NOT
++#undef ALU_ZAP
++#undef ALU_N
++#define ALU_N alpha_instr_and_imm
++#define ALU_IMM
++#define ALU_AND
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_AND
++#undef ALU_N
++#define ALU_N alpha_instr_or_imm
++#define ALU_IMM
++#define ALU_OR
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_OR
++#undef ALU_N
++#define ALU_N alpha_instr_xor_imm
++#define ALU_IMM
++#define ALU_XOR
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_XOR
++#undef ALU_N
++#define ALU_N alpha_instr_zap_imm
++#define ALU_IMM
++#define ALU_ZAP
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_ZAP
++#undef ALU_N
++#define ALU_N alpha_instr_sll_imm
++#define ALU_IMM
++#define ALU_SLL
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SLL
++#undef ALU_N
++#define ALU_N alpha_instr_srl_imm
++#define ALU_IMM
++#define ALU_SRL
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SRL
++#undef ALU_N
++#define ALU_N alpha_instr_sra_imm
++#define ALU_IMM
++#define ALU_SRA
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_SRA
++#undef ALU_N
++#define ALU_N alpha_instr_andnot_imm
++#define ALU_IMM
++#define ALU_AND
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_NOT
++#undef ALU_AND
++#undef ALU_N
++#define ALU_N alpha_instr_ornot_imm
++#define ALU_IMM
++#define ALU_OR
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_NOT
++#undef ALU_OR
++#undef ALU_N
++#define ALU_N alpha_instr_xornot_imm
++#define ALU_IMM
++#define ALU_XOR
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_NOT
++#undef ALU_XOR
++#undef ALU_N
++#define ALU_N alpha_instr_zapnot_imm
++#define ALU_IMM
++#define ALU_ZAP
++#define ALU_NOT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_NOT
++#undef ALU_ZAP
++#undef ALU_N
++#define ALU_CMP
++#define ALU_N alpha_instr_cmpult
++#define ALU_UNSIGNED
++#define ALU_CMP_LT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_UNSIGNED
++#undef ALU_CMP_LT
++#undef ALU_N
++#define ALU_N alpha_instr_cmpeq
++#define ALU_CMP_EQ
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_EQ
++#undef ALU_N
++#define ALU_N alpha_instr_cmpule
++#define ALU_UNSIGNED
++#define ALU_CMP_LE
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_UNSIGNED
++#undef ALU_CMP_LE
++#undef ALU_N
++#define ALU_N alpha_instr_cmplt
++#define ALU_CMP_LT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_LT
++#undef ALU_N
++#define ALU_N alpha_instr_cmple
++#define ALU_CMP_LE
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_LE
++#undef ALU_N
++#define ALU_N alpha_instr_cmpult_imm
++#define ALU_IMM
++#define ALU_UNSIGNED
++#define ALU_CMP_LT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_UNSIGNED
++#undef ALU_CMP_LT
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmpeq_imm
++#define ALU_IMM
++#define ALU_CMP_EQ
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_EQ
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmpule_imm
++#define ALU_IMM
++#define ALU_UNSIGNED
++#define ALU_CMP_LE
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_UNSIGNED
++#undef ALU_CMP_LE
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmplt_imm
++#define ALU_IMM
++#define ALU_CMP_LT
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_LT
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmple_imm
++#define ALU_IMM
++#define ALU_CMP_LE
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMP_LE
++#undef ALU_IMM
++#undef ALU_N
++#undef ALU_CMP
++#define ALU_CMOV
++#define ALU_N alpha_instr_cmovlbs
++#define ALU_CMOV_lbs
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lbs
++#undef ALU_N
++#define ALU_N alpha_instr_cmovlbc
++#define ALU_CMOV_lbc
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lbc
++#undef ALU_N
++#define ALU_N alpha_instr_cmoveq
++#define ALU_CMOV_eq
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_eq
++#undef ALU_N
++#define ALU_N alpha_instr_cmovne
++#define ALU_CMOV_ne
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_ne
++#undef ALU_N
++#define ALU_N alpha_instr_cmovlt
++#define ALU_CMOV_lt
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lt
++#undef ALU_N
++#define ALU_N alpha_instr_cmovge
++#define ALU_CMOV_ge
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_ge
++#undef ALU_N
++#define ALU_N alpha_instr_cmovle
++#define ALU_CMOV_le
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_le
++#undef ALU_N
++#define ALU_N alpha_instr_cmovgt
++#define ALU_CMOV_gt
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_gt
++#undef ALU_N
++#define ALU_N alpha_instr_cmovlbs_imm
++#define ALU_IMM
++#define ALU_CMOV_lbs
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lbs
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovlbc_imm
++#define ALU_IMM
++#define ALU_CMOV_lbc
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lbc
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmoveq_imm
++#define ALU_IMM
++#define ALU_CMOV_eq
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_eq
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovne_imm
++#define ALU_IMM
++#define ALU_CMOV_ne
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_ne
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovlt_imm
++#define ALU_IMM
++#define ALU_CMOV_lt
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_lt
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovge_imm
++#define ALU_IMM
++#define ALU_CMOV_ge
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_ge
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovle_imm
++#define ALU_IMM
++#define ALU_CMOV_le
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_le
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_N alpha_instr_cmovgt_imm
++#define ALU_IMM
++#define ALU_CMOV_gt
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_CMOV_gt
++#undef ALU_IMM
++#undef ALU_N
++#undef ALU_CMOV
++#define ALU_CMPBGE
++#define ALU_N alpha_instr_cmpbge
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_N
++#define ALU_N alpha_instr_cmpbge_imm
++#define ALU_IMM
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_IMM
++#undef ALU_N
++#undef ALU_CMPBGE
++#define ALU_MSK
++#define ALU_N alpha_instr_mskwh
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_MSK
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_msklh
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_MSK
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskqh
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_MSK
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extwh
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_EXT
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extlh
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_EXT
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extqh
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_EXT
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inswh
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_INS
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inslh
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_INS
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insqh
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_INS
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskbl
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskwl
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskll
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskql
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extbl
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extwl
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extll
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extql
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insbl
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inswl
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insll
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insql
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskwh_imm
++#define ALU_IMM
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_MSK
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_msklh_imm
++#define ALU_IMM
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_MSK
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskqh_imm
++#define ALU_IMM
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_MSK
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extwh_imm
++#define ALU_IMM
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_EXT
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extlh_imm
++#define ALU_IMM
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_EXT
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extqh_imm
++#define ALU_IMM
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_EXT
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inswh_imm
++#define ALU_IMM
++#define ALU_W
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_INS
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inslh_imm
++#define ALU_IMM
++#define ALU_L
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_INS
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insqh_imm
++#define ALU_IMM
++#define ALU_Q
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_INS
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskbl_imm
++#define ALU_IMM
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskwl_imm
++#define ALU_IMM
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskll_imm
++#define ALU_IMM
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_MSK
++#define ALU_N alpha_instr_mskql_imm
++#define ALU_IMM
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_MSK
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extbl_imm
++#define ALU_IMM
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extwl_imm
++#define ALU_IMM
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extll_imm
++#define ALU_IMM
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_EXT
++#define ALU_N alpha_instr_extql_imm
++#define ALU_IMM
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_EXT
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insbl_imm
++#define ALU_IMM
++#define ALU_B
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_B
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_inswl_imm
++#define ALU_IMM
++#define ALU_W
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_W
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insll_imm
++#define ALU_IMM
++#define ALU_L
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_L
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define ALU_INS
++#define ALU_N alpha_instr_insql_imm
++#define ALU_IMM
++#define ALU_Q
++#define ALU_LO
++#include "cpu_alpha_instr_alu.c"
++#undef ALU_Q
++#undef ALU_INS
++#undef ALU_LO
++#undef ALU_IMM
++#undef ALU_N
++#define LS_B
++#define LS_GENERIC_N alpha_generic_stb
++#define LS_N alpha_instr_stb
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#define LS_W
++#define LS_GENERIC_N alpha_generic_stw
++#define LS_N alpha_instr_stw
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#define LS_L
++#define LS_GENERIC_N alpha_generic_stl
++#define LS_N alpha_instr_stl
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_stq
++#define LS_N alpha_instr_stq
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#define LS_IGNORE_OFFSET
++#define LS_B
++#define LS_GENERIC_N alpha_generic_stb
++#define LS_N alpha_instr_stb_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_W
++#define LS_GENERIC_N alpha_generic_stw
++#define LS_N alpha_instr_stw_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_L
++#define LS_GENERIC_N alpha_generic_stl
++#define LS_N alpha_instr_stl_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_stq
++#define LS_N alpha_instr_stq_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_B
++#define LS_GENERIC_N alpha_generic_ldb
++#define LS_N alpha_instr_ldb
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_W
++#define LS_GENERIC_N alpha_generic_ldw
++#define LS_N alpha_instr_ldw
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_L
++#define LS_GENERIC_N alpha_generic_ldl
++#define LS_N alpha_instr_ldl
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_ldq
++#define LS_N alpha_instr_ldq
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LOAD
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_B
++#define LS_GENERIC_N alpha_generic_ldb
++#define LS_N alpha_instr_ldb_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_LOAD
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_W
++#define LS_GENERIC_N alpha_generic_ldw
++#define LS_N alpha_instr_ldw_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_LOAD
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_L
++#define LS_GENERIC_N alpha_generic_ldl
++#define LS_N alpha_instr_ldl_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LOAD
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_ldq
++#define LS_N alpha_instr_ldq_0
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LOAD
++#undef LS_IGNORE_OFFSET
++#define LS_LLSC
++#define LS_L
++#define LS_GENERIC_N alpha_generic_stl_llsc
++#define LS_N alpha_instr_stl_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LLSC
++#define LS_LLSC
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_stq_llsc
++#define LS_N alpha_instr_stq_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LLSC
++#define LS_IGNORE_OFFSET
++#define LS_LLSC
++#define LS_L
++#define LS_GENERIC_N alpha_generic_stl_llsc
++#define LS_N alpha_instr_stl_0_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LLSC
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_LLSC
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_stq_llsc
++#define LS_N alpha_instr_stq_0_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LLSC
++#undef LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_LLSC
++#define LS_L
++#define LS_GENERIC_N alpha_generic_ldl_llsc
++#define LS_N alpha_instr_ldl_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LOAD
++#undef LS_LLSC
++#define LS_LOAD
++#define LS_LLSC
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_ldq_llsc
++#define LS_N alpha_instr_ldq_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LOAD
++#undef LS_LLSC
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_LLSC
++#define LS_L
++#define LS_GENERIC_N alpha_generic_ldl_llsc
++#define LS_N alpha_instr_ldl_0_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_L
++#undef LS_LOAD
++#undef LS_LLSC
++#undef LS_IGNORE_OFFSET
++#define LS_IGNORE_OFFSET
++#define LS_LOAD
++#define LS_LLSC
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_ldq_llsc
++#define LS_N alpha_instr_ldq_0_llsc
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LOAD
++#undef LS_LLSC
++#undef LS_IGNORE_OFFSET
++#define LS_UNALIGNED
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_stq_u
++#define LS_N alpha_instr_stq_u
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#define LS_LOAD
++#define LS_Q
++#define LS_GENERIC_N alpha_generic_ldq_u
++#define LS_N alpha_instr_ldq_u
++#include "cpu_alpha_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_Q
++#undef LS_LOAD
++#undef LS_UNALIGNED
++
++
++void (*alpha_loadstore[32])(struct cpu *, struct alpha_instr_call *) = {
++ alpha_instr_stb,
++ alpha_instr_stw,
++ alpha_instr_stl,
++ alpha_instr_stq,
++ alpha_instr_stb_0,
++ alpha_instr_stw_0,
++ alpha_instr_stl_0,
++ alpha_instr_stq_0,
++ alpha_instr_ldb,
++ alpha_instr_ldw,
++ alpha_instr_ldl,
++ alpha_instr_ldq,
++ alpha_instr_ldb_0,
++ alpha_instr_ldw_0,
++ alpha_instr_ldl_0,
++ alpha_instr_ldq_0,
++ alpha_instr_nop,
++ alpha_instr_nop,
++ alpha_instr_stl_llsc,
++ alpha_instr_stq_llsc,
++ alpha_instr_nop,
++ alpha_instr_nop,
++ alpha_instr_stl_0_llsc,
++ alpha_instr_stq_0_llsc,
++ alpha_instr_nop,
++ alpha_instr_nop,
++ alpha_instr_ldl_llsc,
++ alpha_instr_ldq_llsc,
++ alpha_instr_nop,
++ alpha_instr_nop,
++ alpha_instr_ldl_0_llsc,
++ alpha_instr_ldq_0_llsc,
++};
++
++static void alpha_instr_mov_0_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_0_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[0]; }
++static void alpha_instr_mov_1_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_1_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[1]; }
++static void alpha_instr_mov_2_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_2_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[2]; }
++static void alpha_instr_mov_3_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_3_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[3]; }
++static void alpha_instr_mov_4_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_4_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[4]; }
++static void alpha_instr_mov_5_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_5_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[5]; }
++static void alpha_instr_mov_6_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_6_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[6]; }
++static void alpha_instr_mov_7_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_7_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[7]; }
++static void alpha_instr_mov_8_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_8_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[8]; }
++static void alpha_instr_mov_9_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_9_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[9]; }
++static void alpha_instr_mov_10_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_10_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[10]; }
++static void alpha_instr_mov_11_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_11_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[11]; }
++static void alpha_instr_mov_12_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_12_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[12]; }
++static void alpha_instr_mov_13_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_13_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[13]; }
++static void alpha_instr_mov_14_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_14_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[14]; }
++static void alpha_instr_mov_15_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_15_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[15]; }
++static void alpha_instr_mov_16_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_16_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[16]; }
++static void alpha_instr_mov_17_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_17_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[17]; }
++static void alpha_instr_mov_18_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_18_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[18]; }
++static void alpha_instr_mov_19_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_19_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[19]; }
++static void alpha_instr_mov_20_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_20_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[20]; }
++static void alpha_instr_mov_21_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_21_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[21]; }
++static void alpha_instr_mov_22_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_22_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[22]; }
++static void alpha_instr_mov_23_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_23_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[23]; }
++static void alpha_instr_mov_24_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_24_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[24]; }
++static void alpha_instr_mov_25_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_25_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[25]; }
++static void alpha_instr_mov_26_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_26_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[26]; }
++static void alpha_instr_mov_27_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_27_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[27]; }
++static void alpha_instr_mov_28_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_28_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[28]; }
++static void alpha_instr_mov_29_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_29_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = cpu->cd.alpha.r[29]; }
++static void alpha_instr_mov_30_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_30_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = cpu->cd.alpha.r[30]; }
++static void alpha_instr_mov_31_0(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[0] = 0; }
++static void alpha_instr_mov_31_1(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[1] = 0; }
++static void alpha_instr_mov_31_2(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[2] = 0; }
++static void alpha_instr_mov_31_3(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[3] = 0; }
++static void alpha_instr_mov_31_4(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[4] = 0; }
++static void alpha_instr_mov_31_5(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[5] = 0; }
++static void alpha_instr_mov_31_6(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[6] = 0; }
++static void alpha_instr_mov_31_7(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[7] = 0; }
++static void alpha_instr_mov_31_8(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[8] = 0; }
++static void alpha_instr_mov_31_9(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[9] = 0; }
++static void alpha_instr_mov_31_10(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[10] = 0; }
++static void alpha_instr_mov_31_11(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[11] = 0; }
++static void alpha_instr_mov_31_12(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[12] = 0; }
++static void alpha_instr_mov_31_13(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[13] = 0; }
++static void alpha_instr_mov_31_14(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[14] = 0; }
++static void alpha_instr_mov_31_15(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[15] = 0; }
++static void alpha_instr_mov_31_16(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[16] = 0; }
++static void alpha_instr_mov_31_17(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[17] = 0; }
++static void alpha_instr_mov_31_18(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[18] = 0; }
++static void alpha_instr_mov_31_19(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[19] = 0; }
++static void alpha_instr_mov_31_20(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[20] = 0; }
++static void alpha_instr_mov_31_21(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[21] = 0; }
++static void alpha_instr_mov_31_22(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[22] = 0; }
++static void alpha_instr_mov_31_23(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[23] = 0; }
++static void alpha_instr_mov_31_24(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[24] = 0; }
++static void alpha_instr_mov_31_25(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[25] = 0; }
++static void alpha_instr_mov_31_26(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[26] = 0; }
++static void alpha_instr_mov_31_27(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[27] = 0; }
++static void alpha_instr_mov_31_28(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[28] = 0; }
++static void alpha_instr_mov_31_29(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[29] = 0; }
++static void alpha_instr_mov_31_30(struct cpu *cpu, struct alpha_instr_call *ic)
++{ cpu->cd.alpha.r[30] = 0; }
++
++
++void (*alpha_mov_r_r[32*31])(struct cpu *, struct alpha_instr_call *) = {
++ alpha_instr_nop,
++ alpha_instr_mov_1_0,
++ alpha_instr_mov_2_0,
++ alpha_instr_mov_3_0,
++ alpha_instr_mov_4_0,
++ alpha_instr_mov_5_0,
++ alpha_instr_mov_6_0,
++ alpha_instr_mov_7_0,
++ alpha_instr_mov_8_0,
++ alpha_instr_mov_9_0,
++ alpha_instr_mov_10_0,
++ alpha_instr_mov_11_0,
++ alpha_instr_mov_12_0,
++ alpha_instr_mov_13_0,
++ alpha_instr_mov_14_0,
++ alpha_instr_mov_15_0,
++ alpha_instr_mov_16_0,
++ alpha_instr_mov_17_0,
++ alpha_instr_mov_18_0,
++ alpha_instr_mov_19_0,
++ alpha_instr_mov_20_0,
++ alpha_instr_mov_21_0,
++ alpha_instr_mov_22_0,
++ alpha_instr_mov_23_0,
++ alpha_instr_mov_24_0,
++ alpha_instr_mov_25_0,
++ alpha_instr_mov_26_0,
++ alpha_instr_mov_27_0,
++ alpha_instr_mov_28_0,
++ alpha_instr_mov_29_0,
++ alpha_instr_mov_30_0,
++ alpha_instr_mov_31_0,
++ alpha_instr_mov_0_1,
++ alpha_instr_nop,
++ alpha_instr_mov_2_1,
++ alpha_instr_mov_3_1,
++ alpha_instr_mov_4_1,
++ alpha_instr_mov_5_1,
++ alpha_instr_mov_6_1,
++ alpha_instr_mov_7_1,
++ alpha_instr_mov_8_1,
++ alpha_instr_mov_9_1,
++ alpha_instr_mov_10_1,
++ alpha_instr_mov_11_1,
++ alpha_instr_mov_12_1,
++ alpha_instr_mov_13_1,
++ alpha_instr_mov_14_1,
++ alpha_instr_mov_15_1,
++ alpha_instr_mov_16_1,
++ alpha_instr_mov_17_1,
++ alpha_instr_mov_18_1,
++ alpha_instr_mov_19_1,
++ alpha_instr_mov_20_1,
++ alpha_instr_mov_21_1,
++ alpha_instr_mov_22_1,
++ alpha_instr_mov_23_1,
++ alpha_instr_mov_24_1,
++ alpha_instr_mov_25_1,
++ alpha_instr_mov_26_1,
++ alpha_instr_mov_27_1,
++ alpha_instr_mov_28_1,
++ alpha_instr_mov_29_1,
++ alpha_instr_mov_30_1,
++ alpha_instr_mov_31_1,
++ alpha_instr_mov_0_2,
++ alpha_instr_mov_1_2,
++ alpha_instr_nop,
++ alpha_instr_mov_3_2,
++ alpha_instr_mov_4_2,
++ alpha_instr_mov_5_2,
++ alpha_instr_mov_6_2,
++ alpha_instr_mov_7_2,
++ alpha_instr_mov_8_2,
++ alpha_instr_mov_9_2,
++ alpha_instr_mov_10_2,
++ alpha_instr_mov_11_2,
++ alpha_instr_mov_12_2,
++ alpha_instr_mov_13_2,
++ alpha_instr_mov_14_2,
++ alpha_instr_mov_15_2,
++ alpha_instr_mov_16_2,
++ alpha_instr_mov_17_2,
++ alpha_instr_mov_18_2,
++ alpha_instr_mov_19_2,
++ alpha_instr_mov_20_2,
++ alpha_instr_mov_21_2,
++ alpha_instr_mov_22_2,
++ alpha_instr_mov_23_2,
++ alpha_instr_mov_24_2,
++ alpha_instr_mov_25_2,
++ alpha_instr_mov_26_2,
++ alpha_instr_mov_27_2,
++ alpha_instr_mov_28_2,
++ alpha_instr_mov_29_2,
++ alpha_instr_mov_30_2,
++ alpha_instr_mov_31_2,
++ alpha_instr_mov_0_3,
++ alpha_instr_mov_1_3,
++ alpha_instr_mov_2_3,
++ alpha_instr_nop,
++ alpha_instr_mov_4_3,
++ alpha_instr_mov_5_3,
++ alpha_instr_mov_6_3,
++ alpha_instr_mov_7_3,
++ alpha_instr_mov_8_3,
++ alpha_instr_mov_9_3,
++ alpha_instr_mov_10_3,
++ alpha_instr_mov_11_3,
++ alpha_instr_mov_12_3,
++ alpha_instr_mov_13_3,
++ alpha_instr_mov_14_3,
++ alpha_instr_mov_15_3,
++ alpha_instr_mov_16_3,
++ alpha_instr_mov_17_3,
++ alpha_instr_mov_18_3,
++ alpha_instr_mov_19_3,
++ alpha_instr_mov_20_3,
++ alpha_instr_mov_21_3,
++ alpha_instr_mov_22_3,
++ alpha_instr_mov_23_3,
++ alpha_instr_mov_24_3,
++ alpha_instr_mov_25_3,
++ alpha_instr_mov_26_3,
++ alpha_instr_mov_27_3,
++ alpha_instr_mov_28_3,
++ alpha_instr_mov_29_3,
++ alpha_instr_mov_30_3,
++ alpha_instr_mov_31_3,
++ alpha_instr_mov_0_4,
++ alpha_instr_mov_1_4,
++ alpha_instr_mov_2_4,
++ alpha_instr_mov_3_4,
++ alpha_instr_nop,
++ alpha_instr_mov_5_4,
++ alpha_instr_mov_6_4,
++ alpha_instr_mov_7_4,
++ alpha_instr_mov_8_4,
++ alpha_instr_mov_9_4,
++ alpha_instr_mov_10_4,
++ alpha_instr_mov_11_4,
++ alpha_instr_mov_12_4,
++ alpha_instr_mov_13_4,
++ alpha_instr_mov_14_4,
++ alpha_instr_mov_15_4,
++ alpha_instr_mov_16_4,
++ alpha_instr_mov_17_4,
++ alpha_instr_mov_18_4,
++ alpha_instr_mov_19_4,
++ alpha_instr_mov_20_4,
++ alpha_instr_mov_21_4,
++ alpha_instr_mov_22_4,
++ alpha_instr_mov_23_4,
++ alpha_instr_mov_24_4,
++ alpha_instr_mov_25_4,
++ alpha_instr_mov_26_4,
++ alpha_instr_mov_27_4,
++ alpha_instr_mov_28_4,
++ alpha_instr_mov_29_4,
++ alpha_instr_mov_30_4,
++ alpha_instr_mov_31_4,
++ alpha_instr_mov_0_5,
++ alpha_instr_mov_1_5,
++ alpha_instr_mov_2_5,
++ alpha_instr_mov_3_5,
++ alpha_instr_mov_4_5,
++ alpha_instr_nop,
++ alpha_instr_mov_6_5,
++ alpha_instr_mov_7_5,
++ alpha_instr_mov_8_5,
++ alpha_instr_mov_9_5,
++ alpha_instr_mov_10_5,
++ alpha_instr_mov_11_5,
++ alpha_instr_mov_12_5,
++ alpha_instr_mov_13_5,
++ alpha_instr_mov_14_5,
++ alpha_instr_mov_15_5,
++ alpha_instr_mov_16_5,
++ alpha_instr_mov_17_5,
++ alpha_instr_mov_18_5,
++ alpha_instr_mov_19_5,
++ alpha_instr_mov_20_5,
++ alpha_instr_mov_21_5,
++ alpha_instr_mov_22_5,
++ alpha_instr_mov_23_5,
++ alpha_instr_mov_24_5,
++ alpha_instr_mov_25_5,
++ alpha_instr_mov_26_5,
++ alpha_instr_mov_27_5,
++ alpha_instr_mov_28_5,
++ alpha_instr_mov_29_5,
++ alpha_instr_mov_30_5,
++ alpha_instr_mov_31_5,
++ alpha_instr_mov_0_6,
++ alpha_instr_mov_1_6,
++ alpha_instr_mov_2_6,
++ alpha_instr_mov_3_6,
++ alpha_instr_mov_4_6,
++ alpha_instr_mov_5_6,
++ alpha_instr_nop,
++ alpha_instr_mov_7_6,
++ alpha_instr_mov_8_6,
++ alpha_instr_mov_9_6,
++ alpha_instr_mov_10_6,
++ alpha_instr_mov_11_6,
++ alpha_instr_mov_12_6,
++ alpha_instr_mov_13_6,
++ alpha_instr_mov_14_6,
++ alpha_instr_mov_15_6,
++ alpha_instr_mov_16_6,
++ alpha_instr_mov_17_6,
++ alpha_instr_mov_18_6,
++ alpha_instr_mov_19_6,
++ alpha_instr_mov_20_6,
++ alpha_instr_mov_21_6,
++ alpha_instr_mov_22_6,
++ alpha_instr_mov_23_6,
++ alpha_instr_mov_24_6,
++ alpha_instr_mov_25_6,
++ alpha_instr_mov_26_6,
++ alpha_instr_mov_27_6,
++ alpha_instr_mov_28_6,
++ alpha_instr_mov_29_6,
++ alpha_instr_mov_30_6,
++ alpha_instr_mov_31_6,
++ alpha_instr_mov_0_7,
++ alpha_instr_mov_1_7,
++ alpha_instr_mov_2_7,
++ alpha_instr_mov_3_7,
++ alpha_instr_mov_4_7,
++ alpha_instr_mov_5_7,
++ alpha_instr_mov_6_7,
++ alpha_instr_nop,
++ alpha_instr_mov_8_7,
++ alpha_instr_mov_9_7,
++ alpha_instr_mov_10_7,
++ alpha_instr_mov_11_7,
++ alpha_instr_mov_12_7,
++ alpha_instr_mov_13_7,
++ alpha_instr_mov_14_7,
++ alpha_instr_mov_15_7,
++ alpha_instr_mov_16_7,
++ alpha_instr_mov_17_7,
++ alpha_instr_mov_18_7,
++ alpha_instr_mov_19_7,
++ alpha_instr_mov_20_7,
++ alpha_instr_mov_21_7,
++ alpha_instr_mov_22_7,
++ alpha_instr_mov_23_7,
++ alpha_instr_mov_24_7,
++ alpha_instr_mov_25_7,
++ alpha_instr_mov_26_7,
++ alpha_instr_mov_27_7,
++ alpha_instr_mov_28_7,
++ alpha_instr_mov_29_7,
++ alpha_instr_mov_30_7,
++ alpha_instr_mov_31_7,
++ alpha_instr_mov_0_8,
++ alpha_instr_mov_1_8,
++ alpha_instr_mov_2_8,
++ alpha_instr_mov_3_8,
++ alpha_instr_mov_4_8,
++ alpha_instr_mov_5_8,
++ alpha_instr_mov_6_8,
++ alpha_instr_mov_7_8,
++ alpha_instr_nop,
++ alpha_instr_mov_9_8,
++ alpha_instr_mov_10_8,
++ alpha_instr_mov_11_8,
++ alpha_instr_mov_12_8,
++ alpha_instr_mov_13_8,
++ alpha_instr_mov_14_8,
++ alpha_instr_mov_15_8,
++ alpha_instr_mov_16_8,
++ alpha_instr_mov_17_8,
++ alpha_instr_mov_18_8,
++ alpha_instr_mov_19_8,
++ alpha_instr_mov_20_8,
++ alpha_instr_mov_21_8,
++ alpha_instr_mov_22_8,
++ alpha_instr_mov_23_8,
++ alpha_instr_mov_24_8,
++ alpha_instr_mov_25_8,
++ alpha_instr_mov_26_8,
++ alpha_instr_mov_27_8,
++ alpha_instr_mov_28_8,
++ alpha_instr_mov_29_8,
++ alpha_instr_mov_30_8,
++ alpha_instr_mov_31_8,
++ alpha_instr_mov_0_9,
++ alpha_instr_mov_1_9,
++ alpha_instr_mov_2_9,
++ alpha_instr_mov_3_9,
++ alpha_instr_mov_4_9,
++ alpha_instr_mov_5_9,
++ alpha_instr_mov_6_9,
++ alpha_instr_mov_7_9,
++ alpha_instr_mov_8_9,
++ alpha_instr_nop,
++ alpha_instr_mov_10_9,
++ alpha_instr_mov_11_9,
++ alpha_instr_mov_12_9,
++ alpha_instr_mov_13_9,
++ alpha_instr_mov_14_9,
++ alpha_instr_mov_15_9,
++ alpha_instr_mov_16_9,
++ alpha_instr_mov_17_9,
++ alpha_instr_mov_18_9,
++ alpha_instr_mov_19_9,
++ alpha_instr_mov_20_9,
++ alpha_instr_mov_21_9,
++ alpha_instr_mov_22_9,
++ alpha_instr_mov_23_9,
++ alpha_instr_mov_24_9,
++ alpha_instr_mov_25_9,
++ alpha_instr_mov_26_9,
++ alpha_instr_mov_27_9,
++ alpha_instr_mov_28_9,
++ alpha_instr_mov_29_9,
++ alpha_instr_mov_30_9,
++ alpha_instr_mov_31_9,
++ alpha_instr_mov_0_10,
++ alpha_instr_mov_1_10,
++ alpha_instr_mov_2_10,
++ alpha_instr_mov_3_10,
++ alpha_instr_mov_4_10,
++ alpha_instr_mov_5_10,
++ alpha_instr_mov_6_10,
++ alpha_instr_mov_7_10,
++ alpha_instr_mov_8_10,
++ alpha_instr_mov_9_10,
++ alpha_instr_nop,
++ alpha_instr_mov_11_10,
++ alpha_instr_mov_12_10,
++ alpha_instr_mov_13_10,
++ alpha_instr_mov_14_10,
++ alpha_instr_mov_15_10,
++ alpha_instr_mov_16_10,
++ alpha_instr_mov_17_10,
++ alpha_instr_mov_18_10,
++ alpha_instr_mov_19_10,
++ alpha_instr_mov_20_10,
++ alpha_instr_mov_21_10,
++ alpha_instr_mov_22_10,
++ alpha_instr_mov_23_10,
++ alpha_instr_mov_24_10,
++ alpha_instr_mov_25_10,
++ alpha_instr_mov_26_10,
++ alpha_instr_mov_27_10,
++ alpha_instr_mov_28_10,
++ alpha_instr_mov_29_10,
++ alpha_instr_mov_30_10,
++ alpha_instr_mov_31_10,
++ alpha_instr_mov_0_11,
++ alpha_instr_mov_1_11,
++ alpha_instr_mov_2_11,
++ alpha_instr_mov_3_11,
++ alpha_instr_mov_4_11,
++ alpha_instr_mov_5_11,
++ alpha_instr_mov_6_11,
++ alpha_instr_mov_7_11,
++ alpha_instr_mov_8_11,
++ alpha_instr_mov_9_11,
++ alpha_instr_mov_10_11,
++ alpha_instr_nop,
++ alpha_instr_mov_12_11,
++ alpha_instr_mov_13_11,
++ alpha_instr_mov_14_11,
++ alpha_instr_mov_15_11,
++ alpha_instr_mov_16_11,
++ alpha_instr_mov_17_11,
++ alpha_instr_mov_18_11,
++ alpha_instr_mov_19_11,
++ alpha_instr_mov_20_11,
++ alpha_instr_mov_21_11,
++ alpha_instr_mov_22_11,
++ alpha_instr_mov_23_11,
++ alpha_instr_mov_24_11,
++ alpha_instr_mov_25_11,
++ alpha_instr_mov_26_11,
++ alpha_instr_mov_27_11,
++ alpha_instr_mov_28_11,
++ alpha_instr_mov_29_11,
++ alpha_instr_mov_30_11,
++ alpha_instr_mov_31_11,
++ alpha_instr_mov_0_12,
++ alpha_instr_mov_1_12,
++ alpha_instr_mov_2_12,
++ alpha_instr_mov_3_12,
++ alpha_instr_mov_4_12,
++ alpha_instr_mov_5_12,
++ alpha_instr_mov_6_12,
++ alpha_instr_mov_7_12,
++ alpha_instr_mov_8_12,
++ alpha_instr_mov_9_12,
++ alpha_instr_mov_10_12,
++ alpha_instr_mov_11_12,
++ alpha_instr_nop,
++ alpha_instr_mov_13_12,
++ alpha_instr_mov_14_12,
++ alpha_instr_mov_15_12,
++ alpha_instr_mov_16_12,
++ alpha_instr_mov_17_12,
++ alpha_instr_mov_18_12,
++ alpha_instr_mov_19_12,
++ alpha_instr_mov_20_12,
++ alpha_instr_mov_21_12,
++ alpha_instr_mov_22_12,
++ alpha_instr_mov_23_12,
++ alpha_instr_mov_24_12,
++ alpha_instr_mov_25_12,
++ alpha_instr_mov_26_12,
++ alpha_instr_mov_27_12,
++ alpha_instr_mov_28_12,
++ alpha_instr_mov_29_12,
++ alpha_instr_mov_30_12,
++ alpha_instr_mov_31_12,
++ alpha_instr_mov_0_13,
++ alpha_instr_mov_1_13,
++ alpha_instr_mov_2_13,
++ alpha_instr_mov_3_13,
++ alpha_instr_mov_4_13,
++ alpha_instr_mov_5_13,
++ alpha_instr_mov_6_13,
++ alpha_instr_mov_7_13,
++ alpha_instr_mov_8_13,
++ alpha_instr_mov_9_13,
++ alpha_instr_mov_10_13,
++ alpha_instr_mov_11_13,
++ alpha_instr_mov_12_13,
++ alpha_instr_nop,
++ alpha_instr_mov_14_13,
++ alpha_instr_mov_15_13,
++ alpha_instr_mov_16_13,
++ alpha_instr_mov_17_13,
++ alpha_instr_mov_18_13,
++ alpha_instr_mov_19_13,
++ alpha_instr_mov_20_13,
++ alpha_instr_mov_21_13,
++ alpha_instr_mov_22_13,
++ alpha_instr_mov_23_13,
++ alpha_instr_mov_24_13,
++ alpha_instr_mov_25_13,
++ alpha_instr_mov_26_13,
++ alpha_instr_mov_27_13,
++ alpha_instr_mov_28_13,
++ alpha_instr_mov_29_13,
++ alpha_instr_mov_30_13,
++ alpha_instr_mov_31_13,
++ alpha_instr_mov_0_14,
++ alpha_instr_mov_1_14,
++ alpha_instr_mov_2_14,
++ alpha_instr_mov_3_14,
++ alpha_instr_mov_4_14,
++ alpha_instr_mov_5_14,
++ alpha_instr_mov_6_14,
++ alpha_instr_mov_7_14,
++ alpha_instr_mov_8_14,
++ alpha_instr_mov_9_14,
++ alpha_instr_mov_10_14,
++ alpha_instr_mov_11_14,
++ alpha_instr_mov_12_14,
++ alpha_instr_mov_13_14,
++ alpha_instr_nop,
++ alpha_instr_mov_15_14,
++ alpha_instr_mov_16_14,
++ alpha_instr_mov_17_14,
++ alpha_instr_mov_18_14,
++ alpha_instr_mov_19_14,
++ alpha_instr_mov_20_14,
++ alpha_instr_mov_21_14,
++ alpha_instr_mov_22_14,
++ alpha_instr_mov_23_14,
++ alpha_instr_mov_24_14,
++ alpha_instr_mov_25_14,
++ alpha_instr_mov_26_14,
++ alpha_instr_mov_27_14,
++ alpha_instr_mov_28_14,
++ alpha_instr_mov_29_14,
++ alpha_instr_mov_30_14,
++ alpha_instr_mov_31_14,
++ alpha_instr_mov_0_15,
++ alpha_instr_mov_1_15,
++ alpha_instr_mov_2_15,
++ alpha_instr_mov_3_15,
++ alpha_instr_mov_4_15,
++ alpha_instr_mov_5_15,
++ alpha_instr_mov_6_15,
++ alpha_instr_mov_7_15,
++ alpha_instr_mov_8_15,
++ alpha_instr_mov_9_15,
++ alpha_instr_mov_10_15,
++ alpha_instr_mov_11_15,
++ alpha_instr_mov_12_15,
++ alpha_instr_mov_13_15,
++ alpha_instr_mov_14_15,
++ alpha_instr_nop,
++ alpha_instr_mov_16_15,
++ alpha_instr_mov_17_15,
++ alpha_instr_mov_18_15,
++ alpha_instr_mov_19_15,
++ alpha_instr_mov_20_15,
++ alpha_instr_mov_21_15,
++ alpha_instr_mov_22_15,
++ alpha_instr_mov_23_15,
++ alpha_instr_mov_24_15,
++ alpha_instr_mov_25_15,
++ alpha_instr_mov_26_15,
++ alpha_instr_mov_27_15,
++ alpha_instr_mov_28_15,
++ alpha_instr_mov_29_15,
++ alpha_instr_mov_30_15,
++ alpha_instr_mov_31_15,
++ alpha_instr_mov_0_16,
++ alpha_instr_mov_1_16,
++ alpha_instr_mov_2_16,
++ alpha_instr_mov_3_16,
++ alpha_instr_mov_4_16,
++ alpha_instr_mov_5_16,
++ alpha_instr_mov_6_16,
++ alpha_instr_mov_7_16,
++ alpha_instr_mov_8_16,
++ alpha_instr_mov_9_16,
++ alpha_instr_mov_10_16,
++ alpha_instr_mov_11_16,
++ alpha_instr_mov_12_16,
++ alpha_instr_mov_13_16,
++ alpha_instr_mov_14_16,
++ alpha_instr_mov_15_16,
++ alpha_instr_nop,
++ alpha_instr_mov_17_16,
++ alpha_instr_mov_18_16,
++ alpha_instr_mov_19_16,
++ alpha_instr_mov_20_16,
++ alpha_instr_mov_21_16,
++ alpha_instr_mov_22_16,
++ alpha_instr_mov_23_16,
++ alpha_instr_mov_24_16,
++ alpha_instr_mov_25_16,
++ alpha_instr_mov_26_16,
++ alpha_instr_mov_27_16,
++ alpha_instr_mov_28_16,
++ alpha_instr_mov_29_16,
++ alpha_instr_mov_30_16,
++ alpha_instr_mov_31_16,
++ alpha_instr_mov_0_17,
++ alpha_instr_mov_1_17,
++ alpha_instr_mov_2_17,
++ alpha_instr_mov_3_17,
++ alpha_instr_mov_4_17,
++ alpha_instr_mov_5_17,
++ alpha_instr_mov_6_17,
++ alpha_instr_mov_7_17,
++ alpha_instr_mov_8_17,
++ alpha_instr_mov_9_17,
++ alpha_instr_mov_10_17,
++ alpha_instr_mov_11_17,
++ alpha_instr_mov_12_17,
++ alpha_instr_mov_13_17,
++ alpha_instr_mov_14_17,
++ alpha_instr_mov_15_17,
++ alpha_instr_mov_16_17,
++ alpha_instr_nop,
++ alpha_instr_mov_18_17,
++ alpha_instr_mov_19_17,
++ alpha_instr_mov_20_17,
++ alpha_instr_mov_21_17,
++ alpha_instr_mov_22_17,
++ alpha_instr_mov_23_17,
++ alpha_instr_mov_24_17,
++ alpha_instr_mov_25_17,
++ alpha_instr_mov_26_17,
++ alpha_instr_mov_27_17,
++ alpha_instr_mov_28_17,
++ alpha_instr_mov_29_17,
++ alpha_instr_mov_30_17,
++ alpha_instr_mov_31_17,
++ alpha_instr_mov_0_18,
++ alpha_instr_mov_1_18,
++ alpha_instr_mov_2_18,
++ alpha_instr_mov_3_18,
++ alpha_instr_mov_4_18,
++ alpha_instr_mov_5_18,
++ alpha_instr_mov_6_18,
++ alpha_instr_mov_7_18,
++ alpha_instr_mov_8_18,
++ alpha_instr_mov_9_18,
++ alpha_instr_mov_10_18,
++ alpha_instr_mov_11_18,
++ alpha_instr_mov_12_18,
++ alpha_instr_mov_13_18,
++ alpha_instr_mov_14_18,
++ alpha_instr_mov_15_18,
++ alpha_instr_mov_16_18,
++ alpha_instr_mov_17_18,
++ alpha_instr_nop,
++ alpha_instr_mov_19_18,
++ alpha_instr_mov_20_18,
++ alpha_instr_mov_21_18,
++ alpha_instr_mov_22_18,
++ alpha_instr_mov_23_18,
++ alpha_instr_mov_24_18,
++ alpha_instr_mov_25_18,
++ alpha_instr_mov_26_18,
++ alpha_instr_mov_27_18,
++ alpha_instr_mov_28_18,
++ alpha_instr_mov_29_18,
++ alpha_instr_mov_30_18,
++ alpha_instr_mov_31_18,
++ alpha_instr_mov_0_19,
++ alpha_instr_mov_1_19,
++ alpha_instr_mov_2_19,
++ alpha_instr_mov_3_19,
++ alpha_instr_mov_4_19,
++ alpha_instr_mov_5_19,
++ alpha_instr_mov_6_19,
++ alpha_instr_mov_7_19,
++ alpha_instr_mov_8_19,
++ alpha_instr_mov_9_19,
++ alpha_instr_mov_10_19,
++ alpha_instr_mov_11_19,
++ alpha_instr_mov_12_19,
++ alpha_instr_mov_13_19,
++ alpha_instr_mov_14_19,
++ alpha_instr_mov_15_19,
++ alpha_instr_mov_16_19,
++ alpha_instr_mov_17_19,
++ alpha_instr_mov_18_19,
++ alpha_instr_nop,
++ alpha_instr_mov_20_19,
++ alpha_instr_mov_21_19,
++ alpha_instr_mov_22_19,
++ alpha_instr_mov_23_19,
++ alpha_instr_mov_24_19,
++ alpha_instr_mov_25_19,
++ alpha_instr_mov_26_19,
++ alpha_instr_mov_27_19,
++ alpha_instr_mov_28_19,
++ alpha_instr_mov_29_19,
++ alpha_instr_mov_30_19,
++ alpha_instr_mov_31_19,
++ alpha_instr_mov_0_20,
++ alpha_instr_mov_1_20,
++ alpha_instr_mov_2_20,
++ alpha_instr_mov_3_20,
++ alpha_instr_mov_4_20,
++ alpha_instr_mov_5_20,
++ alpha_instr_mov_6_20,
++ alpha_instr_mov_7_20,
++ alpha_instr_mov_8_20,
++ alpha_instr_mov_9_20,
++ alpha_instr_mov_10_20,
++ alpha_instr_mov_11_20,
++ alpha_instr_mov_12_20,
++ alpha_instr_mov_13_20,
++ alpha_instr_mov_14_20,
++ alpha_instr_mov_15_20,
++ alpha_instr_mov_16_20,
++ alpha_instr_mov_17_20,
++ alpha_instr_mov_18_20,
++ alpha_instr_mov_19_20,
++ alpha_instr_nop,
++ alpha_instr_mov_21_20,
++ alpha_instr_mov_22_20,
++ alpha_instr_mov_23_20,
++ alpha_instr_mov_24_20,
++ alpha_instr_mov_25_20,
++ alpha_instr_mov_26_20,
++ alpha_instr_mov_27_20,
++ alpha_instr_mov_28_20,
++ alpha_instr_mov_29_20,
++ alpha_instr_mov_30_20,
++ alpha_instr_mov_31_20,
++ alpha_instr_mov_0_21,
++ alpha_instr_mov_1_21,
++ alpha_instr_mov_2_21,
++ alpha_instr_mov_3_21,
++ alpha_instr_mov_4_21,
++ alpha_instr_mov_5_21,
++ alpha_instr_mov_6_21,
++ alpha_instr_mov_7_21,
++ alpha_instr_mov_8_21,
++ alpha_instr_mov_9_21,
++ alpha_instr_mov_10_21,
++ alpha_instr_mov_11_21,
++ alpha_instr_mov_12_21,
++ alpha_instr_mov_13_21,
++ alpha_instr_mov_14_21,
++ alpha_instr_mov_15_21,
++ alpha_instr_mov_16_21,
++ alpha_instr_mov_17_21,
++ alpha_instr_mov_18_21,
++ alpha_instr_mov_19_21,
++ alpha_instr_mov_20_21,
++ alpha_instr_nop,
++ alpha_instr_mov_22_21,
++ alpha_instr_mov_23_21,
++ alpha_instr_mov_24_21,
++ alpha_instr_mov_25_21,
++ alpha_instr_mov_26_21,
++ alpha_instr_mov_27_21,
++ alpha_instr_mov_28_21,
++ alpha_instr_mov_29_21,
++ alpha_instr_mov_30_21,
++ alpha_instr_mov_31_21,
++ alpha_instr_mov_0_22,
++ alpha_instr_mov_1_22,
++ alpha_instr_mov_2_22,
++ alpha_instr_mov_3_22,
++ alpha_instr_mov_4_22,
++ alpha_instr_mov_5_22,
++ alpha_instr_mov_6_22,
++ alpha_instr_mov_7_22,
++ alpha_instr_mov_8_22,
++ alpha_instr_mov_9_22,
++ alpha_instr_mov_10_22,
++ alpha_instr_mov_11_22,
++ alpha_instr_mov_12_22,
++ alpha_instr_mov_13_22,
++ alpha_instr_mov_14_22,
++ alpha_instr_mov_15_22,
++ alpha_instr_mov_16_22,
++ alpha_instr_mov_17_22,
++ alpha_instr_mov_18_22,
++ alpha_instr_mov_19_22,
++ alpha_instr_mov_20_22,
++ alpha_instr_mov_21_22,
++ alpha_instr_nop,
++ alpha_instr_mov_23_22,
++ alpha_instr_mov_24_22,
++ alpha_instr_mov_25_22,
++ alpha_instr_mov_26_22,
++ alpha_instr_mov_27_22,
++ alpha_instr_mov_28_22,
++ alpha_instr_mov_29_22,
++ alpha_instr_mov_30_22,
++ alpha_instr_mov_31_22,
++ alpha_instr_mov_0_23,
++ alpha_instr_mov_1_23,
++ alpha_instr_mov_2_23,
++ alpha_instr_mov_3_23,
++ alpha_instr_mov_4_23,
++ alpha_instr_mov_5_23,
++ alpha_instr_mov_6_23,
++ alpha_instr_mov_7_23,
++ alpha_instr_mov_8_23,
++ alpha_instr_mov_9_23,
++ alpha_instr_mov_10_23,
++ alpha_instr_mov_11_23,
++ alpha_instr_mov_12_23,
++ alpha_instr_mov_13_23,
++ alpha_instr_mov_14_23,
++ alpha_instr_mov_15_23,
++ alpha_instr_mov_16_23,
++ alpha_instr_mov_17_23,
++ alpha_instr_mov_18_23,
++ alpha_instr_mov_19_23,
++ alpha_instr_mov_20_23,
++ alpha_instr_mov_21_23,
++ alpha_instr_mov_22_23,
++ alpha_instr_nop,
++ alpha_instr_mov_24_23,
++ alpha_instr_mov_25_23,
++ alpha_instr_mov_26_23,
++ alpha_instr_mov_27_23,
++ alpha_instr_mov_28_23,
++ alpha_instr_mov_29_23,
++ alpha_instr_mov_30_23,
++ alpha_instr_mov_31_23,
++ alpha_instr_mov_0_24,
++ alpha_instr_mov_1_24,
++ alpha_instr_mov_2_24,
++ alpha_instr_mov_3_24,
++ alpha_instr_mov_4_24,
++ alpha_instr_mov_5_24,
++ alpha_instr_mov_6_24,
++ alpha_instr_mov_7_24,
++ alpha_instr_mov_8_24,
++ alpha_instr_mov_9_24,
++ alpha_instr_mov_10_24,
++ alpha_instr_mov_11_24,
++ alpha_instr_mov_12_24,
++ alpha_instr_mov_13_24,
++ alpha_instr_mov_14_24,
++ alpha_instr_mov_15_24,
++ alpha_instr_mov_16_24,
++ alpha_instr_mov_17_24,
++ alpha_instr_mov_18_24,
++ alpha_instr_mov_19_24,
++ alpha_instr_mov_20_24,
++ alpha_instr_mov_21_24,
++ alpha_instr_mov_22_24,
++ alpha_instr_mov_23_24,
++ alpha_instr_nop,
++ alpha_instr_mov_25_24,
++ alpha_instr_mov_26_24,
++ alpha_instr_mov_27_24,
++ alpha_instr_mov_28_24,
++ alpha_instr_mov_29_24,
++ alpha_instr_mov_30_24,
++ alpha_instr_mov_31_24,
++ alpha_instr_mov_0_25,
++ alpha_instr_mov_1_25,
++ alpha_instr_mov_2_25,
++ alpha_instr_mov_3_25,
++ alpha_instr_mov_4_25,
++ alpha_instr_mov_5_25,
++ alpha_instr_mov_6_25,
++ alpha_instr_mov_7_25,
++ alpha_instr_mov_8_25,
++ alpha_instr_mov_9_25,
++ alpha_instr_mov_10_25,
++ alpha_instr_mov_11_25,
++ alpha_instr_mov_12_25,
++ alpha_instr_mov_13_25,
++ alpha_instr_mov_14_25,
++ alpha_instr_mov_15_25,
++ alpha_instr_mov_16_25,
++ alpha_instr_mov_17_25,
++ alpha_instr_mov_18_25,
++ alpha_instr_mov_19_25,
++ alpha_instr_mov_20_25,
++ alpha_instr_mov_21_25,
++ alpha_instr_mov_22_25,
++ alpha_instr_mov_23_25,
++ alpha_instr_mov_24_25,
++ alpha_instr_nop,
++ alpha_instr_mov_26_25,
++ alpha_instr_mov_27_25,
++ alpha_instr_mov_28_25,
++ alpha_instr_mov_29_25,
++ alpha_instr_mov_30_25,
++ alpha_instr_mov_31_25,
++ alpha_instr_mov_0_26,
++ alpha_instr_mov_1_26,
++ alpha_instr_mov_2_26,
++ alpha_instr_mov_3_26,
++ alpha_instr_mov_4_26,
++ alpha_instr_mov_5_26,
++ alpha_instr_mov_6_26,
++ alpha_instr_mov_7_26,
++ alpha_instr_mov_8_26,
++ alpha_instr_mov_9_26,
++ alpha_instr_mov_10_26,
++ alpha_instr_mov_11_26,
++ alpha_instr_mov_12_26,
++ alpha_instr_mov_13_26,
++ alpha_instr_mov_14_26,
++ alpha_instr_mov_15_26,
++ alpha_instr_mov_16_26,
++ alpha_instr_mov_17_26,
++ alpha_instr_mov_18_26,
++ alpha_instr_mov_19_26,
++ alpha_instr_mov_20_26,
++ alpha_instr_mov_21_26,
++ alpha_instr_mov_22_26,
++ alpha_instr_mov_23_26,
++ alpha_instr_mov_24_26,
++ alpha_instr_mov_25_26,
++ alpha_instr_nop,
++ alpha_instr_mov_27_26,
++ alpha_instr_mov_28_26,
++ alpha_instr_mov_29_26,
++ alpha_instr_mov_30_26,
++ alpha_instr_mov_31_26,
++ alpha_instr_mov_0_27,
++ alpha_instr_mov_1_27,
++ alpha_instr_mov_2_27,
++ alpha_instr_mov_3_27,
++ alpha_instr_mov_4_27,
++ alpha_instr_mov_5_27,
++ alpha_instr_mov_6_27,
++ alpha_instr_mov_7_27,
++ alpha_instr_mov_8_27,
++ alpha_instr_mov_9_27,
++ alpha_instr_mov_10_27,
++ alpha_instr_mov_11_27,
++ alpha_instr_mov_12_27,
++ alpha_instr_mov_13_27,
++ alpha_instr_mov_14_27,
++ alpha_instr_mov_15_27,
++ alpha_instr_mov_16_27,
++ alpha_instr_mov_17_27,
++ alpha_instr_mov_18_27,
++ alpha_instr_mov_19_27,
++ alpha_instr_mov_20_27,
++ alpha_instr_mov_21_27,
++ alpha_instr_mov_22_27,
++ alpha_instr_mov_23_27,
++ alpha_instr_mov_24_27,
++ alpha_instr_mov_25_27,
++ alpha_instr_mov_26_27,
++ alpha_instr_nop,
++ alpha_instr_mov_28_27,
++ alpha_instr_mov_29_27,
++ alpha_instr_mov_30_27,
++ alpha_instr_mov_31_27,
++ alpha_instr_mov_0_28,
++ alpha_instr_mov_1_28,
++ alpha_instr_mov_2_28,
++ alpha_instr_mov_3_28,
++ alpha_instr_mov_4_28,
++ alpha_instr_mov_5_28,
++ alpha_instr_mov_6_28,
++ alpha_instr_mov_7_28,
++ alpha_instr_mov_8_28,
++ alpha_instr_mov_9_28,
++ alpha_instr_mov_10_28,
++ alpha_instr_mov_11_28,
++ alpha_instr_mov_12_28,
++ alpha_instr_mov_13_28,
++ alpha_instr_mov_14_28,
++ alpha_instr_mov_15_28,
++ alpha_instr_mov_16_28,
++ alpha_instr_mov_17_28,
++ alpha_instr_mov_18_28,
++ alpha_instr_mov_19_28,
++ alpha_instr_mov_20_28,
++ alpha_instr_mov_21_28,
++ alpha_instr_mov_22_28,
++ alpha_instr_mov_23_28,
++ alpha_instr_mov_24_28,
++ alpha_instr_mov_25_28,
++ alpha_instr_mov_26_28,
++ alpha_instr_mov_27_28,
++ alpha_instr_nop,
++ alpha_instr_mov_29_28,
++ alpha_instr_mov_30_28,
++ alpha_instr_mov_31_28,
++ alpha_instr_mov_0_29,
++ alpha_instr_mov_1_29,
++ alpha_instr_mov_2_29,
++ alpha_instr_mov_3_29,
++ alpha_instr_mov_4_29,
++ alpha_instr_mov_5_29,
++ alpha_instr_mov_6_29,
++ alpha_instr_mov_7_29,
++ alpha_instr_mov_8_29,
++ alpha_instr_mov_9_29,
++ alpha_instr_mov_10_29,
++ alpha_instr_mov_11_29,
++ alpha_instr_mov_12_29,
++ alpha_instr_mov_13_29,
++ alpha_instr_mov_14_29,
++ alpha_instr_mov_15_29,
++ alpha_instr_mov_16_29,
++ alpha_instr_mov_17_29,
++ alpha_instr_mov_18_29,
++ alpha_instr_mov_19_29,
++ alpha_instr_mov_20_29,
++ alpha_instr_mov_21_29,
++ alpha_instr_mov_22_29,
++ alpha_instr_mov_23_29,
++ alpha_instr_mov_24_29,
++ alpha_instr_mov_25_29,
++ alpha_instr_mov_26_29,
++ alpha_instr_mov_27_29,
++ alpha_instr_mov_28_29,
++ alpha_instr_nop,
++ alpha_instr_mov_30_29,
++ alpha_instr_mov_31_29,
++ alpha_instr_mov_0_30,
++ alpha_instr_mov_1_30,
++ alpha_instr_mov_2_30,
++ alpha_instr_mov_3_30,
++ alpha_instr_mov_4_30,
++ alpha_instr_mov_5_30,
++ alpha_instr_mov_6_30,
++ alpha_instr_mov_7_30,
++ alpha_instr_mov_8_30,
++ alpha_instr_mov_9_30,
++ alpha_instr_mov_10_30,
++ alpha_instr_mov_11_30,
++ alpha_instr_mov_12_30,
++ alpha_instr_mov_13_30,
++ alpha_instr_mov_14_30,
++ alpha_instr_mov_15_30,
++ alpha_instr_mov_16_30,
++ alpha_instr_mov_17_30,
++ alpha_instr_mov_18_30,
++ alpha_instr_mov_19_30,
++ alpha_instr_mov_20_30,
++ alpha_instr_mov_21_30,
++ alpha_instr_mov_22_30,
++ alpha_instr_mov_23_30,
++ alpha_instr_mov_24_30,
++ alpha_instr_mov_25_30,
++ alpha_instr_mov_26_30,
++ alpha_instr_mov_27_30,
++ alpha_instr_mov_28_30,
++ alpha_instr_mov_29_30,
++ alpha_instr_nop,
++ alpha_instr_mov_31_30
++};
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_alpha_tail.c gxemul-0.7.0/src/cpus/tmp_alpha_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_alpha_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_alpha_tail.c 2022-10-18 16:37:22.075737100 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF alpha_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES alpha_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF alpha_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC alpha_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE alpha_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE alpha_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW alpha_memory_rw
++#define MEM_ALPHA
++#include "memory_rw.c"
++#undef MEM_ALPHA
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC alpha_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC alpha_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS alpha_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) alpha_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_alpha_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF alpha_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS alpha32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void alpha32_instr_ ## n(struct cpu *cpu, \
++ struct alpha_instr_call *ic)
++#define instr(n) alpha32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY alpha32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC alpha32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE alpha32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE alpha32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC alpha32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC alpha32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS alpha32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) alpha32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_alpha_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS alpha_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 alpha32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF alpha32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(alpha,"Alpha")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_dpi.c gxemul-0.7.0/src/cpus/tmp_arm_dpi.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_dpi.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_dpi.c 2022-10-18 16:37:22.076738100 +0000
+@@ -0,0 +1,7643 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME arm_instr_and
++#define A__NAME__eq arm_instr_and__eq
++#define A__NAME__ne arm_instr_and__ne
++#define A__NAME__cs arm_instr_and__cs
++#define A__NAME__cc arm_instr_and__cc
++#define A__NAME__mi arm_instr_and__mi
++#define A__NAME__pl arm_instr_and__pl
++#define A__NAME__vs arm_instr_and__vs
++#define A__NAME__vc arm_instr_and__vc
++#define A__NAME__hi arm_instr_and__hi
++#define A__NAME__ls arm_instr_and__ls
++#define A__NAME__ge arm_instr_and__ge
++#define A__NAME__lt arm_instr_and__lt
++#define A__NAME__gt arm_instr_and__gt
++#define A__NAME__le arm_instr_and__le
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eor
++#define A__NAME__eq arm_instr_eor__eq
++#define A__NAME__ne arm_instr_eor__ne
++#define A__NAME__cs arm_instr_eor__cs
++#define A__NAME__cc arm_instr_eor__cc
++#define A__NAME__mi arm_instr_eor__mi
++#define A__NAME__pl arm_instr_eor__pl
++#define A__NAME__vs arm_instr_eor__vs
++#define A__NAME__vc arm_instr_eor__vc
++#define A__NAME__hi arm_instr_eor__hi
++#define A__NAME__ls arm_instr_eor__ls
++#define A__NAME__ge arm_instr_eor__ge
++#define A__NAME__lt arm_instr_eor__lt
++#define A__NAME__gt arm_instr_eor__gt
++#define A__NAME__le arm_instr_eor__le
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sub
++#define A__NAME__eq arm_instr_sub__eq
++#define A__NAME__ne arm_instr_sub__ne
++#define A__NAME__cs arm_instr_sub__cs
++#define A__NAME__cc arm_instr_sub__cc
++#define A__NAME__mi arm_instr_sub__mi
++#define A__NAME__pl arm_instr_sub__pl
++#define A__NAME__vs arm_instr_sub__vs
++#define A__NAME__vc arm_instr_sub__vc
++#define A__NAME__hi arm_instr_sub__hi
++#define A__NAME__ls arm_instr_sub__ls
++#define A__NAME__ge arm_instr_sub__ge
++#define A__NAME__lt arm_instr_sub__lt
++#define A__NAME__gt arm_instr_sub__gt
++#define A__NAME__le arm_instr_sub__le
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsb
++#define A__NAME__eq arm_instr_rsb__eq
++#define A__NAME__ne arm_instr_rsb__ne
++#define A__NAME__cs arm_instr_rsb__cs
++#define A__NAME__cc arm_instr_rsb__cc
++#define A__NAME__mi arm_instr_rsb__mi
++#define A__NAME__pl arm_instr_rsb__pl
++#define A__NAME__vs arm_instr_rsb__vs
++#define A__NAME__vc arm_instr_rsb__vc
++#define A__NAME__hi arm_instr_rsb__hi
++#define A__NAME__ls arm_instr_rsb__ls
++#define A__NAME__ge arm_instr_rsb__ge
++#define A__NAME__lt arm_instr_rsb__lt
++#define A__NAME__gt arm_instr_rsb__gt
++#define A__NAME__le arm_instr_rsb__le
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_add
++#define A__NAME__eq arm_instr_add__eq
++#define A__NAME__ne arm_instr_add__ne
++#define A__NAME__cs arm_instr_add__cs
++#define A__NAME__cc arm_instr_add__cc
++#define A__NAME__mi arm_instr_add__mi
++#define A__NAME__pl arm_instr_add__pl
++#define A__NAME__vs arm_instr_add__vs
++#define A__NAME__vc arm_instr_add__vc
++#define A__NAME__hi arm_instr_add__hi
++#define A__NAME__ls arm_instr_add__ls
++#define A__NAME__ge arm_instr_add__ge
++#define A__NAME__lt arm_instr_add__lt
++#define A__NAME__gt arm_instr_add__gt
++#define A__NAME__le arm_instr_add__le
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adc
++#define A__NAME__eq arm_instr_adc__eq
++#define A__NAME__ne arm_instr_adc__ne
++#define A__NAME__cs arm_instr_adc__cs
++#define A__NAME__cc arm_instr_adc__cc
++#define A__NAME__mi arm_instr_adc__mi
++#define A__NAME__pl arm_instr_adc__pl
++#define A__NAME__vs arm_instr_adc__vs
++#define A__NAME__vc arm_instr_adc__vc
++#define A__NAME__hi arm_instr_adc__hi
++#define A__NAME__ls arm_instr_adc__ls
++#define A__NAME__ge arm_instr_adc__ge
++#define A__NAME__lt arm_instr_adc__lt
++#define A__NAME__gt arm_instr_adc__gt
++#define A__NAME__le arm_instr_adc__le
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbc
++#define A__NAME__eq arm_instr_sbc__eq
++#define A__NAME__ne arm_instr_sbc__ne
++#define A__NAME__cs arm_instr_sbc__cs
++#define A__NAME__cc arm_instr_sbc__cc
++#define A__NAME__mi arm_instr_sbc__mi
++#define A__NAME__pl arm_instr_sbc__pl
++#define A__NAME__vs arm_instr_sbc__vs
++#define A__NAME__vc arm_instr_sbc__vc
++#define A__NAME__hi arm_instr_sbc__hi
++#define A__NAME__ls arm_instr_sbc__ls
++#define A__NAME__ge arm_instr_sbc__ge
++#define A__NAME__lt arm_instr_sbc__lt
++#define A__NAME__gt arm_instr_sbc__gt
++#define A__NAME__le arm_instr_sbc__le
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsc
++#define A__NAME__eq arm_instr_rsc__eq
++#define A__NAME__ne arm_instr_rsc__ne
++#define A__NAME__cs arm_instr_rsc__cs
++#define A__NAME__cc arm_instr_rsc__cc
++#define A__NAME__mi arm_instr_rsc__mi
++#define A__NAME__pl arm_instr_rsc__pl
++#define A__NAME__vs arm_instr_rsc__vs
++#define A__NAME__vc arm_instr_rsc__vc
++#define A__NAME__hi arm_instr_rsc__hi
++#define A__NAME__ls arm_instr_rsc__ls
++#define A__NAME__ge arm_instr_rsc__ge
++#define A__NAME__lt arm_instr_rsc__lt
++#define A__NAME__gt arm_instr_rsc__gt
++#define A__NAME__le arm_instr_rsc__le
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orr
++#define A__NAME__eq arm_instr_orr__eq
++#define A__NAME__ne arm_instr_orr__ne
++#define A__NAME__cs arm_instr_orr__cs
++#define A__NAME__cc arm_instr_orr__cc
++#define A__NAME__mi arm_instr_orr__mi
++#define A__NAME__pl arm_instr_orr__pl
++#define A__NAME__vs arm_instr_orr__vs
++#define A__NAME__vc arm_instr_orr__vc
++#define A__NAME__hi arm_instr_orr__hi
++#define A__NAME__ls arm_instr_orr__ls
++#define A__NAME__ge arm_instr_orr__ge
++#define A__NAME__lt arm_instr_orr__lt
++#define A__NAME__gt arm_instr_orr__gt
++#define A__NAME__le arm_instr_orr__le
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mov
++#define A__NAME__eq arm_instr_mov__eq
++#define A__NAME__ne arm_instr_mov__ne
++#define A__NAME__cs arm_instr_mov__cs
++#define A__NAME__cc arm_instr_mov__cc
++#define A__NAME__mi arm_instr_mov__mi
++#define A__NAME__pl arm_instr_mov__pl
++#define A__NAME__vs arm_instr_mov__vs
++#define A__NAME__vc arm_instr_mov__vc
++#define A__NAME__hi arm_instr_mov__hi
++#define A__NAME__ls arm_instr_mov__ls
++#define A__NAME__ge arm_instr_mov__ge
++#define A__NAME__lt arm_instr_mov__lt
++#define A__NAME__gt arm_instr_mov__gt
++#define A__NAME__le arm_instr_mov__le
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bic
++#define A__NAME__eq arm_instr_bic__eq
++#define A__NAME__ne arm_instr_bic__ne
++#define A__NAME__cs arm_instr_bic__cs
++#define A__NAME__cc arm_instr_bic__cc
++#define A__NAME__mi arm_instr_bic__mi
++#define A__NAME__pl arm_instr_bic__pl
++#define A__NAME__vs arm_instr_bic__vs
++#define A__NAME__vc arm_instr_bic__vc
++#define A__NAME__hi arm_instr_bic__hi
++#define A__NAME__ls arm_instr_bic__ls
++#define A__NAME__ge arm_instr_bic__ge
++#define A__NAME__lt arm_instr_bic__lt
++#define A__NAME__gt arm_instr_bic__gt
++#define A__NAME__le arm_instr_bic__le
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvn
++#define A__NAME__eq arm_instr_mvn__eq
++#define A__NAME__ne arm_instr_mvn__ne
++#define A__NAME__cs arm_instr_mvn__cs
++#define A__NAME__cc arm_instr_mvn__cc
++#define A__NAME__mi arm_instr_mvn__mi
++#define A__NAME__pl arm_instr_mvn__pl
++#define A__NAME__vs arm_instr_mvn__vs
++#define A__NAME__vc arm_instr_mvn__vc
++#define A__NAME__hi arm_instr_mvn__hi
++#define A__NAME__ls arm_instr_mvn__ls
++#define A__NAME__ge arm_instr_mvn__ge
++#define A__NAME__lt arm_instr_mvn__lt
++#define A__NAME__gt arm_instr_mvn__gt
++#define A__NAME__le arm_instr_mvn__le
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_ands
++#define A__NAME__eq arm_instr_ands__eq
++#define A__NAME__ne arm_instr_ands__ne
++#define A__NAME__cs arm_instr_ands__cs
++#define A__NAME__cc arm_instr_ands__cc
++#define A__NAME__mi arm_instr_ands__mi
++#define A__NAME__pl arm_instr_ands__pl
++#define A__NAME__vs arm_instr_ands__vs
++#define A__NAME__vc arm_instr_ands__vc
++#define A__NAME__hi arm_instr_ands__hi
++#define A__NAME__ls arm_instr_ands__ls
++#define A__NAME__ge arm_instr_ands__ge
++#define A__NAME__lt arm_instr_ands__lt
++#define A__NAME__gt arm_instr_ands__gt
++#define A__NAME__le arm_instr_ands__le
++#define A__S
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eors
++#define A__NAME__eq arm_instr_eors__eq
++#define A__NAME__ne arm_instr_eors__ne
++#define A__NAME__cs arm_instr_eors__cs
++#define A__NAME__cc arm_instr_eors__cc
++#define A__NAME__mi arm_instr_eors__mi
++#define A__NAME__pl arm_instr_eors__pl
++#define A__NAME__vs arm_instr_eors__vs
++#define A__NAME__vc arm_instr_eors__vc
++#define A__NAME__hi arm_instr_eors__hi
++#define A__NAME__ls arm_instr_eors__ls
++#define A__NAME__ge arm_instr_eors__ge
++#define A__NAME__lt arm_instr_eors__lt
++#define A__NAME__gt arm_instr_eors__gt
++#define A__NAME__le arm_instr_eors__le
++#define A__S
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_subs
++#define A__NAME__eq arm_instr_subs__eq
++#define A__NAME__ne arm_instr_subs__ne
++#define A__NAME__cs arm_instr_subs__cs
++#define A__NAME__cc arm_instr_subs__cc
++#define A__NAME__mi arm_instr_subs__mi
++#define A__NAME__pl arm_instr_subs__pl
++#define A__NAME__vs arm_instr_subs__vs
++#define A__NAME__vc arm_instr_subs__vc
++#define A__NAME__hi arm_instr_subs__hi
++#define A__NAME__ls arm_instr_subs__ls
++#define A__NAME__ge arm_instr_subs__ge
++#define A__NAME__lt arm_instr_subs__lt
++#define A__NAME__gt arm_instr_subs__gt
++#define A__NAME__le arm_instr_subs__le
++#define A__S
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsbs
++#define A__NAME__eq arm_instr_rsbs__eq
++#define A__NAME__ne arm_instr_rsbs__ne
++#define A__NAME__cs arm_instr_rsbs__cs
++#define A__NAME__cc arm_instr_rsbs__cc
++#define A__NAME__mi arm_instr_rsbs__mi
++#define A__NAME__pl arm_instr_rsbs__pl
++#define A__NAME__vs arm_instr_rsbs__vs
++#define A__NAME__vc arm_instr_rsbs__vc
++#define A__NAME__hi arm_instr_rsbs__hi
++#define A__NAME__ls arm_instr_rsbs__ls
++#define A__NAME__ge arm_instr_rsbs__ge
++#define A__NAME__lt arm_instr_rsbs__lt
++#define A__NAME__gt arm_instr_rsbs__gt
++#define A__NAME__le arm_instr_rsbs__le
++#define A__S
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adds
++#define A__NAME__eq arm_instr_adds__eq
++#define A__NAME__ne arm_instr_adds__ne
++#define A__NAME__cs arm_instr_adds__cs
++#define A__NAME__cc arm_instr_adds__cc
++#define A__NAME__mi arm_instr_adds__mi
++#define A__NAME__pl arm_instr_adds__pl
++#define A__NAME__vs arm_instr_adds__vs
++#define A__NAME__vc arm_instr_adds__vc
++#define A__NAME__hi arm_instr_adds__hi
++#define A__NAME__ls arm_instr_adds__ls
++#define A__NAME__ge arm_instr_adds__ge
++#define A__NAME__lt arm_instr_adds__lt
++#define A__NAME__gt arm_instr_adds__gt
++#define A__NAME__le arm_instr_adds__le
++#define A__S
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adcs
++#define A__NAME__eq arm_instr_adcs__eq
++#define A__NAME__ne arm_instr_adcs__ne
++#define A__NAME__cs arm_instr_adcs__cs
++#define A__NAME__cc arm_instr_adcs__cc
++#define A__NAME__mi arm_instr_adcs__mi
++#define A__NAME__pl arm_instr_adcs__pl
++#define A__NAME__vs arm_instr_adcs__vs
++#define A__NAME__vc arm_instr_adcs__vc
++#define A__NAME__hi arm_instr_adcs__hi
++#define A__NAME__ls arm_instr_adcs__ls
++#define A__NAME__ge arm_instr_adcs__ge
++#define A__NAME__lt arm_instr_adcs__lt
++#define A__NAME__gt arm_instr_adcs__gt
++#define A__NAME__le arm_instr_adcs__le
++#define A__S
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbcs
++#define A__NAME__eq arm_instr_sbcs__eq
++#define A__NAME__ne arm_instr_sbcs__ne
++#define A__NAME__cs arm_instr_sbcs__cs
++#define A__NAME__cc arm_instr_sbcs__cc
++#define A__NAME__mi arm_instr_sbcs__mi
++#define A__NAME__pl arm_instr_sbcs__pl
++#define A__NAME__vs arm_instr_sbcs__vs
++#define A__NAME__vc arm_instr_sbcs__vc
++#define A__NAME__hi arm_instr_sbcs__hi
++#define A__NAME__ls arm_instr_sbcs__ls
++#define A__NAME__ge arm_instr_sbcs__ge
++#define A__NAME__lt arm_instr_sbcs__lt
++#define A__NAME__gt arm_instr_sbcs__gt
++#define A__NAME__le arm_instr_sbcs__le
++#define A__S
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rscs
++#define A__NAME__eq arm_instr_rscs__eq
++#define A__NAME__ne arm_instr_rscs__ne
++#define A__NAME__cs arm_instr_rscs__cs
++#define A__NAME__cc arm_instr_rscs__cc
++#define A__NAME__mi arm_instr_rscs__mi
++#define A__NAME__pl arm_instr_rscs__pl
++#define A__NAME__vs arm_instr_rscs__vs
++#define A__NAME__vc arm_instr_rscs__vc
++#define A__NAME__hi arm_instr_rscs__hi
++#define A__NAME__ls arm_instr_rscs__ls
++#define A__NAME__ge arm_instr_rscs__ge
++#define A__NAME__lt arm_instr_rscs__lt
++#define A__NAME__gt arm_instr_rscs__gt
++#define A__NAME__le arm_instr_rscs__le
++#define A__S
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_tsts
++#define A__NAME__eq arm_instr_tsts__eq
++#define A__NAME__ne arm_instr_tsts__ne
++#define A__NAME__cs arm_instr_tsts__cs
++#define A__NAME__cc arm_instr_tsts__cc
++#define A__NAME__mi arm_instr_tsts__mi
++#define A__NAME__pl arm_instr_tsts__pl
++#define A__NAME__vs arm_instr_tsts__vs
++#define A__NAME__vc arm_instr_tsts__vc
++#define A__NAME__hi arm_instr_tsts__hi
++#define A__NAME__ls arm_instr_tsts__ls
++#define A__NAME__ge arm_instr_tsts__ge
++#define A__NAME__lt arm_instr_tsts__lt
++#define A__NAME__gt arm_instr_tsts__gt
++#define A__NAME__le arm_instr_tsts__le
++#define A__S
++#define A__TST
++#include "cpu_arm_instr_dpi.c"
++#undef A__TST
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_teqs
++#define A__NAME__eq arm_instr_teqs__eq
++#define A__NAME__ne arm_instr_teqs__ne
++#define A__NAME__cs arm_instr_teqs__cs
++#define A__NAME__cc arm_instr_teqs__cc
++#define A__NAME__mi arm_instr_teqs__mi
++#define A__NAME__pl arm_instr_teqs__pl
++#define A__NAME__vs arm_instr_teqs__vs
++#define A__NAME__vc arm_instr_teqs__vc
++#define A__NAME__hi arm_instr_teqs__hi
++#define A__NAME__ls arm_instr_teqs__ls
++#define A__NAME__ge arm_instr_teqs__ge
++#define A__NAME__lt arm_instr_teqs__lt
++#define A__NAME__gt arm_instr_teqs__gt
++#define A__NAME__le arm_instr_teqs__le
++#define A__S
++#define A__TEQ
++#include "cpu_arm_instr_dpi.c"
++#undef A__TEQ
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmps
++#define A__NAME__eq arm_instr_cmps__eq
++#define A__NAME__ne arm_instr_cmps__ne
++#define A__NAME__cs arm_instr_cmps__cs
++#define A__NAME__cc arm_instr_cmps__cc
++#define A__NAME__mi arm_instr_cmps__mi
++#define A__NAME__pl arm_instr_cmps__pl
++#define A__NAME__vs arm_instr_cmps__vs
++#define A__NAME__vc arm_instr_cmps__vc
++#define A__NAME__hi arm_instr_cmps__hi
++#define A__NAME__ls arm_instr_cmps__ls
++#define A__NAME__ge arm_instr_cmps__ge
++#define A__NAME__lt arm_instr_cmps__lt
++#define A__NAME__gt arm_instr_cmps__gt
++#define A__NAME__le arm_instr_cmps__le
++#define A__S
++#define A__CMP
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMP
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmns
++#define A__NAME__eq arm_instr_cmns__eq
++#define A__NAME__ne arm_instr_cmns__ne
++#define A__NAME__cs arm_instr_cmns__cs
++#define A__NAME__cc arm_instr_cmns__cc
++#define A__NAME__mi arm_instr_cmns__mi
++#define A__NAME__pl arm_instr_cmns__pl
++#define A__NAME__vs arm_instr_cmns__vs
++#define A__NAME__vc arm_instr_cmns__vc
++#define A__NAME__hi arm_instr_cmns__hi
++#define A__NAME__ls arm_instr_cmns__ls
++#define A__NAME__ge arm_instr_cmns__ge
++#define A__NAME__lt arm_instr_cmns__lt
++#define A__NAME__gt arm_instr_cmns__gt
++#define A__NAME__le arm_instr_cmns__le
++#define A__S
++#define A__CMN
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMN
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orrs
++#define A__NAME__eq arm_instr_orrs__eq
++#define A__NAME__ne arm_instr_orrs__ne
++#define A__NAME__cs arm_instr_orrs__cs
++#define A__NAME__cc arm_instr_orrs__cc
++#define A__NAME__mi arm_instr_orrs__mi
++#define A__NAME__pl arm_instr_orrs__pl
++#define A__NAME__vs arm_instr_orrs__vs
++#define A__NAME__vc arm_instr_orrs__vc
++#define A__NAME__hi arm_instr_orrs__hi
++#define A__NAME__ls arm_instr_orrs__ls
++#define A__NAME__ge arm_instr_orrs__ge
++#define A__NAME__lt arm_instr_orrs__lt
++#define A__NAME__gt arm_instr_orrs__gt
++#define A__NAME__le arm_instr_orrs__le
++#define A__S
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_movs
++#define A__NAME__eq arm_instr_movs__eq
++#define A__NAME__ne arm_instr_movs__ne
++#define A__NAME__cs arm_instr_movs__cs
++#define A__NAME__cc arm_instr_movs__cc
++#define A__NAME__mi arm_instr_movs__mi
++#define A__NAME__pl arm_instr_movs__pl
++#define A__NAME__vs arm_instr_movs__vs
++#define A__NAME__vc arm_instr_movs__vc
++#define A__NAME__hi arm_instr_movs__hi
++#define A__NAME__ls arm_instr_movs__ls
++#define A__NAME__ge arm_instr_movs__ge
++#define A__NAME__lt arm_instr_movs__lt
++#define A__NAME__gt arm_instr_movs__gt
++#define A__NAME__le arm_instr_movs__le
++#define A__S
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bics
++#define A__NAME__eq arm_instr_bics__eq
++#define A__NAME__ne arm_instr_bics__ne
++#define A__NAME__cs arm_instr_bics__cs
++#define A__NAME__cc arm_instr_bics__cc
++#define A__NAME__mi arm_instr_bics__mi
++#define A__NAME__pl arm_instr_bics__pl
++#define A__NAME__vs arm_instr_bics__vs
++#define A__NAME__vc arm_instr_bics__vc
++#define A__NAME__hi arm_instr_bics__hi
++#define A__NAME__ls arm_instr_bics__ls
++#define A__NAME__ge arm_instr_bics__ge
++#define A__NAME__lt arm_instr_bics__lt
++#define A__NAME__gt arm_instr_bics__gt
++#define A__NAME__le arm_instr_bics__le
++#define A__S
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvns
++#define A__NAME__eq arm_instr_mvns__eq
++#define A__NAME__ne arm_instr_mvns__ne
++#define A__NAME__cs arm_instr_mvns__cs
++#define A__NAME__cc arm_instr_mvns__cc
++#define A__NAME__mi arm_instr_mvns__mi
++#define A__NAME__pl arm_instr_mvns__pl
++#define A__NAME__vs arm_instr_mvns__vs
++#define A__NAME__vc arm_instr_mvns__vc
++#define A__NAME__hi arm_instr_mvns__hi
++#define A__NAME__ls arm_instr_mvns__ls
++#define A__NAME__ge arm_instr_mvns__ge
++#define A__NAME__lt arm_instr_mvns__lt
++#define A__NAME__gt arm_instr_mvns__gt
++#define A__NAME__le arm_instr_mvns__le
++#define A__S
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__S
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_and_pc
++#define A__NAME__eq arm_instr_and_pc__eq
++#define A__NAME__ne arm_instr_and_pc__ne
++#define A__NAME__cs arm_instr_and_pc__cs
++#define A__NAME__cc arm_instr_and_pc__cc
++#define A__NAME__mi arm_instr_and_pc__mi
++#define A__NAME__pl arm_instr_and_pc__pl
++#define A__NAME__vs arm_instr_and_pc__vs
++#define A__NAME__vc arm_instr_and_pc__vc
++#define A__NAME__hi arm_instr_and_pc__hi
++#define A__NAME__ls arm_instr_and_pc__ls
++#define A__NAME__ge arm_instr_and_pc__ge
++#define A__NAME__lt arm_instr_and_pc__lt
++#define A__NAME__gt arm_instr_and_pc__gt
++#define A__NAME__le arm_instr_and_pc__le
++#define A__PC
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eor_pc
++#define A__NAME__eq arm_instr_eor_pc__eq
++#define A__NAME__ne arm_instr_eor_pc__ne
++#define A__NAME__cs arm_instr_eor_pc__cs
++#define A__NAME__cc arm_instr_eor_pc__cc
++#define A__NAME__mi arm_instr_eor_pc__mi
++#define A__NAME__pl arm_instr_eor_pc__pl
++#define A__NAME__vs arm_instr_eor_pc__vs
++#define A__NAME__vc arm_instr_eor_pc__vc
++#define A__NAME__hi arm_instr_eor_pc__hi
++#define A__NAME__ls arm_instr_eor_pc__ls
++#define A__NAME__ge arm_instr_eor_pc__ge
++#define A__NAME__lt arm_instr_eor_pc__lt
++#define A__NAME__gt arm_instr_eor_pc__gt
++#define A__NAME__le arm_instr_eor_pc__le
++#define A__PC
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sub_pc
++#define A__NAME__eq arm_instr_sub_pc__eq
++#define A__NAME__ne arm_instr_sub_pc__ne
++#define A__NAME__cs arm_instr_sub_pc__cs
++#define A__NAME__cc arm_instr_sub_pc__cc
++#define A__NAME__mi arm_instr_sub_pc__mi
++#define A__NAME__pl arm_instr_sub_pc__pl
++#define A__NAME__vs arm_instr_sub_pc__vs
++#define A__NAME__vc arm_instr_sub_pc__vc
++#define A__NAME__hi arm_instr_sub_pc__hi
++#define A__NAME__ls arm_instr_sub_pc__ls
++#define A__NAME__ge arm_instr_sub_pc__ge
++#define A__NAME__lt arm_instr_sub_pc__lt
++#define A__NAME__gt arm_instr_sub_pc__gt
++#define A__NAME__le arm_instr_sub_pc__le
++#define A__PC
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsb_pc
++#define A__NAME__eq arm_instr_rsb_pc__eq
++#define A__NAME__ne arm_instr_rsb_pc__ne
++#define A__NAME__cs arm_instr_rsb_pc__cs
++#define A__NAME__cc arm_instr_rsb_pc__cc
++#define A__NAME__mi arm_instr_rsb_pc__mi
++#define A__NAME__pl arm_instr_rsb_pc__pl
++#define A__NAME__vs arm_instr_rsb_pc__vs
++#define A__NAME__vc arm_instr_rsb_pc__vc
++#define A__NAME__hi arm_instr_rsb_pc__hi
++#define A__NAME__ls arm_instr_rsb_pc__ls
++#define A__NAME__ge arm_instr_rsb_pc__ge
++#define A__NAME__lt arm_instr_rsb_pc__lt
++#define A__NAME__gt arm_instr_rsb_pc__gt
++#define A__NAME__le arm_instr_rsb_pc__le
++#define A__PC
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_add_pc
++#define A__NAME__eq arm_instr_add_pc__eq
++#define A__NAME__ne arm_instr_add_pc__ne
++#define A__NAME__cs arm_instr_add_pc__cs
++#define A__NAME__cc arm_instr_add_pc__cc
++#define A__NAME__mi arm_instr_add_pc__mi
++#define A__NAME__pl arm_instr_add_pc__pl
++#define A__NAME__vs arm_instr_add_pc__vs
++#define A__NAME__vc arm_instr_add_pc__vc
++#define A__NAME__hi arm_instr_add_pc__hi
++#define A__NAME__ls arm_instr_add_pc__ls
++#define A__NAME__ge arm_instr_add_pc__ge
++#define A__NAME__lt arm_instr_add_pc__lt
++#define A__NAME__gt arm_instr_add_pc__gt
++#define A__NAME__le arm_instr_add_pc__le
++#define A__PC
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adc_pc
++#define A__NAME__eq arm_instr_adc_pc__eq
++#define A__NAME__ne arm_instr_adc_pc__ne
++#define A__NAME__cs arm_instr_adc_pc__cs
++#define A__NAME__cc arm_instr_adc_pc__cc
++#define A__NAME__mi arm_instr_adc_pc__mi
++#define A__NAME__pl arm_instr_adc_pc__pl
++#define A__NAME__vs arm_instr_adc_pc__vs
++#define A__NAME__vc arm_instr_adc_pc__vc
++#define A__NAME__hi arm_instr_adc_pc__hi
++#define A__NAME__ls arm_instr_adc_pc__ls
++#define A__NAME__ge arm_instr_adc_pc__ge
++#define A__NAME__lt arm_instr_adc_pc__lt
++#define A__NAME__gt arm_instr_adc_pc__gt
++#define A__NAME__le arm_instr_adc_pc__le
++#define A__PC
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbc_pc
++#define A__NAME__eq arm_instr_sbc_pc__eq
++#define A__NAME__ne arm_instr_sbc_pc__ne
++#define A__NAME__cs arm_instr_sbc_pc__cs
++#define A__NAME__cc arm_instr_sbc_pc__cc
++#define A__NAME__mi arm_instr_sbc_pc__mi
++#define A__NAME__pl arm_instr_sbc_pc__pl
++#define A__NAME__vs arm_instr_sbc_pc__vs
++#define A__NAME__vc arm_instr_sbc_pc__vc
++#define A__NAME__hi arm_instr_sbc_pc__hi
++#define A__NAME__ls arm_instr_sbc_pc__ls
++#define A__NAME__ge arm_instr_sbc_pc__ge
++#define A__NAME__lt arm_instr_sbc_pc__lt
++#define A__NAME__gt arm_instr_sbc_pc__gt
++#define A__NAME__le arm_instr_sbc_pc__le
++#define A__PC
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsc_pc
++#define A__NAME__eq arm_instr_rsc_pc__eq
++#define A__NAME__ne arm_instr_rsc_pc__ne
++#define A__NAME__cs arm_instr_rsc_pc__cs
++#define A__NAME__cc arm_instr_rsc_pc__cc
++#define A__NAME__mi arm_instr_rsc_pc__mi
++#define A__NAME__pl arm_instr_rsc_pc__pl
++#define A__NAME__vs arm_instr_rsc_pc__vs
++#define A__NAME__vc arm_instr_rsc_pc__vc
++#define A__NAME__hi arm_instr_rsc_pc__hi
++#define A__NAME__ls arm_instr_rsc_pc__ls
++#define A__NAME__ge arm_instr_rsc_pc__ge
++#define A__NAME__lt arm_instr_rsc_pc__lt
++#define A__NAME__gt arm_instr_rsc_pc__gt
++#define A__NAME__le arm_instr_rsc_pc__le
++#define A__PC
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orr_pc
++#define A__NAME__eq arm_instr_orr_pc__eq
++#define A__NAME__ne arm_instr_orr_pc__ne
++#define A__NAME__cs arm_instr_orr_pc__cs
++#define A__NAME__cc arm_instr_orr_pc__cc
++#define A__NAME__mi arm_instr_orr_pc__mi
++#define A__NAME__pl arm_instr_orr_pc__pl
++#define A__NAME__vs arm_instr_orr_pc__vs
++#define A__NAME__vc arm_instr_orr_pc__vc
++#define A__NAME__hi arm_instr_orr_pc__hi
++#define A__NAME__ls arm_instr_orr_pc__ls
++#define A__NAME__ge arm_instr_orr_pc__ge
++#define A__NAME__lt arm_instr_orr_pc__lt
++#define A__NAME__gt arm_instr_orr_pc__gt
++#define A__NAME__le arm_instr_orr_pc__le
++#define A__PC
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mov_pc
++#define A__NAME__eq arm_instr_mov_pc__eq
++#define A__NAME__ne arm_instr_mov_pc__ne
++#define A__NAME__cs arm_instr_mov_pc__cs
++#define A__NAME__cc arm_instr_mov_pc__cc
++#define A__NAME__mi arm_instr_mov_pc__mi
++#define A__NAME__pl arm_instr_mov_pc__pl
++#define A__NAME__vs arm_instr_mov_pc__vs
++#define A__NAME__vc arm_instr_mov_pc__vc
++#define A__NAME__hi arm_instr_mov_pc__hi
++#define A__NAME__ls arm_instr_mov_pc__ls
++#define A__NAME__ge arm_instr_mov_pc__ge
++#define A__NAME__lt arm_instr_mov_pc__lt
++#define A__NAME__gt arm_instr_mov_pc__gt
++#define A__NAME__le arm_instr_mov_pc__le
++#define A__PC
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bic_pc
++#define A__NAME__eq arm_instr_bic_pc__eq
++#define A__NAME__ne arm_instr_bic_pc__ne
++#define A__NAME__cs arm_instr_bic_pc__cs
++#define A__NAME__cc arm_instr_bic_pc__cc
++#define A__NAME__mi arm_instr_bic_pc__mi
++#define A__NAME__pl arm_instr_bic_pc__pl
++#define A__NAME__vs arm_instr_bic_pc__vs
++#define A__NAME__vc arm_instr_bic_pc__vc
++#define A__NAME__hi arm_instr_bic_pc__hi
++#define A__NAME__ls arm_instr_bic_pc__ls
++#define A__NAME__ge arm_instr_bic_pc__ge
++#define A__NAME__lt arm_instr_bic_pc__lt
++#define A__NAME__gt arm_instr_bic_pc__gt
++#define A__NAME__le arm_instr_bic_pc__le
++#define A__PC
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvn_pc
++#define A__NAME__eq arm_instr_mvn_pc__eq
++#define A__NAME__ne arm_instr_mvn_pc__ne
++#define A__NAME__cs arm_instr_mvn_pc__cs
++#define A__NAME__cc arm_instr_mvn_pc__cc
++#define A__NAME__mi arm_instr_mvn_pc__mi
++#define A__NAME__pl arm_instr_mvn_pc__pl
++#define A__NAME__vs arm_instr_mvn_pc__vs
++#define A__NAME__vc arm_instr_mvn_pc__vc
++#define A__NAME__hi arm_instr_mvn_pc__hi
++#define A__NAME__ls arm_instr_mvn_pc__ls
++#define A__NAME__ge arm_instr_mvn_pc__ge
++#define A__NAME__lt arm_instr_mvn_pc__lt
++#define A__NAME__gt arm_instr_mvn_pc__gt
++#define A__NAME__le arm_instr_mvn_pc__le
++#define A__PC
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_ands_pc
++#define A__NAME__eq arm_instr_ands_pc__eq
++#define A__NAME__ne arm_instr_ands_pc__ne
++#define A__NAME__cs arm_instr_ands_pc__cs
++#define A__NAME__cc arm_instr_ands_pc__cc
++#define A__NAME__mi arm_instr_ands_pc__mi
++#define A__NAME__pl arm_instr_ands_pc__pl
++#define A__NAME__vs arm_instr_ands_pc__vs
++#define A__NAME__vc arm_instr_ands_pc__vc
++#define A__NAME__hi arm_instr_ands_pc__hi
++#define A__NAME__ls arm_instr_ands_pc__ls
++#define A__NAME__ge arm_instr_ands_pc__ge
++#define A__NAME__lt arm_instr_ands_pc__lt
++#define A__NAME__gt arm_instr_ands_pc__gt
++#define A__NAME__le arm_instr_ands_pc__le
++#define A__S
++#define A__PC
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eors_pc
++#define A__NAME__eq arm_instr_eors_pc__eq
++#define A__NAME__ne arm_instr_eors_pc__ne
++#define A__NAME__cs arm_instr_eors_pc__cs
++#define A__NAME__cc arm_instr_eors_pc__cc
++#define A__NAME__mi arm_instr_eors_pc__mi
++#define A__NAME__pl arm_instr_eors_pc__pl
++#define A__NAME__vs arm_instr_eors_pc__vs
++#define A__NAME__vc arm_instr_eors_pc__vc
++#define A__NAME__hi arm_instr_eors_pc__hi
++#define A__NAME__ls arm_instr_eors_pc__ls
++#define A__NAME__ge arm_instr_eors_pc__ge
++#define A__NAME__lt arm_instr_eors_pc__lt
++#define A__NAME__gt arm_instr_eors_pc__gt
++#define A__NAME__le arm_instr_eors_pc__le
++#define A__S
++#define A__PC
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_subs_pc
++#define A__NAME__eq arm_instr_subs_pc__eq
++#define A__NAME__ne arm_instr_subs_pc__ne
++#define A__NAME__cs arm_instr_subs_pc__cs
++#define A__NAME__cc arm_instr_subs_pc__cc
++#define A__NAME__mi arm_instr_subs_pc__mi
++#define A__NAME__pl arm_instr_subs_pc__pl
++#define A__NAME__vs arm_instr_subs_pc__vs
++#define A__NAME__vc arm_instr_subs_pc__vc
++#define A__NAME__hi arm_instr_subs_pc__hi
++#define A__NAME__ls arm_instr_subs_pc__ls
++#define A__NAME__ge arm_instr_subs_pc__ge
++#define A__NAME__lt arm_instr_subs_pc__lt
++#define A__NAME__gt arm_instr_subs_pc__gt
++#define A__NAME__le arm_instr_subs_pc__le
++#define A__S
++#define A__PC
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsbs_pc
++#define A__NAME__eq arm_instr_rsbs_pc__eq
++#define A__NAME__ne arm_instr_rsbs_pc__ne
++#define A__NAME__cs arm_instr_rsbs_pc__cs
++#define A__NAME__cc arm_instr_rsbs_pc__cc
++#define A__NAME__mi arm_instr_rsbs_pc__mi
++#define A__NAME__pl arm_instr_rsbs_pc__pl
++#define A__NAME__vs arm_instr_rsbs_pc__vs
++#define A__NAME__vc arm_instr_rsbs_pc__vc
++#define A__NAME__hi arm_instr_rsbs_pc__hi
++#define A__NAME__ls arm_instr_rsbs_pc__ls
++#define A__NAME__ge arm_instr_rsbs_pc__ge
++#define A__NAME__lt arm_instr_rsbs_pc__lt
++#define A__NAME__gt arm_instr_rsbs_pc__gt
++#define A__NAME__le arm_instr_rsbs_pc__le
++#define A__S
++#define A__PC
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adds_pc
++#define A__NAME__eq arm_instr_adds_pc__eq
++#define A__NAME__ne arm_instr_adds_pc__ne
++#define A__NAME__cs arm_instr_adds_pc__cs
++#define A__NAME__cc arm_instr_adds_pc__cc
++#define A__NAME__mi arm_instr_adds_pc__mi
++#define A__NAME__pl arm_instr_adds_pc__pl
++#define A__NAME__vs arm_instr_adds_pc__vs
++#define A__NAME__vc arm_instr_adds_pc__vc
++#define A__NAME__hi arm_instr_adds_pc__hi
++#define A__NAME__ls arm_instr_adds_pc__ls
++#define A__NAME__ge arm_instr_adds_pc__ge
++#define A__NAME__lt arm_instr_adds_pc__lt
++#define A__NAME__gt arm_instr_adds_pc__gt
++#define A__NAME__le arm_instr_adds_pc__le
++#define A__S
++#define A__PC
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adcs_pc
++#define A__NAME__eq arm_instr_adcs_pc__eq
++#define A__NAME__ne arm_instr_adcs_pc__ne
++#define A__NAME__cs arm_instr_adcs_pc__cs
++#define A__NAME__cc arm_instr_adcs_pc__cc
++#define A__NAME__mi arm_instr_adcs_pc__mi
++#define A__NAME__pl arm_instr_adcs_pc__pl
++#define A__NAME__vs arm_instr_adcs_pc__vs
++#define A__NAME__vc arm_instr_adcs_pc__vc
++#define A__NAME__hi arm_instr_adcs_pc__hi
++#define A__NAME__ls arm_instr_adcs_pc__ls
++#define A__NAME__ge arm_instr_adcs_pc__ge
++#define A__NAME__lt arm_instr_adcs_pc__lt
++#define A__NAME__gt arm_instr_adcs_pc__gt
++#define A__NAME__le arm_instr_adcs_pc__le
++#define A__S
++#define A__PC
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbcs_pc
++#define A__NAME__eq arm_instr_sbcs_pc__eq
++#define A__NAME__ne arm_instr_sbcs_pc__ne
++#define A__NAME__cs arm_instr_sbcs_pc__cs
++#define A__NAME__cc arm_instr_sbcs_pc__cc
++#define A__NAME__mi arm_instr_sbcs_pc__mi
++#define A__NAME__pl arm_instr_sbcs_pc__pl
++#define A__NAME__vs arm_instr_sbcs_pc__vs
++#define A__NAME__vc arm_instr_sbcs_pc__vc
++#define A__NAME__hi arm_instr_sbcs_pc__hi
++#define A__NAME__ls arm_instr_sbcs_pc__ls
++#define A__NAME__ge arm_instr_sbcs_pc__ge
++#define A__NAME__lt arm_instr_sbcs_pc__lt
++#define A__NAME__gt arm_instr_sbcs_pc__gt
++#define A__NAME__le arm_instr_sbcs_pc__le
++#define A__S
++#define A__PC
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rscs_pc
++#define A__NAME__eq arm_instr_rscs_pc__eq
++#define A__NAME__ne arm_instr_rscs_pc__ne
++#define A__NAME__cs arm_instr_rscs_pc__cs
++#define A__NAME__cc arm_instr_rscs_pc__cc
++#define A__NAME__mi arm_instr_rscs_pc__mi
++#define A__NAME__pl arm_instr_rscs_pc__pl
++#define A__NAME__vs arm_instr_rscs_pc__vs
++#define A__NAME__vc arm_instr_rscs_pc__vc
++#define A__NAME__hi arm_instr_rscs_pc__hi
++#define A__NAME__ls arm_instr_rscs_pc__ls
++#define A__NAME__ge arm_instr_rscs_pc__ge
++#define A__NAME__lt arm_instr_rscs_pc__lt
++#define A__NAME__gt arm_instr_rscs_pc__gt
++#define A__NAME__le arm_instr_rscs_pc__le
++#define A__S
++#define A__PC
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_tsts_pc
++#define A__NAME__eq arm_instr_tsts_pc__eq
++#define A__NAME__ne arm_instr_tsts_pc__ne
++#define A__NAME__cs arm_instr_tsts_pc__cs
++#define A__NAME__cc arm_instr_tsts_pc__cc
++#define A__NAME__mi arm_instr_tsts_pc__mi
++#define A__NAME__pl arm_instr_tsts_pc__pl
++#define A__NAME__vs arm_instr_tsts_pc__vs
++#define A__NAME__vc arm_instr_tsts_pc__vc
++#define A__NAME__hi arm_instr_tsts_pc__hi
++#define A__NAME__ls arm_instr_tsts_pc__ls
++#define A__NAME__ge arm_instr_tsts_pc__ge
++#define A__NAME__lt arm_instr_tsts_pc__lt
++#define A__NAME__gt arm_instr_tsts_pc__gt
++#define A__NAME__le arm_instr_tsts_pc__le
++#define A__S
++#define A__PC
++#define A__TST
++#include "cpu_arm_instr_dpi.c"
++#undef A__TST
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_teqs_pc
++#define A__NAME__eq arm_instr_teqs_pc__eq
++#define A__NAME__ne arm_instr_teqs_pc__ne
++#define A__NAME__cs arm_instr_teqs_pc__cs
++#define A__NAME__cc arm_instr_teqs_pc__cc
++#define A__NAME__mi arm_instr_teqs_pc__mi
++#define A__NAME__pl arm_instr_teqs_pc__pl
++#define A__NAME__vs arm_instr_teqs_pc__vs
++#define A__NAME__vc arm_instr_teqs_pc__vc
++#define A__NAME__hi arm_instr_teqs_pc__hi
++#define A__NAME__ls arm_instr_teqs_pc__ls
++#define A__NAME__ge arm_instr_teqs_pc__ge
++#define A__NAME__lt arm_instr_teqs_pc__lt
++#define A__NAME__gt arm_instr_teqs_pc__gt
++#define A__NAME__le arm_instr_teqs_pc__le
++#define A__S
++#define A__PC
++#define A__TEQ
++#include "cpu_arm_instr_dpi.c"
++#undef A__TEQ
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmps_pc
++#define A__NAME__eq arm_instr_cmps_pc__eq
++#define A__NAME__ne arm_instr_cmps_pc__ne
++#define A__NAME__cs arm_instr_cmps_pc__cs
++#define A__NAME__cc arm_instr_cmps_pc__cc
++#define A__NAME__mi arm_instr_cmps_pc__mi
++#define A__NAME__pl arm_instr_cmps_pc__pl
++#define A__NAME__vs arm_instr_cmps_pc__vs
++#define A__NAME__vc arm_instr_cmps_pc__vc
++#define A__NAME__hi arm_instr_cmps_pc__hi
++#define A__NAME__ls arm_instr_cmps_pc__ls
++#define A__NAME__ge arm_instr_cmps_pc__ge
++#define A__NAME__lt arm_instr_cmps_pc__lt
++#define A__NAME__gt arm_instr_cmps_pc__gt
++#define A__NAME__le arm_instr_cmps_pc__le
++#define A__S
++#define A__PC
++#define A__CMP
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMP
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmns_pc
++#define A__NAME__eq arm_instr_cmns_pc__eq
++#define A__NAME__ne arm_instr_cmns_pc__ne
++#define A__NAME__cs arm_instr_cmns_pc__cs
++#define A__NAME__cc arm_instr_cmns_pc__cc
++#define A__NAME__mi arm_instr_cmns_pc__mi
++#define A__NAME__pl arm_instr_cmns_pc__pl
++#define A__NAME__vs arm_instr_cmns_pc__vs
++#define A__NAME__vc arm_instr_cmns_pc__vc
++#define A__NAME__hi arm_instr_cmns_pc__hi
++#define A__NAME__ls arm_instr_cmns_pc__ls
++#define A__NAME__ge arm_instr_cmns_pc__ge
++#define A__NAME__lt arm_instr_cmns_pc__lt
++#define A__NAME__gt arm_instr_cmns_pc__gt
++#define A__NAME__le arm_instr_cmns_pc__le
++#define A__S
++#define A__PC
++#define A__CMN
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMN
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orrs_pc
++#define A__NAME__eq arm_instr_orrs_pc__eq
++#define A__NAME__ne arm_instr_orrs_pc__ne
++#define A__NAME__cs arm_instr_orrs_pc__cs
++#define A__NAME__cc arm_instr_orrs_pc__cc
++#define A__NAME__mi arm_instr_orrs_pc__mi
++#define A__NAME__pl arm_instr_orrs_pc__pl
++#define A__NAME__vs arm_instr_orrs_pc__vs
++#define A__NAME__vc arm_instr_orrs_pc__vc
++#define A__NAME__hi arm_instr_orrs_pc__hi
++#define A__NAME__ls arm_instr_orrs_pc__ls
++#define A__NAME__ge arm_instr_orrs_pc__ge
++#define A__NAME__lt arm_instr_orrs_pc__lt
++#define A__NAME__gt arm_instr_orrs_pc__gt
++#define A__NAME__le arm_instr_orrs_pc__le
++#define A__S
++#define A__PC
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_movs_pc
++#define A__NAME__eq arm_instr_movs_pc__eq
++#define A__NAME__ne arm_instr_movs_pc__ne
++#define A__NAME__cs arm_instr_movs_pc__cs
++#define A__NAME__cc arm_instr_movs_pc__cc
++#define A__NAME__mi arm_instr_movs_pc__mi
++#define A__NAME__pl arm_instr_movs_pc__pl
++#define A__NAME__vs arm_instr_movs_pc__vs
++#define A__NAME__vc arm_instr_movs_pc__vc
++#define A__NAME__hi arm_instr_movs_pc__hi
++#define A__NAME__ls arm_instr_movs_pc__ls
++#define A__NAME__ge arm_instr_movs_pc__ge
++#define A__NAME__lt arm_instr_movs_pc__lt
++#define A__NAME__gt arm_instr_movs_pc__gt
++#define A__NAME__le arm_instr_movs_pc__le
++#define A__S
++#define A__PC
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bics_pc
++#define A__NAME__eq arm_instr_bics_pc__eq
++#define A__NAME__ne arm_instr_bics_pc__ne
++#define A__NAME__cs arm_instr_bics_pc__cs
++#define A__NAME__cc arm_instr_bics_pc__cc
++#define A__NAME__mi arm_instr_bics_pc__mi
++#define A__NAME__pl arm_instr_bics_pc__pl
++#define A__NAME__vs arm_instr_bics_pc__vs
++#define A__NAME__vc arm_instr_bics_pc__vc
++#define A__NAME__hi arm_instr_bics_pc__hi
++#define A__NAME__ls arm_instr_bics_pc__ls
++#define A__NAME__ge arm_instr_bics_pc__ge
++#define A__NAME__lt arm_instr_bics_pc__lt
++#define A__NAME__gt arm_instr_bics_pc__gt
++#define A__NAME__le arm_instr_bics_pc__le
++#define A__S
++#define A__PC
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvns_pc
++#define A__NAME__eq arm_instr_mvns_pc__eq
++#define A__NAME__ne arm_instr_mvns_pc__ne
++#define A__NAME__cs arm_instr_mvns_pc__cs
++#define A__NAME__cc arm_instr_mvns_pc__cc
++#define A__NAME__mi arm_instr_mvns_pc__mi
++#define A__NAME__pl arm_instr_mvns_pc__pl
++#define A__NAME__vs arm_instr_mvns_pc__vs
++#define A__NAME__vc arm_instr_mvns_pc__vc
++#define A__NAME__hi arm_instr_mvns_pc__hi
++#define A__NAME__ls arm_instr_mvns_pc__ls
++#define A__NAME__ge arm_instr_mvns_pc__ge
++#define A__NAME__lt arm_instr_mvns_pc__lt
++#define A__NAME__gt arm_instr_mvns_pc__gt
++#define A__NAME__le arm_instr_mvns_pc__le
++#define A__S
++#define A__PC
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__S
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_and_reg
++#define A__NAME__eq arm_instr_and_reg__eq
++#define A__NAME__ne arm_instr_and_reg__ne
++#define A__NAME__cs arm_instr_and_reg__cs
++#define A__NAME__cc arm_instr_and_reg__cc
++#define A__NAME__mi arm_instr_and_reg__mi
++#define A__NAME__pl arm_instr_and_reg__pl
++#define A__NAME__vs arm_instr_and_reg__vs
++#define A__NAME__vc arm_instr_and_reg__vc
++#define A__NAME__hi arm_instr_and_reg__hi
++#define A__NAME__ls arm_instr_and_reg__ls
++#define A__NAME__ge arm_instr_and_reg__ge
++#define A__NAME__lt arm_instr_and_reg__lt
++#define A__NAME__gt arm_instr_and_reg__gt
++#define A__NAME__le arm_instr_and_reg__le
++#define A__REG
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eor_reg
++#define A__NAME__eq arm_instr_eor_reg__eq
++#define A__NAME__ne arm_instr_eor_reg__ne
++#define A__NAME__cs arm_instr_eor_reg__cs
++#define A__NAME__cc arm_instr_eor_reg__cc
++#define A__NAME__mi arm_instr_eor_reg__mi
++#define A__NAME__pl arm_instr_eor_reg__pl
++#define A__NAME__vs arm_instr_eor_reg__vs
++#define A__NAME__vc arm_instr_eor_reg__vc
++#define A__NAME__hi arm_instr_eor_reg__hi
++#define A__NAME__ls arm_instr_eor_reg__ls
++#define A__NAME__ge arm_instr_eor_reg__ge
++#define A__NAME__lt arm_instr_eor_reg__lt
++#define A__NAME__gt arm_instr_eor_reg__gt
++#define A__NAME__le arm_instr_eor_reg__le
++#define A__REG
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sub_reg
++#define A__NAME__eq arm_instr_sub_reg__eq
++#define A__NAME__ne arm_instr_sub_reg__ne
++#define A__NAME__cs arm_instr_sub_reg__cs
++#define A__NAME__cc arm_instr_sub_reg__cc
++#define A__NAME__mi arm_instr_sub_reg__mi
++#define A__NAME__pl arm_instr_sub_reg__pl
++#define A__NAME__vs arm_instr_sub_reg__vs
++#define A__NAME__vc arm_instr_sub_reg__vc
++#define A__NAME__hi arm_instr_sub_reg__hi
++#define A__NAME__ls arm_instr_sub_reg__ls
++#define A__NAME__ge arm_instr_sub_reg__ge
++#define A__NAME__lt arm_instr_sub_reg__lt
++#define A__NAME__gt arm_instr_sub_reg__gt
++#define A__NAME__le arm_instr_sub_reg__le
++#define A__REG
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsb_reg
++#define A__NAME__eq arm_instr_rsb_reg__eq
++#define A__NAME__ne arm_instr_rsb_reg__ne
++#define A__NAME__cs arm_instr_rsb_reg__cs
++#define A__NAME__cc arm_instr_rsb_reg__cc
++#define A__NAME__mi arm_instr_rsb_reg__mi
++#define A__NAME__pl arm_instr_rsb_reg__pl
++#define A__NAME__vs arm_instr_rsb_reg__vs
++#define A__NAME__vc arm_instr_rsb_reg__vc
++#define A__NAME__hi arm_instr_rsb_reg__hi
++#define A__NAME__ls arm_instr_rsb_reg__ls
++#define A__NAME__ge arm_instr_rsb_reg__ge
++#define A__NAME__lt arm_instr_rsb_reg__lt
++#define A__NAME__gt arm_instr_rsb_reg__gt
++#define A__NAME__le arm_instr_rsb_reg__le
++#define A__REG
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_add_reg
++#define A__NAME__eq arm_instr_add_reg__eq
++#define A__NAME__ne arm_instr_add_reg__ne
++#define A__NAME__cs arm_instr_add_reg__cs
++#define A__NAME__cc arm_instr_add_reg__cc
++#define A__NAME__mi arm_instr_add_reg__mi
++#define A__NAME__pl arm_instr_add_reg__pl
++#define A__NAME__vs arm_instr_add_reg__vs
++#define A__NAME__vc arm_instr_add_reg__vc
++#define A__NAME__hi arm_instr_add_reg__hi
++#define A__NAME__ls arm_instr_add_reg__ls
++#define A__NAME__ge arm_instr_add_reg__ge
++#define A__NAME__lt arm_instr_add_reg__lt
++#define A__NAME__gt arm_instr_add_reg__gt
++#define A__NAME__le arm_instr_add_reg__le
++#define A__REG
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adc_reg
++#define A__NAME__eq arm_instr_adc_reg__eq
++#define A__NAME__ne arm_instr_adc_reg__ne
++#define A__NAME__cs arm_instr_adc_reg__cs
++#define A__NAME__cc arm_instr_adc_reg__cc
++#define A__NAME__mi arm_instr_adc_reg__mi
++#define A__NAME__pl arm_instr_adc_reg__pl
++#define A__NAME__vs arm_instr_adc_reg__vs
++#define A__NAME__vc arm_instr_adc_reg__vc
++#define A__NAME__hi arm_instr_adc_reg__hi
++#define A__NAME__ls arm_instr_adc_reg__ls
++#define A__NAME__ge arm_instr_adc_reg__ge
++#define A__NAME__lt arm_instr_adc_reg__lt
++#define A__NAME__gt arm_instr_adc_reg__gt
++#define A__NAME__le arm_instr_adc_reg__le
++#define A__REG
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbc_reg
++#define A__NAME__eq arm_instr_sbc_reg__eq
++#define A__NAME__ne arm_instr_sbc_reg__ne
++#define A__NAME__cs arm_instr_sbc_reg__cs
++#define A__NAME__cc arm_instr_sbc_reg__cc
++#define A__NAME__mi arm_instr_sbc_reg__mi
++#define A__NAME__pl arm_instr_sbc_reg__pl
++#define A__NAME__vs arm_instr_sbc_reg__vs
++#define A__NAME__vc arm_instr_sbc_reg__vc
++#define A__NAME__hi arm_instr_sbc_reg__hi
++#define A__NAME__ls arm_instr_sbc_reg__ls
++#define A__NAME__ge arm_instr_sbc_reg__ge
++#define A__NAME__lt arm_instr_sbc_reg__lt
++#define A__NAME__gt arm_instr_sbc_reg__gt
++#define A__NAME__le arm_instr_sbc_reg__le
++#define A__REG
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsc_reg
++#define A__NAME__eq arm_instr_rsc_reg__eq
++#define A__NAME__ne arm_instr_rsc_reg__ne
++#define A__NAME__cs arm_instr_rsc_reg__cs
++#define A__NAME__cc arm_instr_rsc_reg__cc
++#define A__NAME__mi arm_instr_rsc_reg__mi
++#define A__NAME__pl arm_instr_rsc_reg__pl
++#define A__NAME__vs arm_instr_rsc_reg__vs
++#define A__NAME__vc arm_instr_rsc_reg__vc
++#define A__NAME__hi arm_instr_rsc_reg__hi
++#define A__NAME__ls arm_instr_rsc_reg__ls
++#define A__NAME__ge arm_instr_rsc_reg__ge
++#define A__NAME__lt arm_instr_rsc_reg__lt
++#define A__NAME__gt arm_instr_rsc_reg__gt
++#define A__NAME__le arm_instr_rsc_reg__le
++#define A__REG
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orr_reg
++#define A__NAME__eq arm_instr_orr_reg__eq
++#define A__NAME__ne arm_instr_orr_reg__ne
++#define A__NAME__cs arm_instr_orr_reg__cs
++#define A__NAME__cc arm_instr_orr_reg__cc
++#define A__NAME__mi arm_instr_orr_reg__mi
++#define A__NAME__pl arm_instr_orr_reg__pl
++#define A__NAME__vs arm_instr_orr_reg__vs
++#define A__NAME__vc arm_instr_orr_reg__vc
++#define A__NAME__hi arm_instr_orr_reg__hi
++#define A__NAME__ls arm_instr_orr_reg__ls
++#define A__NAME__ge arm_instr_orr_reg__ge
++#define A__NAME__lt arm_instr_orr_reg__lt
++#define A__NAME__gt arm_instr_orr_reg__gt
++#define A__NAME__le arm_instr_orr_reg__le
++#define A__REG
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mov_reg
++#define A__NAME__eq arm_instr_mov_reg__eq
++#define A__NAME__ne arm_instr_mov_reg__ne
++#define A__NAME__cs arm_instr_mov_reg__cs
++#define A__NAME__cc arm_instr_mov_reg__cc
++#define A__NAME__mi arm_instr_mov_reg__mi
++#define A__NAME__pl arm_instr_mov_reg__pl
++#define A__NAME__vs arm_instr_mov_reg__vs
++#define A__NAME__vc arm_instr_mov_reg__vc
++#define A__NAME__hi arm_instr_mov_reg__hi
++#define A__NAME__ls arm_instr_mov_reg__ls
++#define A__NAME__ge arm_instr_mov_reg__ge
++#define A__NAME__lt arm_instr_mov_reg__lt
++#define A__NAME__gt arm_instr_mov_reg__gt
++#define A__NAME__le arm_instr_mov_reg__le
++#define A__REG
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bic_reg
++#define A__NAME__eq arm_instr_bic_reg__eq
++#define A__NAME__ne arm_instr_bic_reg__ne
++#define A__NAME__cs arm_instr_bic_reg__cs
++#define A__NAME__cc arm_instr_bic_reg__cc
++#define A__NAME__mi arm_instr_bic_reg__mi
++#define A__NAME__pl arm_instr_bic_reg__pl
++#define A__NAME__vs arm_instr_bic_reg__vs
++#define A__NAME__vc arm_instr_bic_reg__vc
++#define A__NAME__hi arm_instr_bic_reg__hi
++#define A__NAME__ls arm_instr_bic_reg__ls
++#define A__NAME__ge arm_instr_bic_reg__ge
++#define A__NAME__lt arm_instr_bic_reg__lt
++#define A__NAME__gt arm_instr_bic_reg__gt
++#define A__NAME__le arm_instr_bic_reg__le
++#define A__REG
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvn_reg
++#define A__NAME__eq arm_instr_mvn_reg__eq
++#define A__NAME__ne arm_instr_mvn_reg__ne
++#define A__NAME__cs arm_instr_mvn_reg__cs
++#define A__NAME__cc arm_instr_mvn_reg__cc
++#define A__NAME__mi arm_instr_mvn_reg__mi
++#define A__NAME__pl arm_instr_mvn_reg__pl
++#define A__NAME__vs arm_instr_mvn_reg__vs
++#define A__NAME__vc arm_instr_mvn_reg__vc
++#define A__NAME__hi arm_instr_mvn_reg__hi
++#define A__NAME__ls arm_instr_mvn_reg__ls
++#define A__NAME__ge arm_instr_mvn_reg__ge
++#define A__NAME__lt arm_instr_mvn_reg__lt
++#define A__NAME__gt arm_instr_mvn_reg__gt
++#define A__NAME__le arm_instr_mvn_reg__le
++#define A__REG
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_ands_reg
++#define A__NAME__eq arm_instr_ands_reg__eq
++#define A__NAME__ne arm_instr_ands_reg__ne
++#define A__NAME__cs arm_instr_ands_reg__cs
++#define A__NAME__cc arm_instr_ands_reg__cc
++#define A__NAME__mi arm_instr_ands_reg__mi
++#define A__NAME__pl arm_instr_ands_reg__pl
++#define A__NAME__vs arm_instr_ands_reg__vs
++#define A__NAME__vc arm_instr_ands_reg__vc
++#define A__NAME__hi arm_instr_ands_reg__hi
++#define A__NAME__ls arm_instr_ands_reg__ls
++#define A__NAME__ge arm_instr_ands_reg__ge
++#define A__NAME__lt arm_instr_ands_reg__lt
++#define A__NAME__gt arm_instr_ands_reg__gt
++#define A__NAME__le arm_instr_ands_reg__le
++#define A__S
++#define A__REG
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eors_reg
++#define A__NAME__eq arm_instr_eors_reg__eq
++#define A__NAME__ne arm_instr_eors_reg__ne
++#define A__NAME__cs arm_instr_eors_reg__cs
++#define A__NAME__cc arm_instr_eors_reg__cc
++#define A__NAME__mi arm_instr_eors_reg__mi
++#define A__NAME__pl arm_instr_eors_reg__pl
++#define A__NAME__vs arm_instr_eors_reg__vs
++#define A__NAME__vc arm_instr_eors_reg__vc
++#define A__NAME__hi arm_instr_eors_reg__hi
++#define A__NAME__ls arm_instr_eors_reg__ls
++#define A__NAME__ge arm_instr_eors_reg__ge
++#define A__NAME__lt arm_instr_eors_reg__lt
++#define A__NAME__gt arm_instr_eors_reg__gt
++#define A__NAME__le arm_instr_eors_reg__le
++#define A__S
++#define A__REG
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_subs_reg
++#define A__NAME__eq arm_instr_subs_reg__eq
++#define A__NAME__ne arm_instr_subs_reg__ne
++#define A__NAME__cs arm_instr_subs_reg__cs
++#define A__NAME__cc arm_instr_subs_reg__cc
++#define A__NAME__mi arm_instr_subs_reg__mi
++#define A__NAME__pl arm_instr_subs_reg__pl
++#define A__NAME__vs arm_instr_subs_reg__vs
++#define A__NAME__vc arm_instr_subs_reg__vc
++#define A__NAME__hi arm_instr_subs_reg__hi
++#define A__NAME__ls arm_instr_subs_reg__ls
++#define A__NAME__ge arm_instr_subs_reg__ge
++#define A__NAME__lt arm_instr_subs_reg__lt
++#define A__NAME__gt arm_instr_subs_reg__gt
++#define A__NAME__le arm_instr_subs_reg__le
++#define A__S
++#define A__REG
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsbs_reg
++#define A__NAME__eq arm_instr_rsbs_reg__eq
++#define A__NAME__ne arm_instr_rsbs_reg__ne
++#define A__NAME__cs arm_instr_rsbs_reg__cs
++#define A__NAME__cc arm_instr_rsbs_reg__cc
++#define A__NAME__mi arm_instr_rsbs_reg__mi
++#define A__NAME__pl arm_instr_rsbs_reg__pl
++#define A__NAME__vs arm_instr_rsbs_reg__vs
++#define A__NAME__vc arm_instr_rsbs_reg__vc
++#define A__NAME__hi arm_instr_rsbs_reg__hi
++#define A__NAME__ls arm_instr_rsbs_reg__ls
++#define A__NAME__ge arm_instr_rsbs_reg__ge
++#define A__NAME__lt arm_instr_rsbs_reg__lt
++#define A__NAME__gt arm_instr_rsbs_reg__gt
++#define A__NAME__le arm_instr_rsbs_reg__le
++#define A__S
++#define A__REG
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adds_reg
++#define A__NAME__eq arm_instr_adds_reg__eq
++#define A__NAME__ne arm_instr_adds_reg__ne
++#define A__NAME__cs arm_instr_adds_reg__cs
++#define A__NAME__cc arm_instr_adds_reg__cc
++#define A__NAME__mi arm_instr_adds_reg__mi
++#define A__NAME__pl arm_instr_adds_reg__pl
++#define A__NAME__vs arm_instr_adds_reg__vs
++#define A__NAME__vc arm_instr_adds_reg__vc
++#define A__NAME__hi arm_instr_adds_reg__hi
++#define A__NAME__ls arm_instr_adds_reg__ls
++#define A__NAME__ge arm_instr_adds_reg__ge
++#define A__NAME__lt arm_instr_adds_reg__lt
++#define A__NAME__gt arm_instr_adds_reg__gt
++#define A__NAME__le arm_instr_adds_reg__le
++#define A__S
++#define A__REG
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adcs_reg
++#define A__NAME__eq arm_instr_adcs_reg__eq
++#define A__NAME__ne arm_instr_adcs_reg__ne
++#define A__NAME__cs arm_instr_adcs_reg__cs
++#define A__NAME__cc arm_instr_adcs_reg__cc
++#define A__NAME__mi arm_instr_adcs_reg__mi
++#define A__NAME__pl arm_instr_adcs_reg__pl
++#define A__NAME__vs arm_instr_adcs_reg__vs
++#define A__NAME__vc arm_instr_adcs_reg__vc
++#define A__NAME__hi arm_instr_adcs_reg__hi
++#define A__NAME__ls arm_instr_adcs_reg__ls
++#define A__NAME__ge arm_instr_adcs_reg__ge
++#define A__NAME__lt arm_instr_adcs_reg__lt
++#define A__NAME__gt arm_instr_adcs_reg__gt
++#define A__NAME__le arm_instr_adcs_reg__le
++#define A__S
++#define A__REG
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbcs_reg
++#define A__NAME__eq arm_instr_sbcs_reg__eq
++#define A__NAME__ne arm_instr_sbcs_reg__ne
++#define A__NAME__cs arm_instr_sbcs_reg__cs
++#define A__NAME__cc arm_instr_sbcs_reg__cc
++#define A__NAME__mi arm_instr_sbcs_reg__mi
++#define A__NAME__pl arm_instr_sbcs_reg__pl
++#define A__NAME__vs arm_instr_sbcs_reg__vs
++#define A__NAME__vc arm_instr_sbcs_reg__vc
++#define A__NAME__hi arm_instr_sbcs_reg__hi
++#define A__NAME__ls arm_instr_sbcs_reg__ls
++#define A__NAME__ge arm_instr_sbcs_reg__ge
++#define A__NAME__lt arm_instr_sbcs_reg__lt
++#define A__NAME__gt arm_instr_sbcs_reg__gt
++#define A__NAME__le arm_instr_sbcs_reg__le
++#define A__S
++#define A__REG
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rscs_reg
++#define A__NAME__eq arm_instr_rscs_reg__eq
++#define A__NAME__ne arm_instr_rscs_reg__ne
++#define A__NAME__cs arm_instr_rscs_reg__cs
++#define A__NAME__cc arm_instr_rscs_reg__cc
++#define A__NAME__mi arm_instr_rscs_reg__mi
++#define A__NAME__pl arm_instr_rscs_reg__pl
++#define A__NAME__vs arm_instr_rscs_reg__vs
++#define A__NAME__vc arm_instr_rscs_reg__vc
++#define A__NAME__hi arm_instr_rscs_reg__hi
++#define A__NAME__ls arm_instr_rscs_reg__ls
++#define A__NAME__ge arm_instr_rscs_reg__ge
++#define A__NAME__lt arm_instr_rscs_reg__lt
++#define A__NAME__gt arm_instr_rscs_reg__gt
++#define A__NAME__le arm_instr_rscs_reg__le
++#define A__S
++#define A__REG
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_tsts_reg
++#define A__NAME__eq arm_instr_tsts_reg__eq
++#define A__NAME__ne arm_instr_tsts_reg__ne
++#define A__NAME__cs arm_instr_tsts_reg__cs
++#define A__NAME__cc arm_instr_tsts_reg__cc
++#define A__NAME__mi arm_instr_tsts_reg__mi
++#define A__NAME__pl arm_instr_tsts_reg__pl
++#define A__NAME__vs arm_instr_tsts_reg__vs
++#define A__NAME__vc arm_instr_tsts_reg__vc
++#define A__NAME__hi arm_instr_tsts_reg__hi
++#define A__NAME__ls arm_instr_tsts_reg__ls
++#define A__NAME__ge arm_instr_tsts_reg__ge
++#define A__NAME__lt arm_instr_tsts_reg__lt
++#define A__NAME__gt arm_instr_tsts_reg__gt
++#define A__NAME__le arm_instr_tsts_reg__le
++#define A__S
++#define A__REG
++#define A__TST
++#include "cpu_arm_instr_dpi.c"
++#undef A__TST
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_teqs_reg
++#define A__NAME__eq arm_instr_teqs_reg__eq
++#define A__NAME__ne arm_instr_teqs_reg__ne
++#define A__NAME__cs arm_instr_teqs_reg__cs
++#define A__NAME__cc arm_instr_teqs_reg__cc
++#define A__NAME__mi arm_instr_teqs_reg__mi
++#define A__NAME__pl arm_instr_teqs_reg__pl
++#define A__NAME__vs arm_instr_teqs_reg__vs
++#define A__NAME__vc arm_instr_teqs_reg__vc
++#define A__NAME__hi arm_instr_teqs_reg__hi
++#define A__NAME__ls arm_instr_teqs_reg__ls
++#define A__NAME__ge arm_instr_teqs_reg__ge
++#define A__NAME__lt arm_instr_teqs_reg__lt
++#define A__NAME__gt arm_instr_teqs_reg__gt
++#define A__NAME__le arm_instr_teqs_reg__le
++#define A__S
++#define A__REG
++#define A__TEQ
++#include "cpu_arm_instr_dpi.c"
++#undef A__TEQ
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmps_reg
++#define A__NAME__eq arm_instr_cmps_reg__eq
++#define A__NAME__ne arm_instr_cmps_reg__ne
++#define A__NAME__cs arm_instr_cmps_reg__cs
++#define A__NAME__cc arm_instr_cmps_reg__cc
++#define A__NAME__mi arm_instr_cmps_reg__mi
++#define A__NAME__pl arm_instr_cmps_reg__pl
++#define A__NAME__vs arm_instr_cmps_reg__vs
++#define A__NAME__vc arm_instr_cmps_reg__vc
++#define A__NAME__hi arm_instr_cmps_reg__hi
++#define A__NAME__ls arm_instr_cmps_reg__ls
++#define A__NAME__ge arm_instr_cmps_reg__ge
++#define A__NAME__lt arm_instr_cmps_reg__lt
++#define A__NAME__gt arm_instr_cmps_reg__gt
++#define A__NAME__le arm_instr_cmps_reg__le
++#define A__S
++#define A__REG
++#define A__CMP
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMP
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmns_reg
++#define A__NAME__eq arm_instr_cmns_reg__eq
++#define A__NAME__ne arm_instr_cmns_reg__ne
++#define A__NAME__cs arm_instr_cmns_reg__cs
++#define A__NAME__cc arm_instr_cmns_reg__cc
++#define A__NAME__mi arm_instr_cmns_reg__mi
++#define A__NAME__pl arm_instr_cmns_reg__pl
++#define A__NAME__vs arm_instr_cmns_reg__vs
++#define A__NAME__vc arm_instr_cmns_reg__vc
++#define A__NAME__hi arm_instr_cmns_reg__hi
++#define A__NAME__ls arm_instr_cmns_reg__ls
++#define A__NAME__ge arm_instr_cmns_reg__ge
++#define A__NAME__lt arm_instr_cmns_reg__lt
++#define A__NAME__gt arm_instr_cmns_reg__gt
++#define A__NAME__le arm_instr_cmns_reg__le
++#define A__S
++#define A__REG
++#define A__CMN
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMN
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orrs_reg
++#define A__NAME__eq arm_instr_orrs_reg__eq
++#define A__NAME__ne arm_instr_orrs_reg__ne
++#define A__NAME__cs arm_instr_orrs_reg__cs
++#define A__NAME__cc arm_instr_orrs_reg__cc
++#define A__NAME__mi arm_instr_orrs_reg__mi
++#define A__NAME__pl arm_instr_orrs_reg__pl
++#define A__NAME__vs arm_instr_orrs_reg__vs
++#define A__NAME__vc arm_instr_orrs_reg__vc
++#define A__NAME__hi arm_instr_orrs_reg__hi
++#define A__NAME__ls arm_instr_orrs_reg__ls
++#define A__NAME__ge arm_instr_orrs_reg__ge
++#define A__NAME__lt arm_instr_orrs_reg__lt
++#define A__NAME__gt arm_instr_orrs_reg__gt
++#define A__NAME__le arm_instr_orrs_reg__le
++#define A__S
++#define A__REG
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_movs_reg
++#define A__NAME__eq arm_instr_movs_reg__eq
++#define A__NAME__ne arm_instr_movs_reg__ne
++#define A__NAME__cs arm_instr_movs_reg__cs
++#define A__NAME__cc arm_instr_movs_reg__cc
++#define A__NAME__mi arm_instr_movs_reg__mi
++#define A__NAME__pl arm_instr_movs_reg__pl
++#define A__NAME__vs arm_instr_movs_reg__vs
++#define A__NAME__vc arm_instr_movs_reg__vc
++#define A__NAME__hi arm_instr_movs_reg__hi
++#define A__NAME__ls arm_instr_movs_reg__ls
++#define A__NAME__ge arm_instr_movs_reg__ge
++#define A__NAME__lt arm_instr_movs_reg__lt
++#define A__NAME__gt arm_instr_movs_reg__gt
++#define A__NAME__le arm_instr_movs_reg__le
++#define A__S
++#define A__REG
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bics_reg
++#define A__NAME__eq arm_instr_bics_reg__eq
++#define A__NAME__ne arm_instr_bics_reg__ne
++#define A__NAME__cs arm_instr_bics_reg__cs
++#define A__NAME__cc arm_instr_bics_reg__cc
++#define A__NAME__mi arm_instr_bics_reg__mi
++#define A__NAME__pl arm_instr_bics_reg__pl
++#define A__NAME__vs arm_instr_bics_reg__vs
++#define A__NAME__vc arm_instr_bics_reg__vc
++#define A__NAME__hi arm_instr_bics_reg__hi
++#define A__NAME__ls arm_instr_bics_reg__ls
++#define A__NAME__ge arm_instr_bics_reg__ge
++#define A__NAME__lt arm_instr_bics_reg__lt
++#define A__NAME__gt arm_instr_bics_reg__gt
++#define A__NAME__le arm_instr_bics_reg__le
++#define A__S
++#define A__REG
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvns_reg
++#define A__NAME__eq arm_instr_mvns_reg__eq
++#define A__NAME__ne arm_instr_mvns_reg__ne
++#define A__NAME__cs arm_instr_mvns_reg__cs
++#define A__NAME__cc arm_instr_mvns_reg__cc
++#define A__NAME__mi arm_instr_mvns_reg__mi
++#define A__NAME__pl arm_instr_mvns_reg__pl
++#define A__NAME__vs arm_instr_mvns_reg__vs
++#define A__NAME__vc arm_instr_mvns_reg__vc
++#define A__NAME__hi arm_instr_mvns_reg__hi
++#define A__NAME__ls arm_instr_mvns_reg__ls
++#define A__NAME__ge arm_instr_mvns_reg__ge
++#define A__NAME__lt arm_instr_mvns_reg__lt
++#define A__NAME__gt arm_instr_mvns_reg__gt
++#define A__NAME__le arm_instr_mvns_reg__le
++#define A__S
++#define A__REG
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__S
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_and_pc_reg
++#define A__NAME__eq arm_instr_and_pc_reg__eq
++#define A__NAME__ne arm_instr_and_pc_reg__ne
++#define A__NAME__cs arm_instr_and_pc_reg__cs
++#define A__NAME__cc arm_instr_and_pc_reg__cc
++#define A__NAME__mi arm_instr_and_pc_reg__mi
++#define A__NAME__pl arm_instr_and_pc_reg__pl
++#define A__NAME__vs arm_instr_and_pc_reg__vs
++#define A__NAME__vc arm_instr_and_pc_reg__vc
++#define A__NAME__hi arm_instr_and_pc_reg__hi
++#define A__NAME__ls arm_instr_and_pc_reg__ls
++#define A__NAME__ge arm_instr_and_pc_reg__ge
++#define A__NAME__lt arm_instr_and_pc_reg__lt
++#define A__NAME__gt arm_instr_and_pc_reg__gt
++#define A__NAME__le arm_instr_and_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eor_pc_reg
++#define A__NAME__eq arm_instr_eor_pc_reg__eq
++#define A__NAME__ne arm_instr_eor_pc_reg__ne
++#define A__NAME__cs arm_instr_eor_pc_reg__cs
++#define A__NAME__cc arm_instr_eor_pc_reg__cc
++#define A__NAME__mi arm_instr_eor_pc_reg__mi
++#define A__NAME__pl arm_instr_eor_pc_reg__pl
++#define A__NAME__vs arm_instr_eor_pc_reg__vs
++#define A__NAME__vc arm_instr_eor_pc_reg__vc
++#define A__NAME__hi arm_instr_eor_pc_reg__hi
++#define A__NAME__ls arm_instr_eor_pc_reg__ls
++#define A__NAME__ge arm_instr_eor_pc_reg__ge
++#define A__NAME__lt arm_instr_eor_pc_reg__lt
++#define A__NAME__gt arm_instr_eor_pc_reg__gt
++#define A__NAME__le arm_instr_eor_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sub_pc_reg
++#define A__NAME__eq arm_instr_sub_pc_reg__eq
++#define A__NAME__ne arm_instr_sub_pc_reg__ne
++#define A__NAME__cs arm_instr_sub_pc_reg__cs
++#define A__NAME__cc arm_instr_sub_pc_reg__cc
++#define A__NAME__mi arm_instr_sub_pc_reg__mi
++#define A__NAME__pl arm_instr_sub_pc_reg__pl
++#define A__NAME__vs arm_instr_sub_pc_reg__vs
++#define A__NAME__vc arm_instr_sub_pc_reg__vc
++#define A__NAME__hi arm_instr_sub_pc_reg__hi
++#define A__NAME__ls arm_instr_sub_pc_reg__ls
++#define A__NAME__ge arm_instr_sub_pc_reg__ge
++#define A__NAME__lt arm_instr_sub_pc_reg__lt
++#define A__NAME__gt arm_instr_sub_pc_reg__gt
++#define A__NAME__le arm_instr_sub_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsb_pc_reg
++#define A__NAME__eq arm_instr_rsb_pc_reg__eq
++#define A__NAME__ne arm_instr_rsb_pc_reg__ne
++#define A__NAME__cs arm_instr_rsb_pc_reg__cs
++#define A__NAME__cc arm_instr_rsb_pc_reg__cc
++#define A__NAME__mi arm_instr_rsb_pc_reg__mi
++#define A__NAME__pl arm_instr_rsb_pc_reg__pl
++#define A__NAME__vs arm_instr_rsb_pc_reg__vs
++#define A__NAME__vc arm_instr_rsb_pc_reg__vc
++#define A__NAME__hi arm_instr_rsb_pc_reg__hi
++#define A__NAME__ls arm_instr_rsb_pc_reg__ls
++#define A__NAME__ge arm_instr_rsb_pc_reg__ge
++#define A__NAME__lt arm_instr_rsb_pc_reg__lt
++#define A__NAME__gt arm_instr_rsb_pc_reg__gt
++#define A__NAME__le arm_instr_rsb_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_add_pc_reg
++#define A__NAME__eq arm_instr_add_pc_reg__eq
++#define A__NAME__ne arm_instr_add_pc_reg__ne
++#define A__NAME__cs arm_instr_add_pc_reg__cs
++#define A__NAME__cc arm_instr_add_pc_reg__cc
++#define A__NAME__mi arm_instr_add_pc_reg__mi
++#define A__NAME__pl arm_instr_add_pc_reg__pl
++#define A__NAME__vs arm_instr_add_pc_reg__vs
++#define A__NAME__vc arm_instr_add_pc_reg__vc
++#define A__NAME__hi arm_instr_add_pc_reg__hi
++#define A__NAME__ls arm_instr_add_pc_reg__ls
++#define A__NAME__ge arm_instr_add_pc_reg__ge
++#define A__NAME__lt arm_instr_add_pc_reg__lt
++#define A__NAME__gt arm_instr_add_pc_reg__gt
++#define A__NAME__le arm_instr_add_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adc_pc_reg
++#define A__NAME__eq arm_instr_adc_pc_reg__eq
++#define A__NAME__ne arm_instr_adc_pc_reg__ne
++#define A__NAME__cs arm_instr_adc_pc_reg__cs
++#define A__NAME__cc arm_instr_adc_pc_reg__cc
++#define A__NAME__mi arm_instr_adc_pc_reg__mi
++#define A__NAME__pl arm_instr_adc_pc_reg__pl
++#define A__NAME__vs arm_instr_adc_pc_reg__vs
++#define A__NAME__vc arm_instr_adc_pc_reg__vc
++#define A__NAME__hi arm_instr_adc_pc_reg__hi
++#define A__NAME__ls arm_instr_adc_pc_reg__ls
++#define A__NAME__ge arm_instr_adc_pc_reg__ge
++#define A__NAME__lt arm_instr_adc_pc_reg__lt
++#define A__NAME__gt arm_instr_adc_pc_reg__gt
++#define A__NAME__le arm_instr_adc_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbc_pc_reg
++#define A__NAME__eq arm_instr_sbc_pc_reg__eq
++#define A__NAME__ne arm_instr_sbc_pc_reg__ne
++#define A__NAME__cs arm_instr_sbc_pc_reg__cs
++#define A__NAME__cc arm_instr_sbc_pc_reg__cc
++#define A__NAME__mi arm_instr_sbc_pc_reg__mi
++#define A__NAME__pl arm_instr_sbc_pc_reg__pl
++#define A__NAME__vs arm_instr_sbc_pc_reg__vs
++#define A__NAME__vc arm_instr_sbc_pc_reg__vc
++#define A__NAME__hi arm_instr_sbc_pc_reg__hi
++#define A__NAME__ls arm_instr_sbc_pc_reg__ls
++#define A__NAME__ge arm_instr_sbc_pc_reg__ge
++#define A__NAME__lt arm_instr_sbc_pc_reg__lt
++#define A__NAME__gt arm_instr_sbc_pc_reg__gt
++#define A__NAME__le arm_instr_sbc_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsc_pc_reg
++#define A__NAME__eq arm_instr_rsc_pc_reg__eq
++#define A__NAME__ne arm_instr_rsc_pc_reg__ne
++#define A__NAME__cs arm_instr_rsc_pc_reg__cs
++#define A__NAME__cc arm_instr_rsc_pc_reg__cc
++#define A__NAME__mi arm_instr_rsc_pc_reg__mi
++#define A__NAME__pl arm_instr_rsc_pc_reg__pl
++#define A__NAME__vs arm_instr_rsc_pc_reg__vs
++#define A__NAME__vc arm_instr_rsc_pc_reg__vc
++#define A__NAME__hi arm_instr_rsc_pc_reg__hi
++#define A__NAME__ls arm_instr_rsc_pc_reg__ls
++#define A__NAME__ge arm_instr_rsc_pc_reg__ge
++#define A__NAME__lt arm_instr_rsc_pc_reg__lt
++#define A__NAME__gt arm_instr_rsc_pc_reg__gt
++#define A__NAME__le arm_instr_rsc_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orr_pc_reg
++#define A__NAME__eq arm_instr_orr_pc_reg__eq
++#define A__NAME__ne arm_instr_orr_pc_reg__ne
++#define A__NAME__cs arm_instr_orr_pc_reg__cs
++#define A__NAME__cc arm_instr_orr_pc_reg__cc
++#define A__NAME__mi arm_instr_orr_pc_reg__mi
++#define A__NAME__pl arm_instr_orr_pc_reg__pl
++#define A__NAME__vs arm_instr_orr_pc_reg__vs
++#define A__NAME__vc arm_instr_orr_pc_reg__vc
++#define A__NAME__hi arm_instr_orr_pc_reg__hi
++#define A__NAME__ls arm_instr_orr_pc_reg__ls
++#define A__NAME__ge arm_instr_orr_pc_reg__ge
++#define A__NAME__lt arm_instr_orr_pc_reg__lt
++#define A__NAME__gt arm_instr_orr_pc_reg__gt
++#define A__NAME__le arm_instr_orr_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mov_pc_reg
++#define A__NAME__eq arm_instr_mov_pc_reg__eq
++#define A__NAME__ne arm_instr_mov_pc_reg__ne
++#define A__NAME__cs arm_instr_mov_pc_reg__cs
++#define A__NAME__cc arm_instr_mov_pc_reg__cc
++#define A__NAME__mi arm_instr_mov_pc_reg__mi
++#define A__NAME__pl arm_instr_mov_pc_reg__pl
++#define A__NAME__vs arm_instr_mov_pc_reg__vs
++#define A__NAME__vc arm_instr_mov_pc_reg__vc
++#define A__NAME__hi arm_instr_mov_pc_reg__hi
++#define A__NAME__ls arm_instr_mov_pc_reg__ls
++#define A__NAME__ge arm_instr_mov_pc_reg__ge
++#define A__NAME__lt arm_instr_mov_pc_reg__lt
++#define A__NAME__gt arm_instr_mov_pc_reg__gt
++#define A__NAME__le arm_instr_mov_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bic_pc_reg
++#define A__NAME__eq arm_instr_bic_pc_reg__eq
++#define A__NAME__ne arm_instr_bic_pc_reg__ne
++#define A__NAME__cs arm_instr_bic_pc_reg__cs
++#define A__NAME__cc arm_instr_bic_pc_reg__cc
++#define A__NAME__mi arm_instr_bic_pc_reg__mi
++#define A__NAME__pl arm_instr_bic_pc_reg__pl
++#define A__NAME__vs arm_instr_bic_pc_reg__vs
++#define A__NAME__vc arm_instr_bic_pc_reg__vc
++#define A__NAME__hi arm_instr_bic_pc_reg__hi
++#define A__NAME__ls arm_instr_bic_pc_reg__ls
++#define A__NAME__ge arm_instr_bic_pc_reg__ge
++#define A__NAME__lt arm_instr_bic_pc_reg__lt
++#define A__NAME__gt arm_instr_bic_pc_reg__gt
++#define A__NAME__le arm_instr_bic_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvn_pc_reg
++#define A__NAME__eq arm_instr_mvn_pc_reg__eq
++#define A__NAME__ne arm_instr_mvn_pc_reg__ne
++#define A__NAME__cs arm_instr_mvn_pc_reg__cs
++#define A__NAME__cc arm_instr_mvn_pc_reg__cc
++#define A__NAME__mi arm_instr_mvn_pc_reg__mi
++#define A__NAME__pl arm_instr_mvn_pc_reg__pl
++#define A__NAME__vs arm_instr_mvn_pc_reg__vs
++#define A__NAME__vc arm_instr_mvn_pc_reg__vc
++#define A__NAME__hi arm_instr_mvn_pc_reg__hi
++#define A__NAME__ls arm_instr_mvn_pc_reg__ls
++#define A__NAME__ge arm_instr_mvn_pc_reg__ge
++#define A__NAME__lt arm_instr_mvn_pc_reg__lt
++#define A__NAME__gt arm_instr_mvn_pc_reg__gt
++#define A__NAME__le arm_instr_mvn_pc_reg__le
++#define A__REG
++#define A__PC
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_ands_pc_reg
++#define A__NAME__eq arm_instr_ands_pc_reg__eq
++#define A__NAME__ne arm_instr_ands_pc_reg__ne
++#define A__NAME__cs arm_instr_ands_pc_reg__cs
++#define A__NAME__cc arm_instr_ands_pc_reg__cc
++#define A__NAME__mi arm_instr_ands_pc_reg__mi
++#define A__NAME__pl arm_instr_ands_pc_reg__pl
++#define A__NAME__vs arm_instr_ands_pc_reg__vs
++#define A__NAME__vc arm_instr_ands_pc_reg__vc
++#define A__NAME__hi arm_instr_ands_pc_reg__hi
++#define A__NAME__ls arm_instr_ands_pc_reg__ls
++#define A__NAME__ge arm_instr_ands_pc_reg__ge
++#define A__NAME__lt arm_instr_ands_pc_reg__lt
++#define A__NAME__gt arm_instr_ands_pc_reg__gt
++#define A__NAME__le arm_instr_ands_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eors_pc_reg
++#define A__NAME__eq arm_instr_eors_pc_reg__eq
++#define A__NAME__ne arm_instr_eors_pc_reg__ne
++#define A__NAME__cs arm_instr_eors_pc_reg__cs
++#define A__NAME__cc arm_instr_eors_pc_reg__cc
++#define A__NAME__mi arm_instr_eors_pc_reg__mi
++#define A__NAME__pl arm_instr_eors_pc_reg__pl
++#define A__NAME__vs arm_instr_eors_pc_reg__vs
++#define A__NAME__vc arm_instr_eors_pc_reg__vc
++#define A__NAME__hi arm_instr_eors_pc_reg__hi
++#define A__NAME__ls arm_instr_eors_pc_reg__ls
++#define A__NAME__ge arm_instr_eors_pc_reg__ge
++#define A__NAME__lt arm_instr_eors_pc_reg__lt
++#define A__NAME__gt arm_instr_eors_pc_reg__gt
++#define A__NAME__le arm_instr_eors_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_subs_pc_reg
++#define A__NAME__eq arm_instr_subs_pc_reg__eq
++#define A__NAME__ne arm_instr_subs_pc_reg__ne
++#define A__NAME__cs arm_instr_subs_pc_reg__cs
++#define A__NAME__cc arm_instr_subs_pc_reg__cc
++#define A__NAME__mi arm_instr_subs_pc_reg__mi
++#define A__NAME__pl arm_instr_subs_pc_reg__pl
++#define A__NAME__vs arm_instr_subs_pc_reg__vs
++#define A__NAME__vc arm_instr_subs_pc_reg__vc
++#define A__NAME__hi arm_instr_subs_pc_reg__hi
++#define A__NAME__ls arm_instr_subs_pc_reg__ls
++#define A__NAME__ge arm_instr_subs_pc_reg__ge
++#define A__NAME__lt arm_instr_subs_pc_reg__lt
++#define A__NAME__gt arm_instr_subs_pc_reg__gt
++#define A__NAME__le arm_instr_subs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsbs_pc_reg
++#define A__NAME__eq arm_instr_rsbs_pc_reg__eq
++#define A__NAME__ne arm_instr_rsbs_pc_reg__ne
++#define A__NAME__cs arm_instr_rsbs_pc_reg__cs
++#define A__NAME__cc arm_instr_rsbs_pc_reg__cc
++#define A__NAME__mi arm_instr_rsbs_pc_reg__mi
++#define A__NAME__pl arm_instr_rsbs_pc_reg__pl
++#define A__NAME__vs arm_instr_rsbs_pc_reg__vs
++#define A__NAME__vc arm_instr_rsbs_pc_reg__vc
++#define A__NAME__hi arm_instr_rsbs_pc_reg__hi
++#define A__NAME__ls arm_instr_rsbs_pc_reg__ls
++#define A__NAME__ge arm_instr_rsbs_pc_reg__ge
++#define A__NAME__lt arm_instr_rsbs_pc_reg__lt
++#define A__NAME__gt arm_instr_rsbs_pc_reg__gt
++#define A__NAME__le arm_instr_rsbs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adds_pc_reg
++#define A__NAME__eq arm_instr_adds_pc_reg__eq
++#define A__NAME__ne arm_instr_adds_pc_reg__ne
++#define A__NAME__cs arm_instr_adds_pc_reg__cs
++#define A__NAME__cc arm_instr_adds_pc_reg__cc
++#define A__NAME__mi arm_instr_adds_pc_reg__mi
++#define A__NAME__pl arm_instr_adds_pc_reg__pl
++#define A__NAME__vs arm_instr_adds_pc_reg__vs
++#define A__NAME__vc arm_instr_adds_pc_reg__vc
++#define A__NAME__hi arm_instr_adds_pc_reg__hi
++#define A__NAME__ls arm_instr_adds_pc_reg__ls
++#define A__NAME__ge arm_instr_adds_pc_reg__ge
++#define A__NAME__lt arm_instr_adds_pc_reg__lt
++#define A__NAME__gt arm_instr_adds_pc_reg__gt
++#define A__NAME__le arm_instr_adds_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adcs_pc_reg
++#define A__NAME__eq arm_instr_adcs_pc_reg__eq
++#define A__NAME__ne arm_instr_adcs_pc_reg__ne
++#define A__NAME__cs arm_instr_adcs_pc_reg__cs
++#define A__NAME__cc arm_instr_adcs_pc_reg__cc
++#define A__NAME__mi arm_instr_adcs_pc_reg__mi
++#define A__NAME__pl arm_instr_adcs_pc_reg__pl
++#define A__NAME__vs arm_instr_adcs_pc_reg__vs
++#define A__NAME__vc arm_instr_adcs_pc_reg__vc
++#define A__NAME__hi arm_instr_adcs_pc_reg__hi
++#define A__NAME__ls arm_instr_adcs_pc_reg__ls
++#define A__NAME__ge arm_instr_adcs_pc_reg__ge
++#define A__NAME__lt arm_instr_adcs_pc_reg__lt
++#define A__NAME__gt arm_instr_adcs_pc_reg__gt
++#define A__NAME__le arm_instr_adcs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbcs_pc_reg
++#define A__NAME__eq arm_instr_sbcs_pc_reg__eq
++#define A__NAME__ne arm_instr_sbcs_pc_reg__ne
++#define A__NAME__cs arm_instr_sbcs_pc_reg__cs
++#define A__NAME__cc arm_instr_sbcs_pc_reg__cc
++#define A__NAME__mi arm_instr_sbcs_pc_reg__mi
++#define A__NAME__pl arm_instr_sbcs_pc_reg__pl
++#define A__NAME__vs arm_instr_sbcs_pc_reg__vs
++#define A__NAME__vc arm_instr_sbcs_pc_reg__vc
++#define A__NAME__hi arm_instr_sbcs_pc_reg__hi
++#define A__NAME__ls arm_instr_sbcs_pc_reg__ls
++#define A__NAME__ge arm_instr_sbcs_pc_reg__ge
++#define A__NAME__lt arm_instr_sbcs_pc_reg__lt
++#define A__NAME__gt arm_instr_sbcs_pc_reg__gt
++#define A__NAME__le arm_instr_sbcs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rscs_pc_reg
++#define A__NAME__eq arm_instr_rscs_pc_reg__eq
++#define A__NAME__ne arm_instr_rscs_pc_reg__ne
++#define A__NAME__cs arm_instr_rscs_pc_reg__cs
++#define A__NAME__cc arm_instr_rscs_pc_reg__cc
++#define A__NAME__mi arm_instr_rscs_pc_reg__mi
++#define A__NAME__pl arm_instr_rscs_pc_reg__pl
++#define A__NAME__vs arm_instr_rscs_pc_reg__vs
++#define A__NAME__vc arm_instr_rscs_pc_reg__vc
++#define A__NAME__hi arm_instr_rscs_pc_reg__hi
++#define A__NAME__ls arm_instr_rscs_pc_reg__ls
++#define A__NAME__ge arm_instr_rscs_pc_reg__ge
++#define A__NAME__lt arm_instr_rscs_pc_reg__lt
++#define A__NAME__gt arm_instr_rscs_pc_reg__gt
++#define A__NAME__le arm_instr_rscs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_tsts_pc_reg
++#define A__NAME__eq arm_instr_tsts_pc_reg__eq
++#define A__NAME__ne arm_instr_tsts_pc_reg__ne
++#define A__NAME__cs arm_instr_tsts_pc_reg__cs
++#define A__NAME__cc arm_instr_tsts_pc_reg__cc
++#define A__NAME__mi arm_instr_tsts_pc_reg__mi
++#define A__NAME__pl arm_instr_tsts_pc_reg__pl
++#define A__NAME__vs arm_instr_tsts_pc_reg__vs
++#define A__NAME__vc arm_instr_tsts_pc_reg__vc
++#define A__NAME__hi arm_instr_tsts_pc_reg__hi
++#define A__NAME__ls arm_instr_tsts_pc_reg__ls
++#define A__NAME__ge arm_instr_tsts_pc_reg__ge
++#define A__NAME__lt arm_instr_tsts_pc_reg__lt
++#define A__NAME__gt arm_instr_tsts_pc_reg__gt
++#define A__NAME__le arm_instr_tsts_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__TST
++#include "cpu_arm_instr_dpi.c"
++#undef A__TST
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_teqs_pc_reg
++#define A__NAME__eq arm_instr_teqs_pc_reg__eq
++#define A__NAME__ne arm_instr_teqs_pc_reg__ne
++#define A__NAME__cs arm_instr_teqs_pc_reg__cs
++#define A__NAME__cc arm_instr_teqs_pc_reg__cc
++#define A__NAME__mi arm_instr_teqs_pc_reg__mi
++#define A__NAME__pl arm_instr_teqs_pc_reg__pl
++#define A__NAME__vs arm_instr_teqs_pc_reg__vs
++#define A__NAME__vc arm_instr_teqs_pc_reg__vc
++#define A__NAME__hi arm_instr_teqs_pc_reg__hi
++#define A__NAME__ls arm_instr_teqs_pc_reg__ls
++#define A__NAME__ge arm_instr_teqs_pc_reg__ge
++#define A__NAME__lt arm_instr_teqs_pc_reg__lt
++#define A__NAME__gt arm_instr_teqs_pc_reg__gt
++#define A__NAME__le arm_instr_teqs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__TEQ
++#include "cpu_arm_instr_dpi.c"
++#undef A__TEQ
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmps_pc_reg
++#define A__NAME__eq arm_instr_cmps_pc_reg__eq
++#define A__NAME__ne arm_instr_cmps_pc_reg__ne
++#define A__NAME__cs arm_instr_cmps_pc_reg__cs
++#define A__NAME__cc arm_instr_cmps_pc_reg__cc
++#define A__NAME__mi arm_instr_cmps_pc_reg__mi
++#define A__NAME__pl arm_instr_cmps_pc_reg__pl
++#define A__NAME__vs arm_instr_cmps_pc_reg__vs
++#define A__NAME__vc arm_instr_cmps_pc_reg__vc
++#define A__NAME__hi arm_instr_cmps_pc_reg__hi
++#define A__NAME__ls arm_instr_cmps_pc_reg__ls
++#define A__NAME__ge arm_instr_cmps_pc_reg__ge
++#define A__NAME__lt arm_instr_cmps_pc_reg__lt
++#define A__NAME__gt arm_instr_cmps_pc_reg__gt
++#define A__NAME__le arm_instr_cmps_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__CMP
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMP
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmns_pc_reg
++#define A__NAME__eq arm_instr_cmns_pc_reg__eq
++#define A__NAME__ne arm_instr_cmns_pc_reg__ne
++#define A__NAME__cs arm_instr_cmns_pc_reg__cs
++#define A__NAME__cc arm_instr_cmns_pc_reg__cc
++#define A__NAME__mi arm_instr_cmns_pc_reg__mi
++#define A__NAME__pl arm_instr_cmns_pc_reg__pl
++#define A__NAME__vs arm_instr_cmns_pc_reg__vs
++#define A__NAME__vc arm_instr_cmns_pc_reg__vc
++#define A__NAME__hi arm_instr_cmns_pc_reg__hi
++#define A__NAME__ls arm_instr_cmns_pc_reg__ls
++#define A__NAME__ge arm_instr_cmns_pc_reg__ge
++#define A__NAME__lt arm_instr_cmns_pc_reg__lt
++#define A__NAME__gt arm_instr_cmns_pc_reg__gt
++#define A__NAME__le arm_instr_cmns_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__CMN
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMN
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orrs_pc_reg
++#define A__NAME__eq arm_instr_orrs_pc_reg__eq
++#define A__NAME__ne arm_instr_orrs_pc_reg__ne
++#define A__NAME__cs arm_instr_orrs_pc_reg__cs
++#define A__NAME__cc arm_instr_orrs_pc_reg__cc
++#define A__NAME__mi arm_instr_orrs_pc_reg__mi
++#define A__NAME__pl arm_instr_orrs_pc_reg__pl
++#define A__NAME__vs arm_instr_orrs_pc_reg__vs
++#define A__NAME__vc arm_instr_orrs_pc_reg__vc
++#define A__NAME__hi arm_instr_orrs_pc_reg__hi
++#define A__NAME__ls arm_instr_orrs_pc_reg__ls
++#define A__NAME__ge arm_instr_orrs_pc_reg__ge
++#define A__NAME__lt arm_instr_orrs_pc_reg__lt
++#define A__NAME__gt arm_instr_orrs_pc_reg__gt
++#define A__NAME__le arm_instr_orrs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_movs_pc_reg
++#define A__NAME__eq arm_instr_movs_pc_reg__eq
++#define A__NAME__ne arm_instr_movs_pc_reg__ne
++#define A__NAME__cs arm_instr_movs_pc_reg__cs
++#define A__NAME__cc arm_instr_movs_pc_reg__cc
++#define A__NAME__mi arm_instr_movs_pc_reg__mi
++#define A__NAME__pl arm_instr_movs_pc_reg__pl
++#define A__NAME__vs arm_instr_movs_pc_reg__vs
++#define A__NAME__vc arm_instr_movs_pc_reg__vc
++#define A__NAME__hi arm_instr_movs_pc_reg__hi
++#define A__NAME__ls arm_instr_movs_pc_reg__ls
++#define A__NAME__ge arm_instr_movs_pc_reg__ge
++#define A__NAME__lt arm_instr_movs_pc_reg__lt
++#define A__NAME__gt arm_instr_movs_pc_reg__gt
++#define A__NAME__le arm_instr_movs_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bics_pc_reg
++#define A__NAME__eq arm_instr_bics_pc_reg__eq
++#define A__NAME__ne arm_instr_bics_pc_reg__ne
++#define A__NAME__cs arm_instr_bics_pc_reg__cs
++#define A__NAME__cc arm_instr_bics_pc_reg__cc
++#define A__NAME__mi arm_instr_bics_pc_reg__mi
++#define A__NAME__pl arm_instr_bics_pc_reg__pl
++#define A__NAME__vs arm_instr_bics_pc_reg__vs
++#define A__NAME__vc arm_instr_bics_pc_reg__vc
++#define A__NAME__hi arm_instr_bics_pc_reg__hi
++#define A__NAME__ls arm_instr_bics_pc_reg__ls
++#define A__NAME__ge arm_instr_bics_pc_reg__ge
++#define A__NAME__lt arm_instr_bics_pc_reg__lt
++#define A__NAME__gt arm_instr_bics_pc_reg__gt
++#define A__NAME__le arm_instr_bics_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvns_pc_reg
++#define A__NAME__eq arm_instr_mvns_pc_reg__eq
++#define A__NAME__ne arm_instr_mvns_pc_reg__ne
++#define A__NAME__cs arm_instr_mvns_pc_reg__cs
++#define A__NAME__cc arm_instr_mvns_pc_reg__cc
++#define A__NAME__mi arm_instr_mvns_pc_reg__mi
++#define A__NAME__pl arm_instr_mvns_pc_reg__pl
++#define A__NAME__vs arm_instr_mvns_pc_reg__vs
++#define A__NAME__vc arm_instr_mvns_pc_reg__vc
++#define A__NAME__hi arm_instr_mvns_pc_reg__hi
++#define A__NAME__ls arm_instr_mvns_pc_reg__ls
++#define A__NAME__ge arm_instr_mvns_pc_reg__ge
++#define A__NAME__lt arm_instr_mvns_pc_reg__lt
++#define A__NAME__gt arm_instr_mvns_pc_reg__gt
++#define A__NAME__le arm_instr_mvns_pc_reg__le
++#define A__S
++#define A__REG
++#define A__PC
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__S
++#undef A__REG
++#undef A__PC
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_and_regshort
++#define A__NAME__eq arm_instr_and_regshort__eq
++#define A__NAME__ne arm_instr_and_regshort__ne
++#define A__NAME__cs arm_instr_and_regshort__cs
++#define A__NAME__cc arm_instr_and_regshort__cc
++#define A__NAME__mi arm_instr_and_regshort__mi
++#define A__NAME__pl arm_instr_and_regshort__pl
++#define A__NAME__vs arm_instr_and_regshort__vs
++#define A__NAME__vc arm_instr_and_regshort__vc
++#define A__NAME__hi arm_instr_and_regshort__hi
++#define A__NAME__ls arm_instr_and_regshort__ls
++#define A__NAME__ge arm_instr_and_regshort__ge
++#define A__NAME__lt arm_instr_and_regshort__lt
++#define A__NAME__gt arm_instr_and_regshort__gt
++#define A__NAME__le arm_instr_and_regshort__le
++#define A__REGSHORT
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eor_regshort
++#define A__NAME__eq arm_instr_eor_regshort__eq
++#define A__NAME__ne arm_instr_eor_regshort__ne
++#define A__NAME__cs arm_instr_eor_regshort__cs
++#define A__NAME__cc arm_instr_eor_regshort__cc
++#define A__NAME__mi arm_instr_eor_regshort__mi
++#define A__NAME__pl arm_instr_eor_regshort__pl
++#define A__NAME__vs arm_instr_eor_regshort__vs
++#define A__NAME__vc arm_instr_eor_regshort__vc
++#define A__NAME__hi arm_instr_eor_regshort__hi
++#define A__NAME__ls arm_instr_eor_regshort__ls
++#define A__NAME__ge arm_instr_eor_regshort__ge
++#define A__NAME__lt arm_instr_eor_regshort__lt
++#define A__NAME__gt arm_instr_eor_regshort__gt
++#define A__NAME__le arm_instr_eor_regshort__le
++#define A__REGSHORT
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sub_regshort
++#define A__NAME__eq arm_instr_sub_regshort__eq
++#define A__NAME__ne arm_instr_sub_regshort__ne
++#define A__NAME__cs arm_instr_sub_regshort__cs
++#define A__NAME__cc arm_instr_sub_regshort__cc
++#define A__NAME__mi arm_instr_sub_regshort__mi
++#define A__NAME__pl arm_instr_sub_regshort__pl
++#define A__NAME__vs arm_instr_sub_regshort__vs
++#define A__NAME__vc arm_instr_sub_regshort__vc
++#define A__NAME__hi arm_instr_sub_regshort__hi
++#define A__NAME__ls arm_instr_sub_regshort__ls
++#define A__NAME__ge arm_instr_sub_regshort__ge
++#define A__NAME__lt arm_instr_sub_regshort__lt
++#define A__NAME__gt arm_instr_sub_regshort__gt
++#define A__NAME__le arm_instr_sub_regshort__le
++#define A__REGSHORT
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsb_regshort
++#define A__NAME__eq arm_instr_rsb_regshort__eq
++#define A__NAME__ne arm_instr_rsb_regshort__ne
++#define A__NAME__cs arm_instr_rsb_regshort__cs
++#define A__NAME__cc arm_instr_rsb_regshort__cc
++#define A__NAME__mi arm_instr_rsb_regshort__mi
++#define A__NAME__pl arm_instr_rsb_regshort__pl
++#define A__NAME__vs arm_instr_rsb_regshort__vs
++#define A__NAME__vc arm_instr_rsb_regshort__vc
++#define A__NAME__hi arm_instr_rsb_regshort__hi
++#define A__NAME__ls arm_instr_rsb_regshort__ls
++#define A__NAME__ge arm_instr_rsb_regshort__ge
++#define A__NAME__lt arm_instr_rsb_regshort__lt
++#define A__NAME__gt arm_instr_rsb_regshort__gt
++#define A__NAME__le arm_instr_rsb_regshort__le
++#define A__REGSHORT
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_add_regshort
++#define A__NAME__eq arm_instr_add_regshort__eq
++#define A__NAME__ne arm_instr_add_regshort__ne
++#define A__NAME__cs arm_instr_add_regshort__cs
++#define A__NAME__cc arm_instr_add_regshort__cc
++#define A__NAME__mi arm_instr_add_regshort__mi
++#define A__NAME__pl arm_instr_add_regshort__pl
++#define A__NAME__vs arm_instr_add_regshort__vs
++#define A__NAME__vc arm_instr_add_regshort__vc
++#define A__NAME__hi arm_instr_add_regshort__hi
++#define A__NAME__ls arm_instr_add_regshort__ls
++#define A__NAME__ge arm_instr_add_regshort__ge
++#define A__NAME__lt arm_instr_add_regshort__lt
++#define A__NAME__gt arm_instr_add_regshort__gt
++#define A__NAME__le arm_instr_add_regshort__le
++#define A__REGSHORT
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adc_regshort
++#define A__NAME__eq arm_instr_adc_regshort__eq
++#define A__NAME__ne arm_instr_adc_regshort__ne
++#define A__NAME__cs arm_instr_adc_regshort__cs
++#define A__NAME__cc arm_instr_adc_regshort__cc
++#define A__NAME__mi arm_instr_adc_regshort__mi
++#define A__NAME__pl arm_instr_adc_regshort__pl
++#define A__NAME__vs arm_instr_adc_regshort__vs
++#define A__NAME__vc arm_instr_adc_regshort__vc
++#define A__NAME__hi arm_instr_adc_regshort__hi
++#define A__NAME__ls arm_instr_adc_regshort__ls
++#define A__NAME__ge arm_instr_adc_regshort__ge
++#define A__NAME__lt arm_instr_adc_regshort__lt
++#define A__NAME__gt arm_instr_adc_regshort__gt
++#define A__NAME__le arm_instr_adc_regshort__le
++#define A__REGSHORT
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbc_regshort
++#define A__NAME__eq arm_instr_sbc_regshort__eq
++#define A__NAME__ne arm_instr_sbc_regshort__ne
++#define A__NAME__cs arm_instr_sbc_regshort__cs
++#define A__NAME__cc arm_instr_sbc_regshort__cc
++#define A__NAME__mi arm_instr_sbc_regshort__mi
++#define A__NAME__pl arm_instr_sbc_regshort__pl
++#define A__NAME__vs arm_instr_sbc_regshort__vs
++#define A__NAME__vc arm_instr_sbc_regshort__vc
++#define A__NAME__hi arm_instr_sbc_regshort__hi
++#define A__NAME__ls arm_instr_sbc_regshort__ls
++#define A__NAME__ge arm_instr_sbc_regshort__ge
++#define A__NAME__lt arm_instr_sbc_regshort__lt
++#define A__NAME__gt arm_instr_sbc_regshort__gt
++#define A__NAME__le arm_instr_sbc_regshort__le
++#define A__REGSHORT
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsc_regshort
++#define A__NAME__eq arm_instr_rsc_regshort__eq
++#define A__NAME__ne arm_instr_rsc_regshort__ne
++#define A__NAME__cs arm_instr_rsc_regshort__cs
++#define A__NAME__cc arm_instr_rsc_regshort__cc
++#define A__NAME__mi arm_instr_rsc_regshort__mi
++#define A__NAME__pl arm_instr_rsc_regshort__pl
++#define A__NAME__vs arm_instr_rsc_regshort__vs
++#define A__NAME__vc arm_instr_rsc_regshort__vc
++#define A__NAME__hi arm_instr_rsc_regshort__hi
++#define A__NAME__ls arm_instr_rsc_regshort__ls
++#define A__NAME__ge arm_instr_rsc_regshort__ge
++#define A__NAME__lt arm_instr_rsc_regshort__lt
++#define A__NAME__gt arm_instr_rsc_regshort__gt
++#define A__NAME__le arm_instr_rsc_regshort__le
++#define A__REGSHORT
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orr_regshort
++#define A__NAME__eq arm_instr_orr_regshort__eq
++#define A__NAME__ne arm_instr_orr_regshort__ne
++#define A__NAME__cs arm_instr_orr_regshort__cs
++#define A__NAME__cc arm_instr_orr_regshort__cc
++#define A__NAME__mi arm_instr_orr_regshort__mi
++#define A__NAME__pl arm_instr_orr_regshort__pl
++#define A__NAME__vs arm_instr_orr_regshort__vs
++#define A__NAME__vc arm_instr_orr_regshort__vc
++#define A__NAME__hi arm_instr_orr_regshort__hi
++#define A__NAME__ls arm_instr_orr_regshort__ls
++#define A__NAME__ge arm_instr_orr_regshort__ge
++#define A__NAME__lt arm_instr_orr_regshort__lt
++#define A__NAME__gt arm_instr_orr_regshort__gt
++#define A__NAME__le arm_instr_orr_regshort__le
++#define A__REGSHORT
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mov_regshort
++#define A__NAME__eq arm_instr_mov_regshort__eq
++#define A__NAME__ne arm_instr_mov_regshort__ne
++#define A__NAME__cs arm_instr_mov_regshort__cs
++#define A__NAME__cc arm_instr_mov_regshort__cc
++#define A__NAME__mi arm_instr_mov_regshort__mi
++#define A__NAME__pl arm_instr_mov_regshort__pl
++#define A__NAME__vs arm_instr_mov_regshort__vs
++#define A__NAME__vc arm_instr_mov_regshort__vc
++#define A__NAME__hi arm_instr_mov_regshort__hi
++#define A__NAME__ls arm_instr_mov_regshort__ls
++#define A__NAME__ge arm_instr_mov_regshort__ge
++#define A__NAME__lt arm_instr_mov_regshort__lt
++#define A__NAME__gt arm_instr_mov_regshort__gt
++#define A__NAME__le arm_instr_mov_regshort__le
++#define A__REGSHORT
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bic_regshort
++#define A__NAME__eq arm_instr_bic_regshort__eq
++#define A__NAME__ne arm_instr_bic_regshort__ne
++#define A__NAME__cs arm_instr_bic_regshort__cs
++#define A__NAME__cc arm_instr_bic_regshort__cc
++#define A__NAME__mi arm_instr_bic_regshort__mi
++#define A__NAME__pl arm_instr_bic_regshort__pl
++#define A__NAME__vs arm_instr_bic_regshort__vs
++#define A__NAME__vc arm_instr_bic_regshort__vc
++#define A__NAME__hi arm_instr_bic_regshort__hi
++#define A__NAME__ls arm_instr_bic_regshort__ls
++#define A__NAME__ge arm_instr_bic_regshort__ge
++#define A__NAME__lt arm_instr_bic_regshort__lt
++#define A__NAME__gt arm_instr_bic_regshort__gt
++#define A__NAME__le arm_instr_bic_regshort__le
++#define A__REGSHORT
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvn_regshort
++#define A__NAME__eq arm_instr_mvn_regshort__eq
++#define A__NAME__ne arm_instr_mvn_regshort__ne
++#define A__NAME__cs arm_instr_mvn_regshort__cs
++#define A__NAME__cc arm_instr_mvn_regshort__cc
++#define A__NAME__mi arm_instr_mvn_regshort__mi
++#define A__NAME__pl arm_instr_mvn_regshort__pl
++#define A__NAME__vs arm_instr_mvn_regshort__vs
++#define A__NAME__vc arm_instr_mvn_regshort__vc
++#define A__NAME__hi arm_instr_mvn_regshort__hi
++#define A__NAME__ls arm_instr_mvn_regshort__ls
++#define A__NAME__ge arm_instr_mvn_regshort__ge
++#define A__NAME__lt arm_instr_mvn_regshort__lt
++#define A__NAME__gt arm_instr_mvn_regshort__gt
++#define A__NAME__le arm_instr_mvn_regshort__le
++#define A__REGSHORT
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_ands_regshort
++#define A__NAME__eq arm_instr_ands_regshort__eq
++#define A__NAME__ne arm_instr_ands_regshort__ne
++#define A__NAME__cs arm_instr_ands_regshort__cs
++#define A__NAME__cc arm_instr_ands_regshort__cc
++#define A__NAME__mi arm_instr_ands_regshort__mi
++#define A__NAME__pl arm_instr_ands_regshort__pl
++#define A__NAME__vs arm_instr_ands_regshort__vs
++#define A__NAME__vc arm_instr_ands_regshort__vc
++#define A__NAME__hi arm_instr_ands_regshort__hi
++#define A__NAME__ls arm_instr_ands_regshort__ls
++#define A__NAME__ge arm_instr_ands_regshort__ge
++#define A__NAME__lt arm_instr_ands_regshort__lt
++#define A__NAME__gt arm_instr_ands_regshort__gt
++#define A__NAME__le arm_instr_ands_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__AND
++#include "cpu_arm_instr_dpi.c"
++#undef A__AND
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_eors_regshort
++#define A__NAME__eq arm_instr_eors_regshort__eq
++#define A__NAME__ne arm_instr_eors_regshort__ne
++#define A__NAME__cs arm_instr_eors_regshort__cs
++#define A__NAME__cc arm_instr_eors_regshort__cc
++#define A__NAME__mi arm_instr_eors_regshort__mi
++#define A__NAME__pl arm_instr_eors_regshort__pl
++#define A__NAME__vs arm_instr_eors_regshort__vs
++#define A__NAME__vc arm_instr_eors_regshort__vc
++#define A__NAME__hi arm_instr_eors_regshort__hi
++#define A__NAME__ls arm_instr_eors_regshort__ls
++#define A__NAME__ge arm_instr_eors_regshort__ge
++#define A__NAME__lt arm_instr_eors_regshort__lt
++#define A__NAME__gt arm_instr_eors_regshort__gt
++#define A__NAME__le arm_instr_eors_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__EOR
++#include "cpu_arm_instr_dpi.c"
++#undef A__EOR
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_subs_regshort
++#define A__NAME__eq arm_instr_subs_regshort__eq
++#define A__NAME__ne arm_instr_subs_regshort__ne
++#define A__NAME__cs arm_instr_subs_regshort__cs
++#define A__NAME__cc arm_instr_subs_regshort__cc
++#define A__NAME__mi arm_instr_subs_regshort__mi
++#define A__NAME__pl arm_instr_subs_regshort__pl
++#define A__NAME__vs arm_instr_subs_regshort__vs
++#define A__NAME__vc arm_instr_subs_regshort__vc
++#define A__NAME__hi arm_instr_subs_regshort__hi
++#define A__NAME__ls arm_instr_subs_regshort__ls
++#define A__NAME__ge arm_instr_subs_regshort__ge
++#define A__NAME__lt arm_instr_subs_regshort__lt
++#define A__NAME__gt arm_instr_subs_regshort__gt
++#define A__NAME__le arm_instr_subs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__SUB
++#include "cpu_arm_instr_dpi.c"
++#undef A__SUB
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rsbs_regshort
++#define A__NAME__eq arm_instr_rsbs_regshort__eq
++#define A__NAME__ne arm_instr_rsbs_regshort__ne
++#define A__NAME__cs arm_instr_rsbs_regshort__cs
++#define A__NAME__cc arm_instr_rsbs_regshort__cc
++#define A__NAME__mi arm_instr_rsbs_regshort__mi
++#define A__NAME__pl arm_instr_rsbs_regshort__pl
++#define A__NAME__vs arm_instr_rsbs_regshort__vs
++#define A__NAME__vc arm_instr_rsbs_regshort__vc
++#define A__NAME__hi arm_instr_rsbs_regshort__hi
++#define A__NAME__ls arm_instr_rsbs_regshort__ls
++#define A__NAME__ge arm_instr_rsbs_regshort__ge
++#define A__NAME__lt arm_instr_rsbs_regshort__lt
++#define A__NAME__gt arm_instr_rsbs_regshort__gt
++#define A__NAME__le arm_instr_rsbs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__RSB
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSB
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adds_regshort
++#define A__NAME__eq arm_instr_adds_regshort__eq
++#define A__NAME__ne arm_instr_adds_regshort__ne
++#define A__NAME__cs arm_instr_adds_regshort__cs
++#define A__NAME__cc arm_instr_adds_regshort__cc
++#define A__NAME__mi arm_instr_adds_regshort__mi
++#define A__NAME__pl arm_instr_adds_regshort__pl
++#define A__NAME__vs arm_instr_adds_regshort__vs
++#define A__NAME__vc arm_instr_adds_regshort__vc
++#define A__NAME__hi arm_instr_adds_regshort__hi
++#define A__NAME__ls arm_instr_adds_regshort__ls
++#define A__NAME__ge arm_instr_adds_regshort__ge
++#define A__NAME__lt arm_instr_adds_regshort__lt
++#define A__NAME__gt arm_instr_adds_regshort__gt
++#define A__NAME__le arm_instr_adds_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__ADD
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADD
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_adcs_regshort
++#define A__NAME__eq arm_instr_adcs_regshort__eq
++#define A__NAME__ne arm_instr_adcs_regshort__ne
++#define A__NAME__cs arm_instr_adcs_regshort__cs
++#define A__NAME__cc arm_instr_adcs_regshort__cc
++#define A__NAME__mi arm_instr_adcs_regshort__mi
++#define A__NAME__pl arm_instr_adcs_regshort__pl
++#define A__NAME__vs arm_instr_adcs_regshort__vs
++#define A__NAME__vc arm_instr_adcs_regshort__vc
++#define A__NAME__hi arm_instr_adcs_regshort__hi
++#define A__NAME__ls arm_instr_adcs_regshort__ls
++#define A__NAME__ge arm_instr_adcs_regshort__ge
++#define A__NAME__lt arm_instr_adcs_regshort__lt
++#define A__NAME__gt arm_instr_adcs_regshort__gt
++#define A__NAME__le arm_instr_adcs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__ADC
++#include "cpu_arm_instr_dpi.c"
++#undef A__ADC
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_sbcs_regshort
++#define A__NAME__eq arm_instr_sbcs_regshort__eq
++#define A__NAME__ne arm_instr_sbcs_regshort__ne
++#define A__NAME__cs arm_instr_sbcs_regshort__cs
++#define A__NAME__cc arm_instr_sbcs_regshort__cc
++#define A__NAME__mi arm_instr_sbcs_regshort__mi
++#define A__NAME__pl arm_instr_sbcs_regshort__pl
++#define A__NAME__vs arm_instr_sbcs_regshort__vs
++#define A__NAME__vc arm_instr_sbcs_regshort__vc
++#define A__NAME__hi arm_instr_sbcs_regshort__hi
++#define A__NAME__ls arm_instr_sbcs_regshort__ls
++#define A__NAME__ge arm_instr_sbcs_regshort__ge
++#define A__NAME__lt arm_instr_sbcs_regshort__lt
++#define A__NAME__gt arm_instr_sbcs_regshort__gt
++#define A__NAME__le arm_instr_sbcs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__SBC
++#include "cpu_arm_instr_dpi.c"
++#undef A__SBC
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_rscs_regshort
++#define A__NAME__eq arm_instr_rscs_regshort__eq
++#define A__NAME__ne arm_instr_rscs_regshort__ne
++#define A__NAME__cs arm_instr_rscs_regshort__cs
++#define A__NAME__cc arm_instr_rscs_regshort__cc
++#define A__NAME__mi arm_instr_rscs_regshort__mi
++#define A__NAME__pl arm_instr_rscs_regshort__pl
++#define A__NAME__vs arm_instr_rscs_regshort__vs
++#define A__NAME__vc arm_instr_rscs_regshort__vc
++#define A__NAME__hi arm_instr_rscs_regshort__hi
++#define A__NAME__ls arm_instr_rscs_regshort__ls
++#define A__NAME__ge arm_instr_rscs_regshort__ge
++#define A__NAME__lt arm_instr_rscs_regshort__lt
++#define A__NAME__gt arm_instr_rscs_regshort__gt
++#define A__NAME__le arm_instr_rscs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__RSC
++#include "cpu_arm_instr_dpi.c"
++#undef A__RSC
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_tsts_regshort
++#define A__NAME__eq arm_instr_tsts_regshort__eq
++#define A__NAME__ne arm_instr_tsts_regshort__ne
++#define A__NAME__cs arm_instr_tsts_regshort__cs
++#define A__NAME__cc arm_instr_tsts_regshort__cc
++#define A__NAME__mi arm_instr_tsts_regshort__mi
++#define A__NAME__pl arm_instr_tsts_regshort__pl
++#define A__NAME__vs arm_instr_tsts_regshort__vs
++#define A__NAME__vc arm_instr_tsts_regshort__vc
++#define A__NAME__hi arm_instr_tsts_regshort__hi
++#define A__NAME__ls arm_instr_tsts_regshort__ls
++#define A__NAME__ge arm_instr_tsts_regshort__ge
++#define A__NAME__lt arm_instr_tsts_regshort__lt
++#define A__NAME__gt arm_instr_tsts_regshort__gt
++#define A__NAME__le arm_instr_tsts_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__TST
++#include "cpu_arm_instr_dpi.c"
++#undef A__TST
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_teqs_regshort
++#define A__NAME__eq arm_instr_teqs_regshort__eq
++#define A__NAME__ne arm_instr_teqs_regshort__ne
++#define A__NAME__cs arm_instr_teqs_regshort__cs
++#define A__NAME__cc arm_instr_teqs_regshort__cc
++#define A__NAME__mi arm_instr_teqs_regshort__mi
++#define A__NAME__pl arm_instr_teqs_regshort__pl
++#define A__NAME__vs arm_instr_teqs_regshort__vs
++#define A__NAME__vc arm_instr_teqs_regshort__vc
++#define A__NAME__hi arm_instr_teqs_regshort__hi
++#define A__NAME__ls arm_instr_teqs_regshort__ls
++#define A__NAME__ge arm_instr_teqs_regshort__ge
++#define A__NAME__lt arm_instr_teqs_regshort__lt
++#define A__NAME__gt arm_instr_teqs_regshort__gt
++#define A__NAME__le arm_instr_teqs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__TEQ
++#include "cpu_arm_instr_dpi.c"
++#undef A__TEQ
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmps_regshort
++#define A__NAME__eq arm_instr_cmps_regshort__eq
++#define A__NAME__ne arm_instr_cmps_regshort__ne
++#define A__NAME__cs arm_instr_cmps_regshort__cs
++#define A__NAME__cc arm_instr_cmps_regshort__cc
++#define A__NAME__mi arm_instr_cmps_regshort__mi
++#define A__NAME__pl arm_instr_cmps_regshort__pl
++#define A__NAME__vs arm_instr_cmps_regshort__vs
++#define A__NAME__vc arm_instr_cmps_regshort__vc
++#define A__NAME__hi arm_instr_cmps_regshort__hi
++#define A__NAME__ls arm_instr_cmps_regshort__ls
++#define A__NAME__ge arm_instr_cmps_regshort__ge
++#define A__NAME__lt arm_instr_cmps_regshort__lt
++#define A__NAME__gt arm_instr_cmps_regshort__gt
++#define A__NAME__le arm_instr_cmps_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__CMP
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMP
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_cmns_regshort
++#define A__NAME__eq arm_instr_cmns_regshort__eq
++#define A__NAME__ne arm_instr_cmns_regshort__ne
++#define A__NAME__cs arm_instr_cmns_regshort__cs
++#define A__NAME__cc arm_instr_cmns_regshort__cc
++#define A__NAME__mi arm_instr_cmns_regshort__mi
++#define A__NAME__pl arm_instr_cmns_regshort__pl
++#define A__NAME__vs arm_instr_cmns_regshort__vs
++#define A__NAME__vc arm_instr_cmns_regshort__vc
++#define A__NAME__hi arm_instr_cmns_regshort__hi
++#define A__NAME__ls arm_instr_cmns_regshort__ls
++#define A__NAME__ge arm_instr_cmns_regshort__ge
++#define A__NAME__lt arm_instr_cmns_regshort__lt
++#define A__NAME__gt arm_instr_cmns_regshort__gt
++#define A__NAME__le arm_instr_cmns_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__CMN
++#include "cpu_arm_instr_dpi.c"
++#undef A__CMN
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_orrs_regshort
++#define A__NAME__eq arm_instr_orrs_regshort__eq
++#define A__NAME__ne arm_instr_orrs_regshort__ne
++#define A__NAME__cs arm_instr_orrs_regshort__cs
++#define A__NAME__cc arm_instr_orrs_regshort__cc
++#define A__NAME__mi arm_instr_orrs_regshort__mi
++#define A__NAME__pl arm_instr_orrs_regshort__pl
++#define A__NAME__vs arm_instr_orrs_regshort__vs
++#define A__NAME__vc arm_instr_orrs_regshort__vc
++#define A__NAME__hi arm_instr_orrs_regshort__hi
++#define A__NAME__ls arm_instr_orrs_regshort__ls
++#define A__NAME__ge arm_instr_orrs_regshort__ge
++#define A__NAME__lt arm_instr_orrs_regshort__lt
++#define A__NAME__gt arm_instr_orrs_regshort__gt
++#define A__NAME__le arm_instr_orrs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__ORR
++#include "cpu_arm_instr_dpi.c"
++#undef A__ORR
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_movs_regshort
++#define A__NAME__eq arm_instr_movs_regshort__eq
++#define A__NAME__ne arm_instr_movs_regshort__ne
++#define A__NAME__cs arm_instr_movs_regshort__cs
++#define A__NAME__cc arm_instr_movs_regshort__cc
++#define A__NAME__mi arm_instr_movs_regshort__mi
++#define A__NAME__pl arm_instr_movs_regshort__pl
++#define A__NAME__vs arm_instr_movs_regshort__vs
++#define A__NAME__vc arm_instr_movs_regshort__vc
++#define A__NAME__hi arm_instr_movs_regshort__hi
++#define A__NAME__ls arm_instr_movs_regshort__ls
++#define A__NAME__ge arm_instr_movs_regshort__ge
++#define A__NAME__lt arm_instr_movs_regshort__lt
++#define A__NAME__gt arm_instr_movs_regshort__gt
++#define A__NAME__le arm_instr_movs_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__MOV
++#include "cpu_arm_instr_dpi.c"
++#undef A__MOV
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_bics_regshort
++#define A__NAME__eq arm_instr_bics_regshort__eq
++#define A__NAME__ne arm_instr_bics_regshort__ne
++#define A__NAME__cs arm_instr_bics_regshort__cs
++#define A__NAME__cc arm_instr_bics_regshort__cc
++#define A__NAME__mi arm_instr_bics_regshort__mi
++#define A__NAME__pl arm_instr_bics_regshort__pl
++#define A__NAME__vs arm_instr_bics_regshort__vs
++#define A__NAME__vc arm_instr_bics_regshort__vc
++#define A__NAME__hi arm_instr_bics_regshort__hi
++#define A__NAME__ls arm_instr_bics_regshort__ls
++#define A__NAME__ge arm_instr_bics_regshort__ge
++#define A__NAME__lt arm_instr_bics_regshort__lt
++#define A__NAME__gt arm_instr_bics_regshort__gt
++#define A__NAME__le arm_instr_bics_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__BIC
++#include "cpu_arm_instr_dpi.c"
++#undef A__BIC
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++#define A__NAME arm_instr_mvns_regshort
++#define A__NAME__eq arm_instr_mvns_regshort__eq
++#define A__NAME__ne arm_instr_mvns_regshort__ne
++#define A__NAME__cs arm_instr_mvns_regshort__cs
++#define A__NAME__cc arm_instr_mvns_regshort__cc
++#define A__NAME__mi arm_instr_mvns_regshort__mi
++#define A__NAME__pl arm_instr_mvns_regshort__pl
++#define A__NAME__vs arm_instr_mvns_regshort__vs
++#define A__NAME__vc arm_instr_mvns_regshort__vc
++#define A__NAME__hi arm_instr_mvns_regshort__hi
++#define A__NAME__ls arm_instr_mvns_regshort__ls
++#define A__NAME__ge arm_instr_mvns_regshort__ge
++#define A__NAME__lt arm_instr_mvns_regshort__lt
++#define A__NAME__gt arm_instr_mvns_regshort__gt
++#define A__NAME__le arm_instr_mvns_regshort__le
++#define A__S
++#define A__REGSHORT
++#define A__MVN
++#include "cpu_arm_instr_dpi.c"
++#undef A__MVN
++#undef A__S
++#undef A__REGSHORT
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME
++
++ void (*arm_dpi_instr[2 * 2 * 2 * 16 * 16])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_and__eq,
++ arm_instr_and__ne,
++ arm_instr_and__cs,
++ arm_instr_and__cc,
++ arm_instr_and__mi,
++ arm_instr_and__pl,
++ arm_instr_and__vs,
++ arm_instr_and__vc,
++ arm_instr_and__hi,
++ arm_instr_and__ls,
++ arm_instr_and__ge,
++ arm_instr_and__lt,
++ arm_instr_and__gt,
++ arm_instr_and__le,
++ arm_instr_and,
++ arm_instr_nop,
++ arm_instr_eor__eq,
++ arm_instr_eor__ne,
++ arm_instr_eor__cs,
++ arm_instr_eor__cc,
++ arm_instr_eor__mi,
++ arm_instr_eor__pl,
++ arm_instr_eor__vs,
++ arm_instr_eor__vc,
++ arm_instr_eor__hi,
++ arm_instr_eor__ls,
++ arm_instr_eor__ge,
++ arm_instr_eor__lt,
++ arm_instr_eor__gt,
++ arm_instr_eor__le,
++ arm_instr_eor,
++ arm_instr_nop,
++ arm_instr_sub__eq,
++ arm_instr_sub__ne,
++ arm_instr_sub__cs,
++ arm_instr_sub__cc,
++ arm_instr_sub__mi,
++ arm_instr_sub__pl,
++ arm_instr_sub__vs,
++ arm_instr_sub__vc,
++ arm_instr_sub__hi,
++ arm_instr_sub__ls,
++ arm_instr_sub__ge,
++ arm_instr_sub__lt,
++ arm_instr_sub__gt,
++ arm_instr_sub__le,
++ arm_instr_sub,
++ arm_instr_nop,
++ arm_instr_rsb__eq,
++ arm_instr_rsb__ne,
++ arm_instr_rsb__cs,
++ arm_instr_rsb__cc,
++ arm_instr_rsb__mi,
++ arm_instr_rsb__pl,
++ arm_instr_rsb__vs,
++ arm_instr_rsb__vc,
++ arm_instr_rsb__hi,
++ arm_instr_rsb__ls,
++ arm_instr_rsb__ge,
++ arm_instr_rsb__lt,
++ arm_instr_rsb__gt,
++ arm_instr_rsb__le,
++ arm_instr_rsb,
++ arm_instr_nop,
++ arm_instr_add__eq,
++ arm_instr_add__ne,
++ arm_instr_add__cs,
++ arm_instr_add__cc,
++ arm_instr_add__mi,
++ arm_instr_add__pl,
++ arm_instr_add__vs,
++ arm_instr_add__vc,
++ arm_instr_add__hi,
++ arm_instr_add__ls,
++ arm_instr_add__ge,
++ arm_instr_add__lt,
++ arm_instr_add__gt,
++ arm_instr_add__le,
++ arm_instr_add,
++ arm_instr_nop,
++ arm_instr_adc__eq,
++ arm_instr_adc__ne,
++ arm_instr_adc__cs,
++ arm_instr_adc__cc,
++ arm_instr_adc__mi,
++ arm_instr_adc__pl,
++ arm_instr_adc__vs,
++ arm_instr_adc__vc,
++ arm_instr_adc__hi,
++ arm_instr_adc__ls,
++ arm_instr_adc__ge,
++ arm_instr_adc__lt,
++ arm_instr_adc__gt,
++ arm_instr_adc__le,
++ arm_instr_adc,
++ arm_instr_nop,
++ arm_instr_sbc__eq,
++ arm_instr_sbc__ne,
++ arm_instr_sbc__cs,
++ arm_instr_sbc__cc,
++ arm_instr_sbc__mi,
++ arm_instr_sbc__pl,
++ arm_instr_sbc__vs,
++ arm_instr_sbc__vc,
++ arm_instr_sbc__hi,
++ arm_instr_sbc__ls,
++ arm_instr_sbc__ge,
++ arm_instr_sbc__lt,
++ arm_instr_sbc__gt,
++ arm_instr_sbc__le,
++ arm_instr_sbc,
++ arm_instr_nop,
++ arm_instr_rsc__eq,
++ arm_instr_rsc__ne,
++ arm_instr_rsc__cs,
++ arm_instr_rsc__cc,
++ arm_instr_rsc__mi,
++ arm_instr_rsc__pl,
++ arm_instr_rsc__vs,
++ arm_instr_rsc__vc,
++ arm_instr_rsc__hi,
++ arm_instr_rsc__ls,
++ arm_instr_rsc__ge,
++ arm_instr_rsc__lt,
++ arm_instr_rsc__gt,
++ arm_instr_rsc__le,
++ arm_instr_rsc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_orr__eq,
++ arm_instr_orr__ne,
++ arm_instr_orr__cs,
++ arm_instr_orr__cc,
++ arm_instr_orr__mi,
++ arm_instr_orr__pl,
++ arm_instr_orr__vs,
++ arm_instr_orr__vc,
++ arm_instr_orr__hi,
++ arm_instr_orr__ls,
++ arm_instr_orr__ge,
++ arm_instr_orr__lt,
++ arm_instr_orr__gt,
++ arm_instr_orr__le,
++ arm_instr_orr,
++ arm_instr_nop,
++ arm_instr_mov__eq,
++ arm_instr_mov__ne,
++ arm_instr_mov__cs,
++ arm_instr_mov__cc,
++ arm_instr_mov__mi,
++ arm_instr_mov__pl,
++ arm_instr_mov__vs,
++ arm_instr_mov__vc,
++ arm_instr_mov__hi,
++ arm_instr_mov__ls,
++ arm_instr_mov__ge,
++ arm_instr_mov__lt,
++ arm_instr_mov__gt,
++ arm_instr_mov__le,
++ arm_instr_mov,
++ arm_instr_nop,
++ arm_instr_bic__eq,
++ arm_instr_bic__ne,
++ arm_instr_bic__cs,
++ arm_instr_bic__cc,
++ arm_instr_bic__mi,
++ arm_instr_bic__pl,
++ arm_instr_bic__vs,
++ arm_instr_bic__vc,
++ arm_instr_bic__hi,
++ arm_instr_bic__ls,
++ arm_instr_bic__ge,
++ arm_instr_bic__lt,
++ arm_instr_bic__gt,
++ arm_instr_bic__le,
++ arm_instr_bic,
++ arm_instr_nop,
++ arm_instr_mvn__eq,
++ arm_instr_mvn__ne,
++ arm_instr_mvn__cs,
++ arm_instr_mvn__cc,
++ arm_instr_mvn__mi,
++ arm_instr_mvn__pl,
++ arm_instr_mvn__vs,
++ arm_instr_mvn__vc,
++ arm_instr_mvn__hi,
++ arm_instr_mvn__ls,
++ arm_instr_mvn__ge,
++ arm_instr_mvn__lt,
++ arm_instr_mvn__gt,
++ arm_instr_mvn__le,
++ arm_instr_mvn,
++ arm_instr_nop,
++ arm_instr_ands__eq,
++ arm_instr_ands__ne,
++ arm_instr_ands__cs,
++ arm_instr_ands__cc,
++ arm_instr_ands__mi,
++ arm_instr_ands__pl,
++ arm_instr_ands__vs,
++ arm_instr_ands__vc,
++ arm_instr_ands__hi,
++ arm_instr_ands__ls,
++ arm_instr_ands__ge,
++ arm_instr_ands__lt,
++ arm_instr_ands__gt,
++ arm_instr_ands__le,
++ arm_instr_ands,
++ arm_instr_nop,
++ arm_instr_eors__eq,
++ arm_instr_eors__ne,
++ arm_instr_eors__cs,
++ arm_instr_eors__cc,
++ arm_instr_eors__mi,
++ arm_instr_eors__pl,
++ arm_instr_eors__vs,
++ arm_instr_eors__vc,
++ arm_instr_eors__hi,
++ arm_instr_eors__ls,
++ arm_instr_eors__ge,
++ arm_instr_eors__lt,
++ arm_instr_eors__gt,
++ arm_instr_eors__le,
++ arm_instr_eors,
++ arm_instr_nop,
++ arm_instr_subs__eq,
++ arm_instr_subs__ne,
++ arm_instr_subs__cs,
++ arm_instr_subs__cc,
++ arm_instr_subs__mi,
++ arm_instr_subs__pl,
++ arm_instr_subs__vs,
++ arm_instr_subs__vc,
++ arm_instr_subs__hi,
++ arm_instr_subs__ls,
++ arm_instr_subs__ge,
++ arm_instr_subs__lt,
++ arm_instr_subs__gt,
++ arm_instr_subs__le,
++ arm_instr_subs,
++ arm_instr_nop,
++ arm_instr_rsbs__eq,
++ arm_instr_rsbs__ne,
++ arm_instr_rsbs__cs,
++ arm_instr_rsbs__cc,
++ arm_instr_rsbs__mi,
++ arm_instr_rsbs__pl,
++ arm_instr_rsbs__vs,
++ arm_instr_rsbs__vc,
++ arm_instr_rsbs__hi,
++ arm_instr_rsbs__ls,
++ arm_instr_rsbs__ge,
++ arm_instr_rsbs__lt,
++ arm_instr_rsbs__gt,
++ arm_instr_rsbs__le,
++ arm_instr_rsbs,
++ arm_instr_nop,
++ arm_instr_adds__eq,
++ arm_instr_adds__ne,
++ arm_instr_adds__cs,
++ arm_instr_adds__cc,
++ arm_instr_adds__mi,
++ arm_instr_adds__pl,
++ arm_instr_adds__vs,
++ arm_instr_adds__vc,
++ arm_instr_adds__hi,
++ arm_instr_adds__ls,
++ arm_instr_adds__ge,
++ arm_instr_adds__lt,
++ arm_instr_adds__gt,
++ arm_instr_adds__le,
++ arm_instr_adds,
++ arm_instr_nop,
++ arm_instr_adcs__eq,
++ arm_instr_adcs__ne,
++ arm_instr_adcs__cs,
++ arm_instr_adcs__cc,
++ arm_instr_adcs__mi,
++ arm_instr_adcs__pl,
++ arm_instr_adcs__vs,
++ arm_instr_adcs__vc,
++ arm_instr_adcs__hi,
++ arm_instr_adcs__ls,
++ arm_instr_adcs__ge,
++ arm_instr_adcs__lt,
++ arm_instr_adcs__gt,
++ arm_instr_adcs__le,
++ arm_instr_adcs,
++ arm_instr_nop,
++ arm_instr_sbcs__eq,
++ arm_instr_sbcs__ne,
++ arm_instr_sbcs__cs,
++ arm_instr_sbcs__cc,
++ arm_instr_sbcs__mi,
++ arm_instr_sbcs__pl,
++ arm_instr_sbcs__vs,
++ arm_instr_sbcs__vc,
++ arm_instr_sbcs__hi,
++ arm_instr_sbcs__ls,
++ arm_instr_sbcs__ge,
++ arm_instr_sbcs__lt,
++ arm_instr_sbcs__gt,
++ arm_instr_sbcs__le,
++ arm_instr_sbcs,
++ arm_instr_nop,
++ arm_instr_rscs__eq,
++ arm_instr_rscs__ne,
++ arm_instr_rscs__cs,
++ arm_instr_rscs__cc,
++ arm_instr_rscs__mi,
++ arm_instr_rscs__pl,
++ arm_instr_rscs__vs,
++ arm_instr_rscs__vc,
++ arm_instr_rscs__hi,
++ arm_instr_rscs__ls,
++ arm_instr_rscs__ge,
++ arm_instr_rscs__lt,
++ arm_instr_rscs__gt,
++ arm_instr_rscs__le,
++ arm_instr_rscs,
++ arm_instr_nop,
++ arm_instr_tsts__eq,
++ arm_instr_tsts__ne,
++ arm_instr_tsts__cs,
++ arm_instr_tsts__cc,
++ arm_instr_tsts__mi,
++ arm_instr_tsts__pl,
++ arm_instr_tsts__vs,
++ arm_instr_tsts__vc,
++ arm_instr_tsts__hi,
++ arm_instr_tsts__ls,
++ arm_instr_tsts__ge,
++ arm_instr_tsts__lt,
++ arm_instr_tsts__gt,
++ arm_instr_tsts__le,
++ arm_instr_tsts,
++ arm_instr_nop,
++ arm_instr_teqs__eq,
++ arm_instr_teqs__ne,
++ arm_instr_teqs__cs,
++ arm_instr_teqs__cc,
++ arm_instr_teqs__mi,
++ arm_instr_teqs__pl,
++ arm_instr_teqs__vs,
++ arm_instr_teqs__vc,
++ arm_instr_teqs__hi,
++ arm_instr_teqs__ls,
++ arm_instr_teqs__ge,
++ arm_instr_teqs__lt,
++ arm_instr_teqs__gt,
++ arm_instr_teqs__le,
++ arm_instr_teqs,
++ arm_instr_nop,
++ arm_instr_cmps__eq,
++ arm_instr_cmps__ne,
++ arm_instr_cmps__cs,
++ arm_instr_cmps__cc,
++ arm_instr_cmps__mi,
++ arm_instr_cmps__pl,
++ arm_instr_cmps__vs,
++ arm_instr_cmps__vc,
++ arm_instr_cmps__hi,
++ arm_instr_cmps__ls,
++ arm_instr_cmps__ge,
++ arm_instr_cmps__lt,
++ arm_instr_cmps__gt,
++ arm_instr_cmps__le,
++ arm_instr_cmps,
++ arm_instr_nop,
++ arm_instr_cmns__eq,
++ arm_instr_cmns__ne,
++ arm_instr_cmns__cs,
++ arm_instr_cmns__cc,
++ arm_instr_cmns__mi,
++ arm_instr_cmns__pl,
++ arm_instr_cmns__vs,
++ arm_instr_cmns__vc,
++ arm_instr_cmns__hi,
++ arm_instr_cmns__ls,
++ arm_instr_cmns__ge,
++ arm_instr_cmns__lt,
++ arm_instr_cmns__gt,
++ arm_instr_cmns__le,
++ arm_instr_cmns,
++ arm_instr_nop,
++ arm_instr_orrs__eq,
++ arm_instr_orrs__ne,
++ arm_instr_orrs__cs,
++ arm_instr_orrs__cc,
++ arm_instr_orrs__mi,
++ arm_instr_orrs__pl,
++ arm_instr_orrs__vs,
++ arm_instr_orrs__vc,
++ arm_instr_orrs__hi,
++ arm_instr_orrs__ls,
++ arm_instr_orrs__ge,
++ arm_instr_orrs__lt,
++ arm_instr_orrs__gt,
++ arm_instr_orrs__le,
++ arm_instr_orrs,
++ arm_instr_nop,
++ arm_instr_movs__eq,
++ arm_instr_movs__ne,
++ arm_instr_movs__cs,
++ arm_instr_movs__cc,
++ arm_instr_movs__mi,
++ arm_instr_movs__pl,
++ arm_instr_movs__vs,
++ arm_instr_movs__vc,
++ arm_instr_movs__hi,
++ arm_instr_movs__ls,
++ arm_instr_movs__ge,
++ arm_instr_movs__lt,
++ arm_instr_movs__gt,
++ arm_instr_movs__le,
++ arm_instr_movs,
++ arm_instr_nop,
++ arm_instr_bics__eq,
++ arm_instr_bics__ne,
++ arm_instr_bics__cs,
++ arm_instr_bics__cc,
++ arm_instr_bics__mi,
++ arm_instr_bics__pl,
++ arm_instr_bics__vs,
++ arm_instr_bics__vc,
++ arm_instr_bics__hi,
++ arm_instr_bics__ls,
++ arm_instr_bics__ge,
++ arm_instr_bics__lt,
++ arm_instr_bics__gt,
++ arm_instr_bics__le,
++ arm_instr_bics,
++ arm_instr_nop,
++ arm_instr_mvns__eq,
++ arm_instr_mvns__ne,
++ arm_instr_mvns__cs,
++ arm_instr_mvns__cc,
++ arm_instr_mvns__mi,
++ arm_instr_mvns__pl,
++ arm_instr_mvns__vs,
++ arm_instr_mvns__vc,
++ arm_instr_mvns__hi,
++ arm_instr_mvns__ls,
++ arm_instr_mvns__ge,
++ arm_instr_mvns__lt,
++ arm_instr_mvns__gt,
++ arm_instr_mvns__le,
++ arm_instr_mvns,
++ arm_instr_nop,
++ arm_instr_and_pc__eq,
++ arm_instr_and_pc__ne,
++ arm_instr_and_pc__cs,
++ arm_instr_and_pc__cc,
++ arm_instr_and_pc__mi,
++ arm_instr_and_pc__pl,
++ arm_instr_and_pc__vs,
++ arm_instr_and_pc__vc,
++ arm_instr_and_pc__hi,
++ arm_instr_and_pc__ls,
++ arm_instr_and_pc__ge,
++ arm_instr_and_pc__lt,
++ arm_instr_and_pc__gt,
++ arm_instr_and_pc__le,
++ arm_instr_and_pc,
++ arm_instr_nop,
++ arm_instr_eor_pc__eq,
++ arm_instr_eor_pc__ne,
++ arm_instr_eor_pc__cs,
++ arm_instr_eor_pc__cc,
++ arm_instr_eor_pc__mi,
++ arm_instr_eor_pc__pl,
++ arm_instr_eor_pc__vs,
++ arm_instr_eor_pc__vc,
++ arm_instr_eor_pc__hi,
++ arm_instr_eor_pc__ls,
++ arm_instr_eor_pc__ge,
++ arm_instr_eor_pc__lt,
++ arm_instr_eor_pc__gt,
++ arm_instr_eor_pc__le,
++ arm_instr_eor_pc,
++ arm_instr_nop,
++ arm_instr_sub_pc__eq,
++ arm_instr_sub_pc__ne,
++ arm_instr_sub_pc__cs,
++ arm_instr_sub_pc__cc,
++ arm_instr_sub_pc__mi,
++ arm_instr_sub_pc__pl,
++ arm_instr_sub_pc__vs,
++ arm_instr_sub_pc__vc,
++ arm_instr_sub_pc__hi,
++ arm_instr_sub_pc__ls,
++ arm_instr_sub_pc__ge,
++ arm_instr_sub_pc__lt,
++ arm_instr_sub_pc__gt,
++ arm_instr_sub_pc__le,
++ arm_instr_sub_pc,
++ arm_instr_nop,
++ arm_instr_rsb_pc__eq,
++ arm_instr_rsb_pc__ne,
++ arm_instr_rsb_pc__cs,
++ arm_instr_rsb_pc__cc,
++ arm_instr_rsb_pc__mi,
++ arm_instr_rsb_pc__pl,
++ arm_instr_rsb_pc__vs,
++ arm_instr_rsb_pc__vc,
++ arm_instr_rsb_pc__hi,
++ arm_instr_rsb_pc__ls,
++ arm_instr_rsb_pc__ge,
++ arm_instr_rsb_pc__lt,
++ arm_instr_rsb_pc__gt,
++ arm_instr_rsb_pc__le,
++ arm_instr_rsb_pc,
++ arm_instr_nop,
++ arm_instr_add_pc__eq,
++ arm_instr_add_pc__ne,
++ arm_instr_add_pc__cs,
++ arm_instr_add_pc__cc,
++ arm_instr_add_pc__mi,
++ arm_instr_add_pc__pl,
++ arm_instr_add_pc__vs,
++ arm_instr_add_pc__vc,
++ arm_instr_add_pc__hi,
++ arm_instr_add_pc__ls,
++ arm_instr_add_pc__ge,
++ arm_instr_add_pc__lt,
++ arm_instr_add_pc__gt,
++ arm_instr_add_pc__le,
++ arm_instr_add_pc,
++ arm_instr_nop,
++ arm_instr_adc_pc__eq,
++ arm_instr_adc_pc__ne,
++ arm_instr_adc_pc__cs,
++ arm_instr_adc_pc__cc,
++ arm_instr_adc_pc__mi,
++ arm_instr_adc_pc__pl,
++ arm_instr_adc_pc__vs,
++ arm_instr_adc_pc__vc,
++ arm_instr_adc_pc__hi,
++ arm_instr_adc_pc__ls,
++ arm_instr_adc_pc__ge,
++ arm_instr_adc_pc__lt,
++ arm_instr_adc_pc__gt,
++ arm_instr_adc_pc__le,
++ arm_instr_adc_pc,
++ arm_instr_nop,
++ arm_instr_sbc_pc__eq,
++ arm_instr_sbc_pc__ne,
++ arm_instr_sbc_pc__cs,
++ arm_instr_sbc_pc__cc,
++ arm_instr_sbc_pc__mi,
++ arm_instr_sbc_pc__pl,
++ arm_instr_sbc_pc__vs,
++ arm_instr_sbc_pc__vc,
++ arm_instr_sbc_pc__hi,
++ arm_instr_sbc_pc__ls,
++ arm_instr_sbc_pc__ge,
++ arm_instr_sbc_pc__lt,
++ arm_instr_sbc_pc__gt,
++ arm_instr_sbc_pc__le,
++ arm_instr_sbc_pc,
++ arm_instr_nop,
++ arm_instr_rsc_pc__eq,
++ arm_instr_rsc_pc__ne,
++ arm_instr_rsc_pc__cs,
++ arm_instr_rsc_pc__cc,
++ arm_instr_rsc_pc__mi,
++ arm_instr_rsc_pc__pl,
++ arm_instr_rsc_pc__vs,
++ arm_instr_rsc_pc__vc,
++ arm_instr_rsc_pc__hi,
++ arm_instr_rsc_pc__ls,
++ arm_instr_rsc_pc__ge,
++ arm_instr_rsc_pc__lt,
++ arm_instr_rsc_pc__gt,
++ arm_instr_rsc_pc__le,
++ arm_instr_rsc_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_orr_pc__eq,
++ arm_instr_orr_pc__ne,
++ arm_instr_orr_pc__cs,
++ arm_instr_orr_pc__cc,
++ arm_instr_orr_pc__mi,
++ arm_instr_orr_pc__pl,
++ arm_instr_orr_pc__vs,
++ arm_instr_orr_pc__vc,
++ arm_instr_orr_pc__hi,
++ arm_instr_orr_pc__ls,
++ arm_instr_orr_pc__ge,
++ arm_instr_orr_pc__lt,
++ arm_instr_orr_pc__gt,
++ arm_instr_orr_pc__le,
++ arm_instr_orr_pc,
++ arm_instr_nop,
++ arm_instr_mov_pc__eq,
++ arm_instr_mov_pc__ne,
++ arm_instr_mov_pc__cs,
++ arm_instr_mov_pc__cc,
++ arm_instr_mov_pc__mi,
++ arm_instr_mov_pc__pl,
++ arm_instr_mov_pc__vs,
++ arm_instr_mov_pc__vc,
++ arm_instr_mov_pc__hi,
++ arm_instr_mov_pc__ls,
++ arm_instr_mov_pc__ge,
++ arm_instr_mov_pc__lt,
++ arm_instr_mov_pc__gt,
++ arm_instr_mov_pc__le,
++ arm_instr_mov_pc,
++ arm_instr_nop,
++ arm_instr_bic_pc__eq,
++ arm_instr_bic_pc__ne,
++ arm_instr_bic_pc__cs,
++ arm_instr_bic_pc__cc,
++ arm_instr_bic_pc__mi,
++ arm_instr_bic_pc__pl,
++ arm_instr_bic_pc__vs,
++ arm_instr_bic_pc__vc,
++ arm_instr_bic_pc__hi,
++ arm_instr_bic_pc__ls,
++ arm_instr_bic_pc__ge,
++ arm_instr_bic_pc__lt,
++ arm_instr_bic_pc__gt,
++ arm_instr_bic_pc__le,
++ arm_instr_bic_pc,
++ arm_instr_nop,
++ arm_instr_mvn_pc__eq,
++ arm_instr_mvn_pc__ne,
++ arm_instr_mvn_pc__cs,
++ arm_instr_mvn_pc__cc,
++ arm_instr_mvn_pc__mi,
++ arm_instr_mvn_pc__pl,
++ arm_instr_mvn_pc__vs,
++ arm_instr_mvn_pc__vc,
++ arm_instr_mvn_pc__hi,
++ arm_instr_mvn_pc__ls,
++ arm_instr_mvn_pc__ge,
++ arm_instr_mvn_pc__lt,
++ arm_instr_mvn_pc__gt,
++ arm_instr_mvn_pc__le,
++ arm_instr_mvn_pc,
++ arm_instr_nop,
++ arm_instr_ands_pc__eq,
++ arm_instr_ands_pc__ne,
++ arm_instr_ands_pc__cs,
++ arm_instr_ands_pc__cc,
++ arm_instr_ands_pc__mi,
++ arm_instr_ands_pc__pl,
++ arm_instr_ands_pc__vs,
++ arm_instr_ands_pc__vc,
++ arm_instr_ands_pc__hi,
++ arm_instr_ands_pc__ls,
++ arm_instr_ands_pc__ge,
++ arm_instr_ands_pc__lt,
++ arm_instr_ands_pc__gt,
++ arm_instr_ands_pc__le,
++ arm_instr_ands_pc,
++ arm_instr_nop,
++ arm_instr_eors_pc__eq,
++ arm_instr_eors_pc__ne,
++ arm_instr_eors_pc__cs,
++ arm_instr_eors_pc__cc,
++ arm_instr_eors_pc__mi,
++ arm_instr_eors_pc__pl,
++ arm_instr_eors_pc__vs,
++ arm_instr_eors_pc__vc,
++ arm_instr_eors_pc__hi,
++ arm_instr_eors_pc__ls,
++ arm_instr_eors_pc__ge,
++ arm_instr_eors_pc__lt,
++ arm_instr_eors_pc__gt,
++ arm_instr_eors_pc__le,
++ arm_instr_eors_pc,
++ arm_instr_nop,
++ arm_instr_subs_pc__eq,
++ arm_instr_subs_pc__ne,
++ arm_instr_subs_pc__cs,
++ arm_instr_subs_pc__cc,
++ arm_instr_subs_pc__mi,
++ arm_instr_subs_pc__pl,
++ arm_instr_subs_pc__vs,
++ arm_instr_subs_pc__vc,
++ arm_instr_subs_pc__hi,
++ arm_instr_subs_pc__ls,
++ arm_instr_subs_pc__ge,
++ arm_instr_subs_pc__lt,
++ arm_instr_subs_pc__gt,
++ arm_instr_subs_pc__le,
++ arm_instr_subs_pc,
++ arm_instr_nop,
++ arm_instr_rsbs_pc__eq,
++ arm_instr_rsbs_pc__ne,
++ arm_instr_rsbs_pc__cs,
++ arm_instr_rsbs_pc__cc,
++ arm_instr_rsbs_pc__mi,
++ arm_instr_rsbs_pc__pl,
++ arm_instr_rsbs_pc__vs,
++ arm_instr_rsbs_pc__vc,
++ arm_instr_rsbs_pc__hi,
++ arm_instr_rsbs_pc__ls,
++ arm_instr_rsbs_pc__ge,
++ arm_instr_rsbs_pc__lt,
++ arm_instr_rsbs_pc__gt,
++ arm_instr_rsbs_pc__le,
++ arm_instr_rsbs_pc,
++ arm_instr_nop,
++ arm_instr_adds_pc__eq,
++ arm_instr_adds_pc__ne,
++ arm_instr_adds_pc__cs,
++ arm_instr_adds_pc__cc,
++ arm_instr_adds_pc__mi,
++ arm_instr_adds_pc__pl,
++ arm_instr_adds_pc__vs,
++ arm_instr_adds_pc__vc,
++ arm_instr_adds_pc__hi,
++ arm_instr_adds_pc__ls,
++ arm_instr_adds_pc__ge,
++ arm_instr_adds_pc__lt,
++ arm_instr_adds_pc__gt,
++ arm_instr_adds_pc__le,
++ arm_instr_adds_pc,
++ arm_instr_nop,
++ arm_instr_adcs_pc__eq,
++ arm_instr_adcs_pc__ne,
++ arm_instr_adcs_pc__cs,
++ arm_instr_adcs_pc__cc,
++ arm_instr_adcs_pc__mi,
++ arm_instr_adcs_pc__pl,
++ arm_instr_adcs_pc__vs,
++ arm_instr_adcs_pc__vc,
++ arm_instr_adcs_pc__hi,
++ arm_instr_adcs_pc__ls,
++ arm_instr_adcs_pc__ge,
++ arm_instr_adcs_pc__lt,
++ arm_instr_adcs_pc__gt,
++ arm_instr_adcs_pc__le,
++ arm_instr_adcs_pc,
++ arm_instr_nop,
++ arm_instr_sbcs_pc__eq,
++ arm_instr_sbcs_pc__ne,
++ arm_instr_sbcs_pc__cs,
++ arm_instr_sbcs_pc__cc,
++ arm_instr_sbcs_pc__mi,
++ arm_instr_sbcs_pc__pl,
++ arm_instr_sbcs_pc__vs,
++ arm_instr_sbcs_pc__vc,
++ arm_instr_sbcs_pc__hi,
++ arm_instr_sbcs_pc__ls,
++ arm_instr_sbcs_pc__ge,
++ arm_instr_sbcs_pc__lt,
++ arm_instr_sbcs_pc__gt,
++ arm_instr_sbcs_pc__le,
++ arm_instr_sbcs_pc,
++ arm_instr_nop,
++ arm_instr_rscs_pc__eq,
++ arm_instr_rscs_pc__ne,
++ arm_instr_rscs_pc__cs,
++ arm_instr_rscs_pc__cc,
++ arm_instr_rscs_pc__mi,
++ arm_instr_rscs_pc__pl,
++ arm_instr_rscs_pc__vs,
++ arm_instr_rscs_pc__vc,
++ arm_instr_rscs_pc__hi,
++ arm_instr_rscs_pc__ls,
++ arm_instr_rscs_pc__ge,
++ arm_instr_rscs_pc__lt,
++ arm_instr_rscs_pc__gt,
++ arm_instr_rscs_pc__le,
++ arm_instr_rscs_pc,
++ arm_instr_nop,
++ arm_instr_tsts_pc__eq,
++ arm_instr_tsts_pc__ne,
++ arm_instr_tsts_pc__cs,
++ arm_instr_tsts_pc__cc,
++ arm_instr_tsts_pc__mi,
++ arm_instr_tsts_pc__pl,
++ arm_instr_tsts_pc__vs,
++ arm_instr_tsts_pc__vc,
++ arm_instr_tsts_pc__hi,
++ arm_instr_tsts_pc__ls,
++ arm_instr_tsts_pc__ge,
++ arm_instr_tsts_pc__lt,
++ arm_instr_tsts_pc__gt,
++ arm_instr_tsts_pc__le,
++ arm_instr_tsts_pc,
++ arm_instr_nop,
++ arm_instr_teqs_pc__eq,
++ arm_instr_teqs_pc__ne,
++ arm_instr_teqs_pc__cs,
++ arm_instr_teqs_pc__cc,
++ arm_instr_teqs_pc__mi,
++ arm_instr_teqs_pc__pl,
++ arm_instr_teqs_pc__vs,
++ arm_instr_teqs_pc__vc,
++ arm_instr_teqs_pc__hi,
++ arm_instr_teqs_pc__ls,
++ arm_instr_teqs_pc__ge,
++ arm_instr_teqs_pc__lt,
++ arm_instr_teqs_pc__gt,
++ arm_instr_teqs_pc__le,
++ arm_instr_teqs_pc,
++ arm_instr_nop,
++ arm_instr_cmps_pc__eq,
++ arm_instr_cmps_pc__ne,
++ arm_instr_cmps_pc__cs,
++ arm_instr_cmps_pc__cc,
++ arm_instr_cmps_pc__mi,
++ arm_instr_cmps_pc__pl,
++ arm_instr_cmps_pc__vs,
++ arm_instr_cmps_pc__vc,
++ arm_instr_cmps_pc__hi,
++ arm_instr_cmps_pc__ls,
++ arm_instr_cmps_pc__ge,
++ arm_instr_cmps_pc__lt,
++ arm_instr_cmps_pc__gt,
++ arm_instr_cmps_pc__le,
++ arm_instr_cmps_pc,
++ arm_instr_nop,
++ arm_instr_cmns_pc__eq,
++ arm_instr_cmns_pc__ne,
++ arm_instr_cmns_pc__cs,
++ arm_instr_cmns_pc__cc,
++ arm_instr_cmns_pc__mi,
++ arm_instr_cmns_pc__pl,
++ arm_instr_cmns_pc__vs,
++ arm_instr_cmns_pc__vc,
++ arm_instr_cmns_pc__hi,
++ arm_instr_cmns_pc__ls,
++ arm_instr_cmns_pc__ge,
++ arm_instr_cmns_pc__lt,
++ arm_instr_cmns_pc__gt,
++ arm_instr_cmns_pc__le,
++ arm_instr_cmns_pc,
++ arm_instr_nop,
++ arm_instr_orrs_pc__eq,
++ arm_instr_orrs_pc__ne,
++ arm_instr_orrs_pc__cs,
++ arm_instr_orrs_pc__cc,
++ arm_instr_orrs_pc__mi,
++ arm_instr_orrs_pc__pl,
++ arm_instr_orrs_pc__vs,
++ arm_instr_orrs_pc__vc,
++ arm_instr_orrs_pc__hi,
++ arm_instr_orrs_pc__ls,
++ arm_instr_orrs_pc__ge,
++ arm_instr_orrs_pc__lt,
++ arm_instr_orrs_pc__gt,
++ arm_instr_orrs_pc__le,
++ arm_instr_orrs_pc,
++ arm_instr_nop,
++ arm_instr_movs_pc__eq,
++ arm_instr_movs_pc__ne,
++ arm_instr_movs_pc__cs,
++ arm_instr_movs_pc__cc,
++ arm_instr_movs_pc__mi,
++ arm_instr_movs_pc__pl,
++ arm_instr_movs_pc__vs,
++ arm_instr_movs_pc__vc,
++ arm_instr_movs_pc__hi,
++ arm_instr_movs_pc__ls,
++ arm_instr_movs_pc__ge,
++ arm_instr_movs_pc__lt,
++ arm_instr_movs_pc__gt,
++ arm_instr_movs_pc__le,
++ arm_instr_movs_pc,
++ arm_instr_nop,
++ arm_instr_bics_pc__eq,
++ arm_instr_bics_pc__ne,
++ arm_instr_bics_pc__cs,
++ arm_instr_bics_pc__cc,
++ arm_instr_bics_pc__mi,
++ arm_instr_bics_pc__pl,
++ arm_instr_bics_pc__vs,
++ arm_instr_bics_pc__vc,
++ arm_instr_bics_pc__hi,
++ arm_instr_bics_pc__ls,
++ arm_instr_bics_pc__ge,
++ arm_instr_bics_pc__lt,
++ arm_instr_bics_pc__gt,
++ arm_instr_bics_pc__le,
++ arm_instr_bics_pc,
++ arm_instr_nop,
++ arm_instr_mvns_pc__eq,
++ arm_instr_mvns_pc__ne,
++ arm_instr_mvns_pc__cs,
++ arm_instr_mvns_pc__cc,
++ arm_instr_mvns_pc__mi,
++ arm_instr_mvns_pc__pl,
++ arm_instr_mvns_pc__vs,
++ arm_instr_mvns_pc__vc,
++ arm_instr_mvns_pc__hi,
++ arm_instr_mvns_pc__ls,
++ arm_instr_mvns_pc__ge,
++ arm_instr_mvns_pc__lt,
++ arm_instr_mvns_pc__gt,
++ arm_instr_mvns_pc__le,
++ arm_instr_mvns_pc,
++ arm_instr_nop,
++ arm_instr_and_reg__eq,
++ arm_instr_and_reg__ne,
++ arm_instr_and_reg__cs,
++ arm_instr_and_reg__cc,
++ arm_instr_and_reg__mi,
++ arm_instr_and_reg__pl,
++ arm_instr_and_reg__vs,
++ arm_instr_and_reg__vc,
++ arm_instr_and_reg__hi,
++ arm_instr_and_reg__ls,
++ arm_instr_and_reg__ge,
++ arm_instr_and_reg__lt,
++ arm_instr_and_reg__gt,
++ arm_instr_and_reg__le,
++ arm_instr_and_reg,
++ arm_instr_nop,
++ arm_instr_eor_reg__eq,
++ arm_instr_eor_reg__ne,
++ arm_instr_eor_reg__cs,
++ arm_instr_eor_reg__cc,
++ arm_instr_eor_reg__mi,
++ arm_instr_eor_reg__pl,
++ arm_instr_eor_reg__vs,
++ arm_instr_eor_reg__vc,
++ arm_instr_eor_reg__hi,
++ arm_instr_eor_reg__ls,
++ arm_instr_eor_reg__ge,
++ arm_instr_eor_reg__lt,
++ arm_instr_eor_reg__gt,
++ arm_instr_eor_reg__le,
++ arm_instr_eor_reg,
++ arm_instr_nop,
++ arm_instr_sub_reg__eq,
++ arm_instr_sub_reg__ne,
++ arm_instr_sub_reg__cs,
++ arm_instr_sub_reg__cc,
++ arm_instr_sub_reg__mi,
++ arm_instr_sub_reg__pl,
++ arm_instr_sub_reg__vs,
++ arm_instr_sub_reg__vc,
++ arm_instr_sub_reg__hi,
++ arm_instr_sub_reg__ls,
++ arm_instr_sub_reg__ge,
++ arm_instr_sub_reg__lt,
++ arm_instr_sub_reg__gt,
++ arm_instr_sub_reg__le,
++ arm_instr_sub_reg,
++ arm_instr_nop,
++ arm_instr_rsb_reg__eq,
++ arm_instr_rsb_reg__ne,
++ arm_instr_rsb_reg__cs,
++ arm_instr_rsb_reg__cc,
++ arm_instr_rsb_reg__mi,
++ arm_instr_rsb_reg__pl,
++ arm_instr_rsb_reg__vs,
++ arm_instr_rsb_reg__vc,
++ arm_instr_rsb_reg__hi,
++ arm_instr_rsb_reg__ls,
++ arm_instr_rsb_reg__ge,
++ arm_instr_rsb_reg__lt,
++ arm_instr_rsb_reg__gt,
++ arm_instr_rsb_reg__le,
++ arm_instr_rsb_reg,
++ arm_instr_nop,
++ arm_instr_add_reg__eq,
++ arm_instr_add_reg__ne,
++ arm_instr_add_reg__cs,
++ arm_instr_add_reg__cc,
++ arm_instr_add_reg__mi,
++ arm_instr_add_reg__pl,
++ arm_instr_add_reg__vs,
++ arm_instr_add_reg__vc,
++ arm_instr_add_reg__hi,
++ arm_instr_add_reg__ls,
++ arm_instr_add_reg__ge,
++ arm_instr_add_reg__lt,
++ arm_instr_add_reg__gt,
++ arm_instr_add_reg__le,
++ arm_instr_add_reg,
++ arm_instr_nop,
++ arm_instr_adc_reg__eq,
++ arm_instr_adc_reg__ne,
++ arm_instr_adc_reg__cs,
++ arm_instr_adc_reg__cc,
++ arm_instr_adc_reg__mi,
++ arm_instr_adc_reg__pl,
++ arm_instr_adc_reg__vs,
++ arm_instr_adc_reg__vc,
++ arm_instr_adc_reg__hi,
++ arm_instr_adc_reg__ls,
++ arm_instr_adc_reg__ge,
++ arm_instr_adc_reg__lt,
++ arm_instr_adc_reg__gt,
++ arm_instr_adc_reg__le,
++ arm_instr_adc_reg,
++ arm_instr_nop,
++ arm_instr_sbc_reg__eq,
++ arm_instr_sbc_reg__ne,
++ arm_instr_sbc_reg__cs,
++ arm_instr_sbc_reg__cc,
++ arm_instr_sbc_reg__mi,
++ arm_instr_sbc_reg__pl,
++ arm_instr_sbc_reg__vs,
++ arm_instr_sbc_reg__vc,
++ arm_instr_sbc_reg__hi,
++ arm_instr_sbc_reg__ls,
++ arm_instr_sbc_reg__ge,
++ arm_instr_sbc_reg__lt,
++ arm_instr_sbc_reg__gt,
++ arm_instr_sbc_reg__le,
++ arm_instr_sbc_reg,
++ arm_instr_nop,
++ arm_instr_rsc_reg__eq,
++ arm_instr_rsc_reg__ne,
++ arm_instr_rsc_reg__cs,
++ arm_instr_rsc_reg__cc,
++ arm_instr_rsc_reg__mi,
++ arm_instr_rsc_reg__pl,
++ arm_instr_rsc_reg__vs,
++ arm_instr_rsc_reg__vc,
++ arm_instr_rsc_reg__hi,
++ arm_instr_rsc_reg__ls,
++ arm_instr_rsc_reg__ge,
++ arm_instr_rsc_reg__lt,
++ arm_instr_rsc_reg__gt,
++ arm_instr_rsc_reg__le,
++ arm_instr_rsc_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_orr_reg__eq,
++ arm_instr_orr_reg__ne,
++ arm_instr_orr_reg__cs,
++ arm_instr_orr_reg__cc,
++ arm_instr_orr_reg__mi,
++ arm_instr_orr_reg__pl,
++ arm_instr_orr_reg__vs,
++ arm_instr_orr_reg__vc,
++ arm_instr_orr_reg__hi,
++ arm_instr_orr_reg__ls,
++ arm_instr_orr_reg__ge,
++ arm_instr_orr_reg__lt,
++ arm_instr_orr_reg__gt,
++ arm_instr_orr_reg__le,
++ arm_instr_orr_reg,
++ arm_instr_nop,
++ arm_instr_mov_reg__eq,
++ arm_instr_mov_reg__ne,
++ arm_instr_mov_reg__cs,
++ arm_instr_mov_reg__cc,
++ arm_instr_mov_reg__mi,
++ arm_instr_mov_reg__pl,
++ arm_instr_mov_reg__vs,
++ arm_instr_mov_reg__vc,
++ arm_instr_mov_reg__hi,
++ arm_instr_mov_reg__ls,
++ arm_instr_mov_reg__ge,
++ arm_instr_mov_reg__lt,
++ arm_instr_mov_reg__gt,
++ arm_instr_mov_reg__le,
++ arm_instr_mov_reg,
++ arm_instr_nop,
++ arm_instr_bic_reg__eq,
++ arm_instr_bic_reg__ne,
++ arm_instr_bic_reg__cs,
++ arm_instr_bic_reg__cc,
++ arm_instr_bic_reg__mi,
++ arm_instr_bic_reg__pl,
++ arm_instr_bic_reg__vs,
++ arm_instr_bic_reg__vc,
++ arm_instr_bic_reg__hi,
++ arm_instr_bic_reg__ls,
++ arm_instr_bic_reg__ge,
++ arm_instr_bic_reg__lt,
++ arm_instr_bic_reg__gt,
++ arm_instr_bic_reg__le,
++ arm_instr_bic_reg,
++ arm_instr_nop,
++ arm_instr_mvn_reg__eq,
++ arm_instr_mvn_reg__ne,
++ arm_instr_mvn_reg__cs,
++ arm_instr_mvn_reg__cc,
++ arm_instr_mvn_reg__mi,
++ arm_instr_mvn_reg__pl,
++ arm_instr_mvn_reg__vs,
++ arm_instr_mvn_reg__vc,
++ arm_instr_mvn_reg__hi,
++ arm_instr_mvn_reg__ls,
++ arm_instr_mvn_reg__ge,
++ arm_instr_mvn_reg__lt,
++ arm_instr_mvn_reg__gt,
++ arm_instr_mvn_reg__le,
++ arm_instr_mvn_reg,
++ arm_instr_nop,
++ arm_instr_ands_reg__eq,
++ arm_instr_ands_reg__ne,
++ arm_instr_ands_reg__cs,
++ arm_instr_ands_reg__cc,
++ arm_instr_ands_reg__mi,
++ arm_instr_ands_reg__pl,
++ arm_instr_ands_reg__vs,
++ arm_instr_ands_reg__vc,
++ arm_instr_ands_reg__hi,
++ arm_instr_ands_reg__ls,
++ arm_instr_ands_reg__ge,
++ arm_instr_ands_reg__lt,
++ arm_instr_ands_reg__gt,
++ arm_instr_ands_reg__le,
++ arm_instr_ands_reg,
++ arm_instr_nop,
++ arm_instr_eors_reg__eq,
++ arm_instr_eors_reg__ne,
++ arm_instr_eors_reg__cs,
++ arm_instr_eors_reg__cc,
++ arm_instr_eors_reg__mi,
++ arm_instr_eors_reg__pl,
++ arm_instr_eors_reg__vs,
++ arm_instr_eors_reg__vc,
++ arm_instr_eors_reg__hi,
++ arm_instr_eors_reg__ls,
++ arm_instr_eors_reg__ge,
++ arm_instr_eors_reg__lt,
++ arm_instr_eors_reg__gt,
++ arm_instr_eors_reg__le,
++ arm_instr_eors_reg,
++ arm_instr_nop,
++ arm_instr_subs_reg__eq,
++ arm_instr_subs_reg__ne,
++ arm_instr_subs_reg__cs,
++ arm_instr_subs_reg__cc,
++ arm_instr_subs_reg__mi,
++ arm_instr_subs_reg__pl,
++ arm_instr_subs_reg__vs,
++ arm_instr_subs_reg__vc,
++ arm_instr_subs_reg__hi,
++ arm_instr_subs_reg__ls,
++ arm_instr_subs_reg__ge,
++ arm_instr_subs_reg__lt,
++ arm_instr_subs_reg__gt,
++ arm_instr_subs_reg__le,
++ arm_instr_subs_reg,
++ arm_instr_nop,
++ arm_instr_rsbs_reg__eq,
++ arm_instr_rsbs_reg__ne,
++ arm_instr_rsbs_reg__cs,
++ arm_instr_rsbs_reg__cc,
++ arm_instr_rsbs_reg__mi,
++ arm_instr_rsbs_reg__pl,
++ arm_instr_rsbs_reg__vs,
++ arm_instr_rsbs_reg__vc,
++ arm_instr_rsbs_reg__hi,
++ arm_instr_rsbs_reg__ls,
++ arm_instr_rsbs_reg__ge,
++ arm_instr_rsbs_reg__lt,
++ arm_instr_rsbs_reg__gt,
++ arm_instr_rsbs_reg__le,
++ arm_instr_rsbs_reg,
++ arm_instr_nop,
++ arm_instr_adds_reg__eq,
++ arm_instr_adds_reg__ne,
++ arm_instr_adds_reg__cs,
++ arm_instr_adds_reg__cc,
++ arm_instr_adds_reg__mi,
++ arm_instr_adds_reg__pl,
++ arm_instr_adds_reg__vs,
++ arm_instr_adds_reg__vc,
++ arm_instr_adds_reg__hi,
++ arm_instr_adds_reg__ls,
++ arm_instr_adds_reg__ge,
++ arm_instr_adds_reg__lt,
++ arm_instr_adds_reg__gt,
++ arm_instr_adds_reg__le,
++ arm_instr_adds_reg,
++ arm_instr_nop,
++ arm_instr_adcs_reg__eq,
++ arm_instr_adcs_reg__ne,
++ arm_instr_adcs_reg__cs,
++ arm_instr_adcs_reg__cc,
++ arm_instr_adcs_reg__mi,
++ arm_instr_adcs_reg__pl,
++ arm_instr_adcs_reg__vs,
++ arm_instr_adcs_reg__vc,
++ arm_instr_adcs_reg__hi,
++ arm_instr_adcs_reg__ls,
++ arm_instr_adcs_reg__ge,
++ arm_instr_adcs_reg__lt,
++ arm_instr_adcs_reg__gt,
++ arm_instr_adcs_reg__le,
++ arm_instr_adcs_reg,
++ arm_instr_nop,
++ arm_instr_sbcs_reg__eq,
++ arm_instr_sbcs_reg__ne,
++ arm_instr_sbcs_reg__cs,
++ arm_instr_sbcs_reg__cc,
++ arm_instr_sbcs_reg__mi,
++ arm_instr_sbcs_reg__pl,
++ arm_instr_sbcs_reg__vs,
++ arm_instr_sbcs_reg__vc,
++ arm_instr_sbcs_reg__hi,
++ arm_instr_sbcs_reg__ls,
++ arm_instr_sbcs_reg__ge,
++ arm_instr_sbcs_reg__lt,
++ arm_instr_sbcs_reg__gt,
++ arm_instr_sbcs_reg__le,
++ arm_instr_sbcs_reg,
++ arm_instr_nop,
++ arm_instr_rscs_reg__eq,
++ arm_instr_rscs_reg__ne,
++ arm_instr_rscs_reg__cs,
++ arm_instr_rscs_reg__cc,
++ arm_instr_rscs_reg__mi,
++ arm_instr_rscs_reg__pl,
++ arm_instr_rscs_reg__vs,
++ arm_instr_rscs_reg__vc,
++ arm_instr_rscs_reg__hi,
++ arm_instr_rscs_reg__ls,
++ arm_instr_rscs_reg__ge,
++ arm_instr_rscs_reg__lt,
++ arm_instr_rscs_reg__gt,
++ arm_instr_rscs_reg__le,
++ arm_instr_rscs_reg,
++ arm_instr_nop,
++ arm_instr_tsts_reg__eq,
++ arm_instr_tsts_reg__ne,
++ arm_instr_tsts_reg__cs,
++ arm_instr_tsts_reg__cc,
++ arm_instr_tsts_reg__mi,
++ arm_instr_tsts_reg__pl,
++ arm_instr_tsts_reg__vs,
++ arm_instr_tsts_reg__vc,
++ arm_instr_tsts_reg__hi,
++ arm_instr_tsts_reg__ls,
++ arm_instr_tsts_reg__ge,
++ arm_instr_tsts_reg__lt,
++ arm_instr_tsts_reg__gt,
++ arm_instr_tsts_reg__le,
++ arm_instr_tsts_reg,
++ arm_instr_nop,
++ arm_instr_teqs_reg__eq,
++ arm_instr_teqs_reg__ne,
++ arm_instr_teqs_reg__cs,
++ arm_instr_teqs_reg__cc,
++ arm_instr_teqs_reg__mi,
++ arm_instr_teqs_reg__pl,
++ arm_instr_teqs_reg__vs,
++ arm_instr_teqs_reg__vc,
++ arm_instr_teqs_reg__hi,
++ arm_instr_teqs_reg__ls,
++ arm_instr_teqs_reg__ge,
++ arm_instr_teqs_reg__lt,
++ arm_instr_teqs_reg__gt,
++ arm_instr_teqs_reg__le,
++ arm_instr_teqs_reg,
++ arm_instr_nop,
++ arm_instr_cmps_reg__eq,
++ arm_instr_cmps_reg__ne,
++ arm_instr_cmps_reg__cs,
++ arm_instr_cmps_reg__cc,
++ arm_instr_cmps_reg__mi,
++ arm_instr_cmps_reg__pl,
++ arm_instr_cmps_reg__vs,
++ arm_instr_cmps_reg__vc,
++ arm_instr_cmps_reg__hi,
++ arm_instr_cmps_reg__ls,
++ arm_instr_cmps_reg__ge,
++ arm_instr_cmps_reg__lt,
++ arm_instr_cmps_reg__gt,
++ arm_instr_cmps_reg__le,
++ arm_instr_cmps_reg,
++ arm_instr_nop,
++ arm_instr_cmns_reg__eq,
++ arm_instr_cmns_reg__ne,
++ arm_instr_cmns_reg__cs,
++ arm_instr_cmns_reg__cc,
++ arm_instr_cmns_reg__mi,
++ arm_instr_cmns_reg__pl,
++ arm_instr_cmns_reg__vs,
++ arm_instr_cmns_reg__vc,
++ arm_instr_cmns_reg__hi,
++ arm_instr_cmns_reg__ls,
++ arm_instr_cmns_reg__ge,
++ arm_instr_cmns_reg__lt,
++ arm_instr_cmns_reg__gt,
++ arm_instr_cmns_reg__le,
++ arm_instr_cmns_reg,
++ arm_instr_nop,
++ arm_instr_orrs_reg__eq,
++ arm_instr_orrs_reg__ne,
++ arm_instr_orrs_reg__cs,
++ arm_instr_orrs_reg__cc,
++ arm_instr_orrs_reg__mi,
++ arm_instr_orrs_reg__pl,
++ arm_instr_orrs_reg__vs,
++ arm_instr_orrs_reg__vc,
++ arm_instr_orrs_reg__hi,
++ arm_instr_orrs_reg__ls,
++ arm_instr_orrs_reg__ge,
++ arm_instr_orrs_reg__lt,
++ arm_instr_orrs_reg__gt,
++ arm_instr_orrs_reg__le,
++ arm_instr_orrs_reg,
++ arm_instr_nop,
++ arm_instr_movs_reg__eq,
++ arm_instr_movs_reg__ne,
++ arm_instr_movs_reg__cs,
++ arm_instr_movs_reg__cc,
++ arm_instr_movs_reg__mi,
++ arm_instr_movs_reg__pl,
++ arm_instr_movs_reg__vs,
++ arm_instr_movs_reg__vc,
++ arm_instr_movs_reg__hi,
++ arm_instr_movs_reg__ls,
++ arm_instr_movs_reg__ge,
++ arm_instr_movs_reg__lt,
++ arm_instr_movs_reg__gt,
++ arm_instr_movs_reg__le,
++ arm_instr_movs_reg,
++ arm_instr_nop,
++ arm_instr_bics_reg__eq,
++ arm_instr_bics_reg__ne,
++ arm_instr_bics_reg__cs,
++ arm_instr_bics_reg__cc,
++ arm_instr_bics_reg__mi,
++ arm_instr_bics_reg__pl,
++ arm_instr_bics_reg__vs,
++ arm_instr_bics_reg__vc,
++ arm_instr_bics_reg__hi,
++ arm_instr_bics_reg__ls,
++ arm_instr_bics_reg__ge,
++ arm_instr_bics_reg__lt,
++ arm_instr_bics_reg__gt,
++ arm_instr_bics_reg__le,
++ arm_instr_bics_reg,
++ arm_instr_nop,
++ arm_instr_mvns_reg__eq,
++ arm_instr_mvns_reg__ne,
++ arm_instr_mvns_reg__cs,
++ arm_instr_mvns_reg__cc,
++ arm_instr_mvns_reg__mi,
++ arm_instr_mvns_reg__pl,
++ arm_instr_mvns_reg__vs,
++ arm_instr_mvns_reg__vc,
++ arm_instr_mvns_reg__hi,
++ arm_instr_mvns_reg__ls,
++ arm_instr_mvns_reg__ge,
++ arm_instr_mvns_reg__lt,
++ arm_instr_mvns_reg__gt,
++ arm_instr_mvns_reg__le,
++ arm_instr_mvns_reg,
++ arm_instr_nop,
++ arm_instr_and_pc_reg__eq,
++ arm_instr_and_pc_reg__ne,
++ arm_instr_and_pc_reg__cs,
++ arm_instr_and_pc_reg__cc,
++ arm_instr_and_pc_reg__mi,
++ arm_instr_and_pc_reg__pl,
++ arm_instr_and_pc_reg__vs,
++ arm_instr_and_pc_reg__vc,
++ arm_instr_and_pc_reg__hi,
++ arm_instr_and_pc_reg__ls,
++ arm_instr_and_pc_reg__ge,
++ arm_instr_and_pc_reg__lt,
++ arm_instr_and_pc_reg__gt,
++ arm_instr_and_pc_reg__le,
++ arm_instr_and_pc_reg,
++ arm_instr_nop,
++ arm_instr_eor_pc_reg__eq,
++ arm_instr_eor_pc_reg__ne,
++ arm_instr_eor_pc_reg__cs,
++ arm_instr_eor_pc_reg__cc,
++ arm_instr_eor_pc_reg__mi,
++ arm_instr_eor_pc_reg__pl,
++ arm_instr_eor_pc_reg__vs,
++ arm_instr_eor_pc_reg__vc,
++ arm_instr_eor_pc_reg__hi,
++ arm_instr_eor_pc_reg__ls,
++ arm_instr_eor_pc_reg__ge,
++ arm_instr_eor_pc_reg__lt,
++ arm_instr_eor_pc_reg__gt,
++ arm_instr_eor_pc_reg__le,
++ arm_instr_eor_pc_reg,
++ arm_instr_nop,
++ arm_instr_sub_pc_reg__eq,
++ arm_instr_sub_pc_reg__ne,
++ arm_instr_sub_pc_reg__cs,
++ arm_instr_sub_pc_reg__cc,
++ arm_instr_sub_pc_reg__mi,
++ arm_instr_sub_pc_reg__pl,
++ arm_instr_sub_pc_reg__vs,
++ arm_instr_sub_pc_reg__vc,
++ arm_instr_sub_pc_reg__hi,
++ arm_instr_sub_pc_reg__ls,
++ arm_instr_sub_pc_reg__ge,
++ arm_instr_sub_pc_reg__lt,
++ arm_instr_sub_pc_reg__gt,
++ arm_instr_sub_pc_reg__le,
++ arm_instr_sub_pc_reg,
++ arm_instr_nop,
++ arm_instr_rsb_pc_reg__eq,
++ arm_instr_rsb_pc_reg__ne,
++ arm_instr_rsb_pc_reg__cs,
++ arm_instr_rsb_pc_reg__cc,
++ arm_instr_rsb_pc_reg__mi,
++ arm_instr_rsb_pc_reg__pl,
++ arm_instr_rsb_pc_reg__vs,
++ arm_instr_rsb_pc_reg__vc,
++ arm_instr_rsb_pc_reg__hi,
++ arm_instr_rsb_pc_reg__ls,
++ arm_instr_rsb_pc_reg__ge,
++ arm_instr_rsb_pc_reg__lt,
++ arm_instr_rsb_pc_reg__gt,
++ arm_instr_rsb_pc_reg__le,
++ arm_instr_rsb_pc_reg,
++ arm_instr_nop,
++ arm_instr_add_pc_reg__eq,
++ arm_instr_add_pc_reg__ne,
++ arm_instr_add_pc_reg__cs,
++ arm_instr_add_pc_reg__cc,
++ arm_instr_add_pc_reg__mi,
++ arm_instr_add_pc_reg__pl,
++ arm_instr_add_pc_reg__vs,
++ arm_instr_add_pc_reg__vc,
++ arm_instr_add_pc_reg__hi,
++ arm_instr_add_pc_reg__ls,
++ arm_instr_add_pc_reg__ge,
++ arm_instr_add_pc_reg__lt,
++ arm_instr_add_pc_reg__gt,
++ arm_instr_add_pc_reg__le,
++ arm_instr_add_pc_reg,
++ arm_instr_nop,
++ arm_instr_adc_pc_reg__eq,
++ arm_instr_adc_pc_reg__ne,
++ arm_instr_adc_pc_reg__cs,
++ arm_instr_adc_pc_reg__cc,
++ arm_instr_adc_pc_reg__mi,
++ arm_instr_adc_pc_reg__pl,
++ arm_instr_adc_pc_reg__vs,
++ arm_instr_adc_pc_reg__vc,
++ arm_instr_adc_pc_reg__hi,
++ arm_instr_adc_pc_reg__ls,
++ arm_instr_adc_pc_reg__ge,
++ arm_instr_adc_pc_reg__lt,
++ arm_instr_adc_pc_reg__gt,
++ arm_instr_adc_pc_reg__le,
++ arm_instr_adc_pc_reg,
++ arm_instr_nop,
++ arm_instr_sbc_pc_reg__eq,
++ arm_instr_sbc_pc_reg__ne,
++ arm_instr_sbc_pc_reg__cs,
++ arm_instr_sbc_pc_reg__cc,
++ arm_instr_sbc_pc_reg__mi,
++ arm_instr_sbc_pc_reg__pl,
++ arm_instr_sbc_pc_reg__vs,
++ arm_instr_sbc_pc_reg__vc,
++ arm_instr_sbc_pc_reg__hi,
++ arm_instr_sbc_pc_reg__ls,
++ arm_instr_sbc_pc_reg__ge,
++ arm_instr_sbc_pc_reg__lt,
++ arm_instr_sbc_pc_reg__gt,
++ arm_instr_sbc_pc_reg__le,
++ arm_instr_sbc_pc_reg,
++ arm_instr_nop,
++ arm_instr_rsc_pc_reg__eq,
++ arm_instr_rsc_pc_reg__ne,
++ arm_instr_rsc_pc_reg__cs,
++ arm_instr_rsc_pc_reg__cc,
++ arm_instr_rsc_pc_reg__mi,
++ arm_instr_rsc_pc_reg__pl,
++ arm_instr_rsc_pc_reg__vs,
++ arm_instr_rsc_pc_reg__vc,
++ arm_instr_rsc_pc_reg__hi,
++ arm_instr_rsc_pc_reg__ls,
++ arm_instr_rsc_pc_reg__ge,
++ arm_instr_rsc_pc_reg__lt,
++ arm_instr_rsc_pc_reg__gt,
++ arm_instr_rsc_pc_reg__le,
++ arm_instr_rsc_pc_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_orr_pc_reg__eq,
++ arm_instr_orr_pc_reg__ne,
++ arm_instr_orr_pc_reg__cs,
++ arm_instr_orr_pc_reg__cc,
++ arm_instr_orr_pc_reg__mi,
++ arm_instr_orr_pc_reg__pl,
++ arm_instr_orr_pc_reg__vs,
++ arm_instr_orr_pc_reg__vc,
++ arm_instr_orr_pc_reg__hi,
++ arm_instr_orr_pc_reg__ls,
++ arm_instr_orr_pc_reg__ge,
++ arm_instr_orr_pc_reg__lt,
++ arm_instr_orr_pc_reg__gt,
++ arm_instr_orr_pc_reg__le,
++ arm_instr_orr_pc_reg,
++ arm_instr_nop,
++ arm_instr_mov_pc_reg__eq,
++ arm_instr_mov_pc_reg__ne,
++ arm_instr_mov_pc_reg__cs,
++ arm_instr_mov_pc_reg__cc,
++ arm_instr_mov_pc_reg__mi,
++ arm_instr_mov_pc_reg__pl,
++ arm_instr_mov_pc_reg__vs,
++ arm_instr_mov_pc_reg__vc,
++ arm_instr_mov_pc_reg__hi,
++ arm_instr_mov_pc_reg__ls,
++ arm_instr_mov_pc_reg__ge,
++ arm_instr_mov_pc_reg__lt,
++ arm_instr_mov_pc_reg__gt,
++ arm_instr_mov_pc_reg__le,
++ arm_instr_mov_pc_reg,
++ arm_instr_nop,
++ arm_instr_bic_pc_reg__eq,
++ arm_instr_bic_pc_reg__ne,
++ arm_instr_bic_pc_reg__cs,
++ arm_instr_bic_pc_reg__cc,
++ arm_instr_bic_pc_reg__mi,
++ arm_instr_bic_pc_reg__pl,
++ arm_instr_bic_pc_reg__vs,
++ arm_instr_bic_pc_reg__vc,
++ arm_instr_bic_pc_reg__hi,
++ arm_instr_bic_pc_reg__ls,
++ arm_instr_bic_pc_reg__ge,
++ arm_instr_bic_pc_reg__lt,
++ arm_instr_bic_pc_reg__gt,
++ arm_instr_bic_pc_reg__le,
++ arm_instr_bic_pc_reg,
++ arm_instr_nop,
++ arm_instr_mvn_pc_reg__eq,
++ arm_instr_mvn_pc_reg__ne,
++ arm_instr_mvn_pc_reg__cs,
++ arm_instr_mvn_pc_reg__cc,
++ arm_instr_mvn_pc_reg__mi,
++ arm_instr_mvn_pc_reg__pl,
++ arm_instr_mvn_pc_reg__vs,
++ arm_instr_mvn_pc_reg__vc,
++ arm_instr_mvn_pc_reg__hi,
++ arm_instr_mvn_pc_reg__ls,
++ arm_instr_mvn_pc_reg__ge,
++ arm_instr_mvn_pc_reg__lt,
++ arm_instr_mvn_pc_reg__gt,
++ arm_instr_mvn_pc_reg__le,
++ arm_instr_mvn_pc_reg,
++ arm_instr_nop,
++ arm_instr_ands_pc_reg__eq,
++ arm_instr_ands_pc_reg__ne,
++ arm_instr_ands_pc_reg__cs,
++ arm_instr_ands_pc_reg__cc,
++ arm_instr_ands_pc_reg__mi,
++ arm_instr_ands_pc_reg__pl,
++ arm_instr_ands_pc_reg__vs,
++ arm_instr_ands_pc_reg__vc,
++ arm_instr_ands_pc_reg__hi,
++ arm_instr_ands_pc_reg__ls,
++ arm_instr_ands_pc_reg__ge,
++ arm_instr_ands_pc_reg__lt,
++ arm_instr_ands_pc_reg__gt,
++ arm_instr_ands_pc_reg__le,
++ arm_instr_ands_pc_reg,
++ arm_instr_nop,
++ arm_instr_eors_pc_reg__eq,
++ arm_instr_eors_pc_reg__ne,
++ arm_instr_eors_pc_reg__cs,
++ arm_instr_eors_pc_reg__cc,
++ arm_instr_eors_pc_reg__mi,
++ arm_instr_eors_pc_reg__pl,
++ arm_instr_eors_pc_reg__vs,
++ arm_instr_eors_pc_reg__vc,
++ arm_instr_eors_pc_reg__hi,
++ arm_instr_eors_pc_reg__ls,
++ arm_instr_eors_pc_reg__ge,
++ arm_instr_eors_pc_reg__lt,
++ arm_instr_eors_pc_reg__gt,
++ arm_instr_eors_pc_reg__le,
++ arm_instr_eors_pc_reg,
++ arm_instr_nop,
++ arm_instr_subs_pc_reg__eq,
++ arm_instr_subs_pc_reg__ne,
++ arm_instr_subs_pc_reg__cs,
++ arm_instr_subs_pc_reg__cc,
++ arm_instr_subs_pc_reg__mi,
++ arm_instr_subs_pc_reg__pl,
++ arm_instr_subs_pc_reg__vs,
++ arm_instr_subs_pc_reg__vc,
++ arm_instr_subs_pc_reg__hi,
++ arm_instr_subs_pc_reg__ls,
++ arm_instr_subs_pc_reg__ge,
++ arm_instr_subs_pc_reg__lt,
++ arm_instr_subs_pc_reg__gt,
++ arm_instr_subs_pc_reg__le,
++ arm_instr_subs_pc_reg,
++ arm_instr_nop,
++ arm_instr_rsbs_pc_reg__eq,
++ arm_instr_rsbs_pc_reg__ne,
++ arm_instr_rsbs_pc_reg__cs,
++ arm_instr_rsbs_pc_reg__cc,
++ arm_instr_rsbs_pc_reg__mi,
++ arm_instr_rsbs_pc_reg__pl,
++ arm_instr_rsbs_pc_reg__vs,
++ arm_instr_rsbs_pc_reg__vc,
++ arm_instr_rsbs_pc_reg__hi,
++ arm_instr_rsbs_pc_reg__ls,
++ arm_instr_rsbs_pc_reg__ge,
++ arm_instr_rsbs_pc_reg__lt,
++ arm_instr_rsbs_pc_reg__gt,
++ arm_instr_rsbs_pc_reg__le,
++ arm_instr_rsbs_pc_reg,
++ arm_instr_nop,
++ arm_instr_adds_pc_reg__eq,
++ arm_instr_adds_pc_reg__ne,
++ arm_instr_adds_pc_reg__cs,
++ arm_instr_adds_pc_reg__cc,
++ arm_instr_adds_pc_reg__mi,
++ arm_instr_adds_pc_reg__pl,
++ arm_instr_adds_pc_reg__vs,
++ arm_instr_adds_pc_reg__vc,
++ arm_instr_adds_pc_reg__hi,
++ arm_instr_adds_pc_reg__ls,
++ arm_instr_adds_pc_reg__ge,
++ arm_instr_adds_pc_reg__lt,
++ arm_instr_adds_pc_reg__gt,
++ arm_instr_adds_pc_reg__le,
++ arm_instr_adds_pc_reg,
++ arm_instr_nop,
++ arm_instr_adcs_pc_reg__eq,
++ arm_instr_adcs_pc_reg__ne,
++ arm_instr_adcs_pc_reg__cs,
++ arm_instr_adcs_pc_reg__cc,
++ arm_instr_adcs_pc_reg__mi,
++ arm_instr_adcs_pc_reg__pl,
++ arm_instr_adcs_pc_reg__vs,
++ arm_instr_adcs_pc_reg__vc,
++ arm_instr_adcs_pc_reg__hi,
++ arm_instr_adcs_pc_reg__ls,
++ arm_instr_adcs_pc_reg__ge,
++ arm_instr_adcs_pc_reg__lt,
++ arm_instr_adcs_pc_reg__gt,
++ arm_instr_adcs_pc_reg__le,
++ arm_instr_adcs_pc_reg,
++ arm_instr_nop,
++ arm_instr_sbcs_pc_reg__eq,
++ arm_instr_sbcs_pc_reg__ne,
++ arm_instr_sbcs_pc_reg__cs,
++ arm_instr_sbcs_pc_reg__cc,
++ arm_instr_sbcs_pc_reg__mi,
++ arm_instr_sbcs_pc_reg__pl,
++ arm_instr_sbcs_pc_reg__vs,
++ arm_instr_sbcs_pc_reg__vc,
++ arm_instr_sbcs_pc_reg__hi,
++ arm_instr_sbcs_pc_reg__ls,
++ arm_instr_sbcs_pc_reg__ge,
++ arm_instr_sbcs_pc_reg__lt,
++ arm_instr_sbcs_pc_reg__gt,
++ arm_instr_sbcs_pc_reg__le,
++ arm_instr_sbcs_pc_reg,
++ arm_instr_nop,
++ arm_instr_rscs_pc_reg__eq,
++ arm_instr_rscs_pc_reg__ne,
++ arm_instr_rscs_pc_reg__cs,
++ arm_instr_rscs_pc_reg__cc,
++ arm_instr_rscs_pc_reg__mi,
++ arm_instr_rscs_pc_reg__pl,
++ arm_instr_rscs_pc_reg__vs,
++ arm_instr_rscs_pc_reg__vc,
++ arm_instr_rscs_pc_reg__hi,
++ arm_instr_rscs_pc_reg__ls,
++ arm_instr_rscs_pc_reg__ge,
++ arm_instr_rscs_pc_reg__lt,
++ arm_instr_rscs_pc_reg__gt,
++ arm_instr_rscs_pc_reg__le,
++ arm_instr_rscs_pc_reg,
++ arm_instr_nop,
++ arm_instr_tsts_pc_reg__eq,
++ arm_instr_tsts_pc_reg__ne,
++ arm_instr_tsts_pc_reg__cs,
++ arm_instr_tsts_pc_reg__cc,
++ arm_instr_tsts_pc_reg__mi,
++ arm_instr_tsts_pc_reg__pl,
++ arm_instr_tsts_pc_reg__vs,
++ arm_instr_tsts_pc_reg__vc,
++ arm_instr_tsts_pc_reg__hi,
++ arm_instr_tsts_pc_reg__ls,
++ arm_instr_tsts_pc_reg__ge,
++ arm_instr_tsts_pc_reg__lt,
++ arm_instr_tsts_pc_reg__gt,
++ arm_instr_tsts_pc_reg__le,
++ arm_instr_tsts_pc_reg,
++ arm_instr_nop,
++ arm_instr_teqs_pc_reg__eq,
++ arm_instr_teqs_pc_reg__ne,
++ arm_instr_teqs_pc_reg__cs,
++ arm_instr_teqs_pc_reg__cc,
++ arm_instr_teqs_pc_reg__mi,
++ arm_instr_teqs_pc_reg__pl,
++ arm_instr_teqs_pc_reg__vs,
++ arm_instr_teqs_pc_reg__vc,
++ arm_instr_teqs_pc_reg__hi,
++ arm_instr_teqs_pc_reg__ls,
++ arm_instr_teqs_pc_reg__ge,
++ arm_instr_teqs_pc_reg__lt,
++ arm_instr_teqs_pc_reg__gt,
++ arm_instr_teqs_pc_reg__le,
++ arm_instr_teqs_pc_reg,
++ arm_instr_nop,
++ arm_instr_cmps_pc_reg__eq,
++ arm_instr_cmps_pc_reg__ne,
++ arm_instr_cmps_pc_reg__cs,
++ arm_instr_cmps_pc_reg__cc,
++ arm_instr_cmps_pc_reg__mi,
++ arm_instr_cmps_pc_reg__pl,
++ arm_instr_cmps_pc_reg__vs,
++ arm_instr_cmps_pc_reg__vc,
++ arm_instr_cmps_pc_reg__hi,
++ arm_instr_cmps_pc_reg__ls,
++ arm_instr_cmps_pc_reg__ge,
++ arm_instr_cmps_pc_reg__lt,
++ arm_instr_cmps_pc_reg__gt,
++ arm_instr_cmps_pc_reg__le,
++ arm_instr_cmps_pc_reg,
++ arm_instr_nop,
++ arm_instr_cmns_pc_reg__eq,
++ arm_instr_cmns_pc_reg__ne,
++ arm_instr_cmns_pc_reg__cs,
++ arm_instr_cmns_pc_reg__cc,
++ arm_instr_cmns_pc_reg__mi,
++ arm_instr_cmns_pc_reg__pl,
++ arm_instr_cmns_pc_reg__vs,
++ arm_instr_cmns_pc_reg__vc,
++ arm_instr_cmns_pc_reg__hi,
++ arm_instr_cmns_pc_reg__ls,
++ arm_instr_cmns_pc_reg__ge,
++ arm_instr_cmns_pc_reg__lt,
++ arm_instr_cmns_pc_reg__gt,
++ arm_instr_cmns_pc_reg__le,
++ arm_instr_cmns_pc_reg,
++ arm_instr_nop,
++ arm_instr_orrs_pc_reg__eq,
++ arm_instr_orrs_pc_reg__ne,
++ arm_instr_orrs_pc_reg__cs,
++ arm_instr_orrs_pc_reg__cc,
++ arm_instr_orrs_pc_reg__mi,
++ arm_instr_orrs_pc_reg__pl,
++ arm_instr_orrs_pc_reg__vs,
++ arm_instr_orrs_pc_reg__vc,
++ arm_instr_orrs_pc_reg__hi,
++ arm_instr_orrs_pc_reg__ls,
++ arm_instr_orrs_pc_reg__ge,
++ arm_instr_orrs_pc_reg__lt,
++ arm_instr_orrs_pc_reg__gt,
++ arm_instr_orrs_pc_reg__le,
++ arm_instr_orrs_pc_reg,
++ arm_instr_nop,
++ arm_instr_movs_pc_reg__eq,
++ arm_instr_movs_pc_reg__ne,
++ arm_instr_movs_pc_reg__cs,
++ arm_instr_movs_pc_reg__cc,
++ arm_instr_movs_pc_reg__mi,
++ arm_instr_movs_pc_reg__pl,
++ arm_instr_movs_pc_reg__vs,
++ arm_instr_movs_pc_reg__vc,
++ arm_instr_movs_pc_reg__hi,
++ arm_instr_movs_pc_reg__ls,
++ arm_instr_movs_pc_reg__ge,
++ arm_instr_movs_pc_reg__lt,
++ arm_instr_movs_pc_reg__gt,
++ arm_instr_movs_pc_reg__le,
++ arm_instr_movs_pc_reg,
++ arm_instr_nop,
++ arm_instr_bics_pc_reg__eq,
++ arm_instr_bics_pc_reg__ne,
++ arm_instr_bics_pc_reg__cs,
++ arm_instr_bics_pc_reg__cc,
++ arm_instr_bics_pc_reg__mi,
++ arm_instr_bics_pc_reg__pl,
++ arm_instr_bics_pc_reg__vs,
++ arm_instr_bics_pc_reg__vc,
++ arm_instr_bics_pc_reg__hi,
++ arm_instr_bics_pc_reg__ls,
++ arm_instr_bics_pc_reg__ge,
++ arm_instr_bics_pc_reg__lt,
++ arm_instr_bics_pc_reg__gt,
++ arm_instr_bics_pc_reg__le,
++ arm_instr_bics_pc_reg,
++ arm_instr_nop,
++ arm_instr_mvns_pc_reg__eq,
++ arm_instr_mvns_pc_reg__ne,
++ arm_instr_mvns_pc_reg__cs,
++ arm_instr_mvns_pc_reg__cc,
++ arm_instr_mvns_pc_reg__mi,
++ arm_instr_mvns_pc_reg__pl,
++ arm_instr_mvns_pc_reg__vs,
++ arm_instr_mvns_pc_reg__vc,
++ arm_instr_mvns_pc_reg__hi,
++ arm_instr_mvns_pc_reg__ls,
++ arm_instr_mvns_pc_reg__ge,
++ arm_instr_mvns_pc_reg__lt,
++ arm_instr_mvns_pc_reg__gt,
++ arm_instr_mvns_pc_reg__le,
++ arm_instr_mvns_pc_reg,
++ arm_instr_nop
++};
++
++
++ void (*arm_dpi_instr_regshort[2 * 16 * 16])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_and_regshort__eq,
++ arm_instr_and_regshort__ne,
++ arm_instr_and_regshort__cs,
++ arm_instr_and_regshort__cc,
++ arm_instr_and_regshort__mi,
++ arm_instr_and_regshort__pl,
++ arm_instr_and_regshort__vs,
++ arm_instr_and_regshort__vc,
++ arm_instr_and_regshort__hi,
++ arm_instr_and_regshort__ls,
++ arm_instr_and_regshort__ge,
++ arm_instr_and_regshort__lt,
++ arm_instr_and_regshort__gt,
++ arm_instr_and_regshort__le,
++ arm_instr_and_regshort,
++ arm_instr_nop,
++ arm_instr_eor_regshort__eq,
++ arm_instr_eor_regshort__ne,
++ arm_instr_eor_regshort__cs,
++ arm_instr_eor_regshort__cc,
++ arm_instr_eor_regshort__mi,
++ arm_instr_eor_regshort__pl,
++ arm_instr_eor_regshort__vs,
++ arm_instr_eor_regshort__vc,
++ arm_instr_eor_regshort__hi,
++ arm_instr_eor_regshort__ls,
++ arm_instr_eor_regshort__ge,
++ arm_instr_eor_regshort__lt,
++ arm_instr_eor_regshort__gt,
++ arm_instr_eor_regshort__le,
++ arm_instr_eor_regshort,
++ arm_instr_nop,
++ arm_instr_sub_regshort__eq,
++ arm_instr_sub_regshort__ne,
++ arm_instr_sub_regshort__cs,
++ arm_instr_sub_regshort__cc,
++ arm_instr_sub_regshort__mi,
++ arm_instr_sub_regshort__pl,
++ arm_instr_sub_regshort__vs,
++ arm_instr_sub_regshort__vc,
++ arm_instr_sub_regshort__hi,
++ arm_instr_sub_regshort__ls,
++ arm_instr_sub_regshort__ge,
++ arm_instr_sub_regshort__lt,
++ arm_instr_sub_regshort__gt,
++ arm_instr_sub_regshort__le,
++ arm_instr_sub_regshort,
++ arm_instr_nop,
++ arm_instr_rsb_regshort__eq,
++ arm_instr_rsb_regshort__ne,
++ arm_instr_rsb_regshort__cs,
++ arm_instr_rsb_regshort__cc,
++ arm_instr_rsb_regshort__mi,
++ arm_instr_rsb_regshort__pl,
++ arm_instr_rsb_regshort__vs,
++ arm_instr_rsb_regshort__vc,
++ arm_instr_rsb_regshort__hi,
++ arm_instr_rsb_regshort__ls,
++ arm_instr_rsb_regshort__ge,
++ arm_instr_rsb_regshort__lt,
++ arm_instr_rsb_regshort__gt,
++ arm_instr_rsb_regshort__le,
++ arm_instr_rsb_regshort,
++ arm_instr_nop,
++ arm_instr_add_regshort__eq,
++ arm_instr_add_regshort__ne,
++ arm_instr_add_regshort__cs,
++ arm_instr_add_regshort__cc,
++ arm_instr_add_regshort__mi,
++ arm_instr_add_regshort__pl,
++ arm_instr_add_regshort__vs,
++ arm_instr_add_regshort__vc,
++ arm_instr_add_regshort__hi,
++ arm_instr_add_regshort__ls,
++ arm_instr_add_regshort__ge,
++ arm_instr_add_regshort__lt,
++ arm_instr_add_regshort__gt,
++ arm_instr_add_regshort__le,
++ arm_instr_add_regshort,
++ arm_instr_nop,
++ arm_instr_adc_regshort__eq,
++ arm_instr_adc_regshort__ne,
++ arm_instr_adc_regshort__cs,
++ arm_instr_adc_regshort__cc,
++ arm_instr_adc_regshort__mi,
++ arm_instr_adc_regshort__pl,
++ arm_instr_adc_regshort__vs,
++ arm_instr_adc_regshort__vc,
++ arm_instr_adc_regshort__hi,
++ arm_instr_adc_regshort__ls,
++ arm_instr_adc_regshort__ge,
++ arm_instr_adc_regshort__lt,
++ arm_instr_adc_regshort__gt,
++ arm_instr_adc_regshort__le,
++ arm_instr_adc_regshort,
++ arm_instr_nop,
++ arm_instr_sbc_regshort__eq,
++ arm_instr_sbc_regshort__ne,
++ arm_instr_sbc_regshort__cs,
++ arm_instr_sbc_regshort__cc,
++ arm_instr_sbc_regshort__mi,
++ arm_instr_sbc_regshort__pl,
++ arm_instr_sbc_regshort__vs,
++ arm_instr_sbc_regshort__vc,
++ arm_instr_sbc_regshort__hi,
++ arm_instr_sbc_regshort__ls,
++ arm_instr_sbc_regshort__ge,
++ arm_instr_sbc_regshort__lt,
++ arm_instr_sbc_regshort__gt,
++ arm_instr_sbc_regshort__le,
++ arm_instr_sbc_regshort,
++ arm_instr_nop,
++ arm_instr_rsc_regshort__eq,
++ arm_instr_rsc_regshort__ne,
++ arm_instr_rsc_regshort__cs,
++ arm_instr_rsc_regshort__cc,
++ arm_instr_rsc_regshort__mi,
++ arm_instr_rsc_regshort__pl,
++ arm_instr_rsc_regshort__vs,
++ arm_instr_rsc_regshort__vc,
++ arm_instr_rsc_regshort__hi,
++ arm_instr_rsc_regshort__ls,
++ arm_instr_rsc_regshort__ge,
++ arm_instr_rsc_regshort__lt,
++ arm_instr_rsc_regshort__gt,
++ arm_instr_rsc_regshort__le,
++ arm_instr_rsc_regshort,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_orr_regshort__eq,
++ arm_instr_orr_regshort__ne,
++ arm_instr_orr_regshort__cs,
++ arm_instr_orr_regshort__cc,
++ arm_instr_orr_regshort__mi,
++ arm_instr_orr_regshort__pl,
++ arm_instr_orr_regshort__vs,
++ arm_instr_orr_regshort__vc,
++ arm_instr_orr_regshort__hi,
++ arm_instr_orr_regshort__ls,
++ arm_instr_orr_regshort__ge,
++ arm_instr_orr_regshort__lt,
++ arm_instr_orr_regshort__gt,
++ arm_instr_orr_regshort__le,
++ arm_instr_orr_regshort,
++ arm_instr_nop,
++ arm_instr_mov_regshort__eq,
++ arm_instr_mov_regshort__ne,
++ arm_instr_mov_regshort__cs,
++ arm_instr_mov_regshort__cc,
++ arm_instr_mov_regshort__mi,
++ arm_instr_mov_regshort__pl,
++ arm_instr_mov_regshort__vs,
++ arm_instr_mov_regshort__vc,
++ arm_instr_mov_regshort__hi,
++ arm_instr_mov_regshort__ls,
++ arm_instr_mov_regshort__ge,
++ arm_instr_mov_regshort__lt,
++ arm_instr_mov_regshort__gt,
++ arm_instr_mov_regshort__le,
++ arm_instr_mov_regshort,
++ arm_instr_nop,
++ arm_instr_bic_regshort__eq,
++ arm_instr_bic_regshort__ne,
++ arm_instr_bic_regshort__cs,
++ arm_instr_bic_regshort__cc,
++ arm_instr_bic_regshort__mi,
++ arm_instr_bic_regshort__pl,
++ arm_instr_bic_regshort__vs,
++ arm_instr_bic_regshort__vc,
++ arm_instr_bic_regshort__hi,
++ arm_instr_bic_regshort__ls,
++ arm_instr_bic_regshort__ge,
++ arm_instr_bic_regshort__lt,
++ arm_instr_bic_regshort__gt,
++ arm_instr_bic_regshort__le,
++ arm_instr_bic_regshort,
++ arm_instr_nop,
++ arm_instr_mvn_regshort__eq,
++ arm_instr_mvn_regshort__ne,
++ arm_instr_mvn_regshort__cs,
++ arm_instr_mvn_regshort__cc,
++ arm_instr_mvn_regshort__mi,
++ arm_instr_mvn_regshort__pl,
++ arm_instr_mvn_regshort__vs,
++ arm_instr_mvn_regshort__vc,
++ arm_instr_mvn_regshort__hi,
++ arm_instr_mvn_regshort__ls,
++ arm_instr_mvn_regshort__ge,
++ arm_instr_mvn_regshort__lt,
++ arm_instr_mvn_regshort__gt,
++ arm_instr_mvn_regshort__le,
++ arm_instr_mvn_regshort,
++ arm_instr_nop,
++ arm_instr_ands_regshort__eq,
++ arm_instr_ands_regshort__ne,
++ arm_instr_ands_regshort__cs,
++ arm_instr_ands_regshort__cc,
++ arm_instr_ands_regshort__mi,
++ arm_instr_ands_regshort__pl,
++ arm_instr_ands_regshort__vs,
++ arm_instr_ands_regshort__vc,
++ arm_instr_ands_regshort__hi,
++ arm_instr_ands_regshort__ls,
++ arm_instr_ands_regshort__ge,
++ arm_instr_ands_regshort__lt,
++ arm_instr_ands_regshort__gt,
++ arm_instr_ands_regshort__le,
++ arm_instr_ands_regshort,
++ arm_instr_nop,
++ arm_instr_eors_regshort__eq,
++ arm_instr_eors_regshort__ne,
++ arm_instr_eors_regshort__cs,
++ arm_instr_eors_regshort__cc,
++ arm_instr_eors_regshort__mi,
++ arm_instr_eors_regshort__pl,
++ arm_instr_eors_regshort__vs,
++ arm_instr_eors_regshort__vc,
++ arm_instr_eors_regshort__hi,
++ arm_instr_eors_regshort__ls,
++ arm_instr_eors_regshort__ge,
++ arm_instr_eors_regshort__lt,
++ arm_instr_eors_regshort__gt,
++ arm_instr_eors_regshort__le,
++ arm_instr_eors_regshort,
++ arm_instr_nop,
++ arm_instr_subs_regshort__eq,
++ arm_instr_subs_regshort__ne,
++ arm_instr_subs_regshort__cs,
++ arm_instr_subs_regshort__cc,
++ arm_instr_subs_regshort__mi,
++ arm_instr_subs_regshort__pl,
++ arm_instr_subs_regshort__vs,
++ arm_instr_subs_regshort__vc,
++ arm_instr_subs_regshort__hi,
++ arm_instr_subs_regshort__ls,
++ arm_instr_subs_regshort__ge,
++ arm_instr_subs_regshort__lt,
++ arm_instr_subs_regshort__gt,
++ arm_instr_subs_regshort__le,
++ arm_instr_subs_regshort,
++ arm_instr_nop,
++ arm_instr_rsbs_regshort__eq,
++ arm_instr_rsbs_regshort__ne,
++ arm_instr_rsbs_regshort__cs,
++ arm_instr_rsbs_regshort__cc,
++ arm_instr_rsbs_regshort__mi,
++ arm_instr_rsbs_regshort__pl,
++ arm_instr_rsbs_regshort__vs,
++ arm_instr_rsbs_regshort__vc,
++ arm_instr_rsbs_regshort__hi,
++ arm_instr_rsbs_regshort__ls,
++ arm_instr_rsbs_regshort__ge,
++ arm_instr_rsbs_regshort__lt,
++ arm_instr_rsbs_regshort__gt,
++ arm_instr_rsbs_regshort__le,
++ arm_instr_rsbs_regshort,
++ arm_instr_nop,
++ arm_instr_adds_regshort__eq,
++ arm_instr_adds_regshort__ne,
++ arm_instr_adds_regshort__cs,
++ arm_instr_adds_regshort__cc,
++ arm_instr_adds_regshort__mi,
++ arm_instr_adds_regshort__pl,
++ arm_instr_adds_regshort__vs,
++ arm_instr_adds_regshort__vc,
++ arm_instr_adds_regshort__hi,
++ arm_instr_adds_regshort__ls,
++ arm_instr_adds_regshort__ge,
++ arm_instr_adds_regshort__lt,
++ arm_instr_adds_regshort__gt,
++ arm_instr_adds_regshort__le,
++ arm_instr_adds_regshort,
++ arm_instr_nop,
++ arm_instr_adcs_regshort__eq,
++ arm_instr_adcs_regshort__ne,
++ arm_instr_adcs_regshort__cs,
++ arm_instr_adcs_regshort__cc,
++ arm_instr_adcs_regshort__mi,
++ arm_instr_adcs_regshort__pl,
++ arm_instr_adcs_regshort__vs,
++ arm_instr_adcs_regshort__vc,
++ arm_instr_adcs_regshort__hi,
++ arm_instr_adcs_regshort__ls,
++ arm_instr_adcs_regshort__ge,
++ arm_instr_adcs_regshort__lt,
++ arm_instr_adcs_regshort__gt,
++ arm_instr_adcs_regshort__le,
++ arm_instr_adcs_regshort,
++ arm_instr_nop,
++ arm_instr_sbcs_regshort__eq,
++ arm_instr_sbcs_regshort__ne,
++ arm_instr_sbcs_regshort__cs,
++ arm_instr_sbcs_regshort__cc,
++ arm_instr_sbcs_regshort__mi,
++ arm_instr_sbcs_regshort__pl,
++ arm_instr_sbcs_regshort__vs,
++ arm_instr_sbcs_regshort__vc,
++ arm_instr_sbcs_regshort__hi,
++ arm_instr_sbcs_regshort__ls,
++ arm_instr_sbcs_regshort__ge,
++ arm_instr_sbcs_regshort__lt,
++ arm_instr_sbcs_regshort__gt,
++ arm_instr_sbcs_regshort__le,
++ arm_instr_sbcs_regshort,
++ arm_instr_nop,
++ arm_instr_rscs_regshort__eq,
++ arm_instr_rscs_regshort__ne,
++ arm_instr_rscs_regshort__cs,
++ arm_instr_rscs_regshort__cc,
++ arm_instr_rscs_regshort__mi,
++ arm_instr_rscs_regshort__pl,
++ arm_instr_rscs_regshort__vs,
++ arm_instr_rscs_regshort__vc,
++ arm_instr_rscs_regshort__hi,
++ arm_instr_rscs_regshort__ls,
++ arm_instr_rscs_regshort__ge,
++ arm_instr_rscs_regshort__lt,
++ arm_instr_rscs_regshort__gt,
++ arm_instr_rscs_regshort__le,
++ arm_instr_rscs_regshort,
++ arm_instr_nop,
++ arm_instr_tsts_regshort__eq,
++ arm_instr_tsts_regshort__ne,
++ arm_instr_tsts_regshort__cs,
++ arm_instr_tsts_regshort__cc,
++ arm_instr_tsts_regshort__mi,
++ arm_instr_tsts_regshort__pl,
++ arm_instr_tsts_regshort__vs,
++ arm_instr_tsts_regshort__vc,
++ arm_instr_tsts_regshort__hi,
++ arm_instr_tsts_regshort__ls,
++ arm_instr_tsts_regshort__ge,
++ arm_instr_tsts_regshort__lt,
++ arm_instr_tsts_regshort__gt,
++ arm_instr_tsts_regshort__le,
++ arm_instr_tsts_regshort,
++ arm_instr_nop,
++ arm_instr_teqs_regshort__eq,
++ arm_instr_teqs_regshort__ne,
++ arm_instr_teqs_regshort__cs,
++ arm_instr_teqs_regshort__cc,
++ arm_instr_teqs_regshort__mi,
++ arm_instr_teqs_regshort__pl,
++ arm_instr_teqs_regshort__vs,
++ arm_instr_teqs_regshort__vc,
++ arm_instr_teqs_regshort__hi,
++ arm_instr_teqs_regshort__ls,
++ arm_instr_teqs_regshort__ge,
++ arm_instr_teqs_regshort__lt,
++ arm_instr_teqs_regshort__gt,
++ arm_instr_teqs_regshort__le,
++ arm_instr_teqs_regshort,
++ arm_instr_nop,
++ arm_instr_cmps_regshort__eq,
++ arm_instr_cmps_regshort__ne,
++ arm_instr_cmps_regshort__cs,
++ arm_instr_cmps_regshort__cc,
++ arm_instr_cmps_regshort__mi,
++ arm_instr_cmps_regshort__pl,
++ arm_instr_cmps_regshort__vs,
++ arm_instr_cmps_regshort__vc,
++ arm_instr_cmps_regshort__hi,
++ arm_instr_cmps_regshort__ls,
++ arm_instr_cmps_regshort__ge,
++ arm_instr_cmps_regshort__lt,
++ arm_instr_cmps_regshort__gt,
++ arm_instr_cmps_regshort__le,
++ arm_instr_cmps_regshort,
++ arm_instr_nop,
++ arm_instr_cmns_regshort__eq,
++ arm_instr_cmns_regshort__ne,
++ arm_instr_cmns_regshort__cs,
++ arm_instr_cmns_regshort__cc,
++ arm_instr_cmns_regshort__mi,
++ arm_instr_cmns_regshort__pl,
++ arm_instr_cmns_regshort__vs,
++ arm_instr_cmns_regshort__vc,
++ arm_instr_cmns_regshort__hi,
++ arm_instr_cmns_regshort__ls,
++ arm_instr_cmns_regshort__ge,
++ arm_instr_cmns_regshort__lt,
++ arm_instr_cmns_regshort__gt,
++ arm_instr_cmns_regshort__le,
++ arm_instr_cmns_regshort,
++ arm_instr_nop,
++ arm_instr_orrs_regshort__eq,
++ arm_instr_orrs_regshort__ne,
++ arm_instr_orrs_regshort__cs,
++ arm_instr_orrs_regshort__cc,
++ arm_instr_orrs_regshort__mi,
++ arm_instr_orrs_regshort__pl,
++ arm_instr_orrs_regshort__vs,
++ arm_instr_orrs_regshort__vc,
++ arm_instr_orrs_regshort__hi,
++ arm_instr_orrs_regshort__ls,
++ arm_instr_orrs_regshort__ge,
++ arm_instr_orrs_regshort__lt,
++ arm_instr_orrs_regshort__gt,
++ arm_instr_orrs_regshort__le,
++ arm_instr_orrs_regshort,
++ arm_instr_nop,
++ arm_instr_movs_regshort__eq,
++ arm_instr_movs_regshort__ne,
++ arm_instr_movs_regshort__cs,
++ arm_instr_movs_regshort__cc,
++ arm_instr_movs_regshort__mi,
++ arm_instr_movs_regshort__pl,
++ arm_instr_movs_regshort__vs,
++ arm_instr_movs_regshort__vc,
++ arm_instr_movs_regshort__hi,
++ arm_instr_movs_regshort__ls,
++ arm_instr_movs_regshort__ge,
++ arm_instr_movs_regshort__lt,
++ arm_instr_movs_regshort__gt,
++ arm_instr_movs_regshort__le,
++ arm_instr_movs_regshort,
++ arm_instr_nop,
++ arm_instr_bics_regshort__eq,
++ arm_instr_bics_regshort__ne,
++ arm_instr_bics_regshort__cs,
++ arm_instr_bics_regshort__cc,
++ arm_instr_bics_regshort__mi,
++ arm_instr_bics_regshort__pl,
++ arm_instr_bics_regshort__vs,
++ arm_instr_bics_regshort__vc,
++ arm_instr_bics_regshort__hi,
++ arm_instr_bics_regshort__ls,
++ arm_instr_bics_regshort__ge,
++ arm_instr_bics_regshort__lt,
++ arm_instr_bics_regshort__gt,
++ arm_instr_bics_regshort__le,
++ arm_instr_bics_regshort,
++ arm_instr_nop,
++ arm_instr_mvns_regshort__eq,
++ arm_instr_mvns_regshort__ne,
++ arm_instr_mvns_regshort__cs,
++ arm_instr_mvns_regshort__cc,
++ arm_instr_mvns_regshort__mi,
++ arm_instr_mvns_regshort__pl,
++ arm_instr_mvns_regshort__vs,
++ arm_instr_mvns_regshort__vc,
++ arm_instr_mvns_regshort__hi,
++ arm_instr_mvns_regshort__ls,
++ arm_instr_mvns_regshort__ge,
++ arm_instr_mvns_regshort__lt,
++ arm_instr_mvns_regshort__gt,
++ arm_instr_mvns_regshort__le,
++ arm_instr_mvns_regshort,
++ arm_instr_nop
++};
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_head.c gxemul-0.7.0/src/cpus/tmp_arm_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_head.c 2022-10-18 16:37:22.077739400 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES ARM_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH arm
++#define DYNTRANS_ARM
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N ARM_L2N
++#define DYNTRANS_L3N ARM_L3N
++#if !defined(ARM_L2N) || !defined(ARM_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE arm_l2_64_table
++#define DYNTRANS_L3_64_TABLE arm_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC arm_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE ARM_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT ARM_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE arm_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY arm_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR ARM_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY ARM_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE arm_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE arm_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC arm_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS arm_combine_instructions
++#define DISASSEMBLE arm_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_arm_instr.c */
++#define instr(n) arm_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) arm32_instr_ ## n
++
++#endif
++
++
++#define X(n) void arm_instr_ ## n(struct cpu *cpu, \
++ struct arm_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.arm.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct arm_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore.c 2022-10-18 16:37:22.078740600 +0000
+@@ -0,0 +1,10020 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++void arm_instr_store_w0_word_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_word_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_word_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_word_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_word_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_word_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_word_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_word_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_word_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w0_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w0_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_store_w1_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);void arm_instr_load_w1_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++
++ void (*arm_load_store_instr[1024])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_store_w0_word_u0_p0_imm__eq,
++ arm_instr_store_w0_word_u0_p0_imm__ne,
++ arm_instr_store_w0_word_u0_p0_imm__cs,
++ arm_instr_store_w0_word_u0_p0_imm__cc,
++ arm_instr_store_w0_word_u0_p0_imm__mi,
++ arm_instr_store_w0_word_u0_p0_imm__pl,
++ arm_instr_store_w0_word_u0_p0_imm__vs,
++ arm_instr_store_w0_word_u0_p0_imm__vc,
++ arm_instr_store_w0_word_u0_p0_imm__hi,
++ arm_instr_store_w0_word_u0_p0_imm__ls,
++ arm_instr_store_w0_word_u0_p0_imm__ge,
++ arm_instr_store_w0_word_u0_p0_imm__lt,
++ arm_instr_store_w0_word_u0_p0_imm__gt,
++ arm_instr_store_w0_word_u0_p0_imm__le,
++ arm_instr_store_w0_word_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p0_imm__eq,
++ arm_instr_load_w0_word_u0_p0_imm__ne,
++ arm_instr_load_w0_word_u0_p0_imm__cs,
++ arm_instr_load_w0_word_u0_p0_imm__cc,
++ arm_instr_load_w0_word_u0_p0_imm__mi,
++ arm_instr_load_w0_word_u0_p0_imm__pl,
++ arm_instr_load_w0_word_u0_p0_imm__vs,
++ arm_instr_load_w0_word_u0_p0_imm__vc,
++ arm_instr_load_w0_word_u0_p0_imm__hi,
++ arm_instr_load_w0_word_u0_p0_imm__ls,
++ arm_instr_load_w0_word_u0_p0_imm__ge,
++ arm_instr_load_w0_word_u0_p0_imm__lt,
++ arm_instr_load_w0_word_u0_p0_imm__gt,
++ arm_instr_load_w0_word_u0_p0_imm__le,
++ arm_instr_load_w0_word_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p0_imm__eq,
++ arm_instr_store_w1_word_u0_p0_imm__ne,
++ arm_instr_store_w1_word_u0_p0_imm__cs,
++ arm_instr_store_w1_word_u0_p0_imm__cc,
++ arm_instr_store_w1_word_u0_p0_imm__mi,
++ arm_instr_store_w1_word_u0_p0_imm__pl,
++ arm_instr_store_w1_word_u0_p0_imm__vs,
++ arm_instr_store_w1_word_u0_p0_imm__vc,
++ arm_instr_store_w1_word_u0_p0_imm__hi,
++ arm_instr_store_w1_word_u0_p0_imm__ls,
++ arm_instr_store_w1_word_u0_p0_imm__ge,
++ arm_instr_store_w1_word_u0_p0_imm__lt,
++ arm_instr_store_w1_word_u0_p0_imm__gt,
++ arm_instr_store_w1_word_u0_p0_imm__le,
++ arm_instr_store_w1_word_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p0_imm__eq,
++ arm_instr_load_w1_word_u0_p0_imm__ne,
++ arm_instr_load_w1_word_u0_p0_imm__cs,
++ arm_instr_load_w1_word_u0_p0_imm__cc,
++ arm_instr_load_w1_word_u0_p0_imm__mi,
++ arm_instr_load_w1_word_u0_p0_imm__pl,
++ arm_instr_load_w1_word_u0_p0_imm__vs,
++ arm_instr_load_w1_word_u0_p0_imm__vc,
++ arm_instr_load_w1_word_u0_p0_imm__hi,
++ arm_instr_load_w1_word_u0_p0_imm__ls,
++ arm_instr_load_w1_word_u0_p0_imm__ge,
++ arm_instr_load_w1_word_u0_p0_imm__lt,
++ arm_instr_load_w1_word_u0_p0_imm__gt,
++ arm_instr_load_w1_word_u0_p0_imm__le,
++ arm_instr_load_w1_word_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p0_imm__eq,
++ arm_instr_store_w0_byte_u0_p0_imm__ne,
++ arm_instr_store_w0_byte_u0_p0_imm__cs,
++ arm_instr_store_w0_byte_u0_p0_imm__cc,
++ arm_instr_store_w0_byte_u0_p0_imm__mi,
++ arm_instr_store_w0_byte_u0_p0_imm__pl,
++ arm_instr_store_w0_byte_u0_p0_imm__vs,
++ arm_instr_store_w0_byte_u0_p0_imm__vc,
++ arm_instr_store_w0_byte_u0_p0_imm__hi,
++ arm_instr_store_w0_byte_u0_p0_imm__ls,
++ arm_instr_store_w0_byte_u0_p0_imm__ge,
++ arm_instr_store_w0_byte_u0_p0_imm__lt,
++ arm_instr_store_w0_byte_u0_p0_imm__gt,
++ arm_instr_store_w0_byte_u0_p0_imm__le,
++ arm_instr_store_w0_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p0_imm__eq,
++ arm_instr_load_w0_byte_u0_p0_imm__ne,
++ arm_instr_load_w0_byte_u0_p0_imm__cs,
++ arm_instr_load_w0_byte_u0_p0_imm__cc,
++ arm_instr_load_w0_byte_u0_p0_imm__mi,
++ arm_instr_load_w0_byte_u0_p0_imm__pl,
++ arm_instr_load_w0_byte_u0_p0_imm__vs,
++ arm_instr_load_w0_byte_u0_p0_imm__vc,
++ arm_instr_load_w0_byte_u0_p0_imm__hi,
++ arm_instr_load_w0_byte_u0_p0_imm__ls,
++ arm_instr_load_w0_byte_u0_p0_imm__ge,
++ arm_instr_load_w0_byte_u0_p0_imm__lt,
++ arm_instr_load_w0_byte_u0_p0_imm__gt,
++ arm_instr_load_w0_byte_u0_p0_imm__le,
++ arm_instr_load_w0_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p0_imm__eq,
++ arm_instr_store_w1_byte_u0_p0_imm__ne,
++ arm_instr_store_w1_byte_u0_p0_imm__cs,
++ arm_instr_store_w1_byte_u0_p0_imm__cc,
++ arm_instr_store_w1_byte_u0_p0_imm__mi,
++ arm_instr_store_w1_byte_u0_p0_imm__pl,
++ arm_instr_store_w1_byte_u0_p0_imm__vs,
++ arm_instr_store_w1_byte_u0_p0_imm__vc,
++ arm_instr_store_w1_byte_u0_p0_imm__hi,
++ arm_instr_store_w1_byte_u0_p0_imm__ls,
++ arm_instr_store_w1_byte_u0_p0_imm__ge,
++ arm_instr_store_w1_byte_u0_p0_imm__lt,
++ arm_instr_store_w1_byte_u0_p0_imm__gt,
++ arm_instr_store_w1_byte_u0_p0_imm__le,
++ arm_instr_store_w1_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p0_imm__eq,
++ arm_instr_load_w1_byte_u0_p0_imm__ne,
++ arm_instr_load_w1_byte_u0_p0_imm__cs,
++ arm_instr_load_w1_byte_u0_p0_imm__cc,
++ arm_instr_load_w1_byte_u0_p0_imm__mi,
++ arm_instr_load_w1_byte_u0_p0_imm__pl,
++ arm_instr_load_w1_byte_u0_p0_imm__vs,
++ arm_instr_load_w1_byte_u0_p0_imm__vc,
++ arm_instr_load_w1_byte_u0_p0_imm__hi,
++ arm_instr_load_w1_byte_u0_p0_imm__ls,
++ arm_instr_load_w1_byte_u0_p0_imm__ge,
++ arm_instr_load_w1_byte_u0_p0_imm__lt,
++ arm_instr_load_w1_byte_u0_p0_imm__gt,
++ arm_instr_load_w1_byte_u0_p0_imm__le,
++ arm_instr_load_w1_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p0_imm__eq,
++ arm_instr_store_w0_word_u1_p0_imm__ne,
++ arm_instr_store_w0_word_u1_p0_imm__cs,
++ arm_instr_store_w0_word_u1_p0_imm__cc,
++ arm_instr_store_w0_word_u1_p0_imm__mi,
++ arm_instr_store_w0_word_u1_p0_imm__pl,
++ arm_instr_store_w0_word_u1_p0_imm__vs,
++ arm_instr_store_w0_word_u1_p0_imm__vc,
++ arm_instr_store_w0_word_u1_p0_imm__hi,
++ arm_instr_store_w0_word_u1_p0_imm__ls,
++ arm_instr_store_w0_word_u1_p0_imm__ge,
++ arm_instr_store_w0_word_u1_p0_imm__lt,
++ arm_instr_store_w0_word_u1_p0_imm__gt,
++ arm_instr_store_w0_word_u1_p0_imm__le,
++ arm_instr_store_w0_word_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p0_imm__eq,
++ arm_instr_load_w0_word_u1_p0_imm__ne,
++ arm_instr_load_w0_word_u1_p0_imm__cs,
++ arm_instr_load_w0_word_u1_p0_imm__cc,
++ arm_instr_load_w0_word_u1_p0_imm__mi,
++ arm_instr_load_w0_word_u1_p0_imm__pl,
++ arm_instr_load_w0_word_u1_p0_imm__vs,
++ arm_instr_load_w0_word_u1_p0_imm__vc,
++ arm_instr_load_w0_word_u1_p0_imm__hi,
++ arm_instr_load_w0_word_u1_p0_imm__ls,
++ arm_instr_load_w0_word_u1_p0_imm__ge,
++ arm_instr_load_w0_word_u1_p0_imm__lt,
++ arm_instr_load_w0_word_u1_p0_imm__gt,
++ arm_instr_load_w0_word_u1_p0_imm__le,
++ arm_instr_load_w0_word_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p0_imm__eq,
++ arm_instr_store_w1_word_u1_p0_imm__ne,
++ arm_instr_store_w1_word_u1_p0_imm__cs,
++ arm_instr_store_w1_word_u1_p0_imm__cc,
++ arm_instr_store_w1_word_u1_p0_imm__mi,
++ arm_instr_store_w1_word_u1_p0_imm__pl,
++ arm_instr_store_w1_word_u1_p0_imm__vs,
++ arm_instr_store_w1_word_u1_p0_imm__vc,
++ arm_instr_store_w1_word_u1_p0_imm__hi,
++ arm_instr_store_w1_word_u1_p0_imm__ls,
++ arm_instr_store_w1_word_u1_p0_imm__ge,
++ arm_instr_store_w1_word_u1_p0_imm__lt,
++ arm_instr_store_w1_word_u1_p0_imm__gt,
++ arm_instr_store_w1_word_u1_p0_imm__le,
++ arm_instr_store_w1_word_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p0_imm__eq,
++ arm_instr_load_w1_word_u1_p0_imm__ne,
++ arm_instr_load_w1_word_u1_p0_imm__cs,
++ arm_instr_load_w1_word_u1_p0_imm__cc,
++ arm_instr_load_w1_word_u1_p0_imm__mi,
++ arm_instr_load_w1_word_u1_p0_imm__pl,
++ arm_instr_load_w1_word_u1_p0_imm__vs,
++ arm_instr_load_w1_word_u1_p0_imm__vc,
++ arm_instr_load_w1_word_u1_p0_imm__hi,
++ arm_instr_load_w1_word_u1_p0_imm__ls,
++ arm_instr_load_w1_word_u1_p0_imm__ge,
++ arm_instr_load_w1_word_u1_p0_imm__lt,
++ arm_instr_load_w1_word_u1_p0_imm__gt,
++ arm_instr_load_w1_word_u1_p0_imm__le,
++ arm_instr_load_w1_word_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p0_imm__eq,
++ arm_instr_store_w0_byte_u1_p0_imm__ne,
++ arm_instr_store_w0_byte_u1_p0_imm__cs,
++ arm_instr_store_w0_byte_u1_p0_imm__cc,
++ arm_instr_store_w0_byte_u1_p0_imm__mi,
++ arm_instr_store_w0_byte_u1_p0_imm__pl,
++ arm_instr_store_w0_byte_u1_p0_imm__vs,
++ arm_instr_store_w0_byte_u1_p0_imm__vc,
++ arm_instr_store_w0_byte_u1_p0_imm__hi,
++ arm_instr_store_w0_byte_u1_p0_imm__ls,
++ arm_instr_store_w0_byte_u1_p0_imm__ge,
++ arm_instr_store_w0_byte_u1_p0_imm__lt,
++ arm_instr_store_w0_byte_u1_p0_imm__gt,
++ arm_instr_store_w0_byte_u1_p0_imm__le,
++ arm_instr_store_w0_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p0_imm__eq,
++ arm_instr_load_w0_byte_u1_p0_imm__ne,
++ arm_instr_load_w0_byte_u1_p0_imm__cs,
++ arm_instr_load_w0_byte_u1_p0_imm__cc,
++ arm_instr_load_w0_byte_u1_p0_imm__mi,
++ arm_instr_load_w0_byte_u1_p0_imm__pl,
++ arm_instr_load_w0_byte_u1_p0_imm__vs,
++ arm_instr_load_w0_byte_u1_p0_imm__vc,
++ arm_instr_load_w0_byte_u1_p0_imm__hi,
++ arm_instr_load_w0_byte_u1_p0_imm__ls,
++ arm_instr_load_w0_byte_u1_p0_imm__ge,
++ arm_instr_load_w0_byte_u1_p0_imm__lt,
++ arm_instr_load_w0_byte_u1_p0_imm__gt,
++ arm_instr_load_w0_byte_u1_p0_imm__le,
++ arm_instr_load_w0_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p0_imm__eq,
++ arm_instr_store_w1_byte_u1_p0_imm__ne,
++ arm_instr_store_w1_byte_u1_p0_imm__cs,
++ arm_instr_store_w1_byte_u1_p0_imm__cc,
++ arm_instr_store_w1_byte_u1_p0_imm__mi,
++ arm_instr_store_w1_byte_u1_p0_imm__pl,
++ arm_instr_store_w1_byte_u1_p0_imm__vs,
++ arm_instr_store_w1_byte_u1_p0_imm__vc,
++ arm_instr_store_w1_byte_u1_p0_imm__hi,
++ arm_instr_store_w1_byte_u1_p0_imm__ls,
++ arm_instr_store_w1_byte_u1_p0_imm__ge,
++ arm_instr_store_w1_byte_u1_p0_imm__lt,
++ arm_instr_store_w1_byte_u1_p0_imm__gt,
++ arm_instr_store_w1_byte_u1_p0_imm__le,
++ arm_instr_store_w1_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p0_imm__eq,
++ arm_instr_load_w1_byte_u1_p0_imm__ne,
++ arm_instr_load_w1_byte_u1_p0_imm__cs,
++ arm_instr_load_w1_byte_u1_p0_imm__cc,
++ arm_instr_load_w1_byte_u1_p0_imm__mi,
++ arm_instr_load_w1_byte_u1_p0_imm__pl,
++ arm_instr_load_w1_byte_u1_p0_imm__vs,
++ arm_instr_load_w1_byte_u1_p0_imm__vc,
++ arm_instr_load_w1_byte_u1_p0_imm__hi,
++ arm_instr_load_w1_byte_u1_p0_imm__ls,
++ arm_instr_load_w1_byte_u1_p0_imm__ge,
++ arm_instr_load_w1_byte_u1_p0_imm__lt,
++ arm_instr_load_w1_byte_u1_p0_imm__gt,
++ arm_instr_load_w1_byte_u1_p0_imm__le,
++ arm_instr_load_w1_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p1_imm__eq,
++ arm_instr_store_w0_word_u0_p1_imm__ne,
++ arm_instr_store_w0_word_u0_p1_imm__cs,
++ arm_instr_store_w0_word_u0_p1_imm__cc,
++ arm_instr_store_w0_word_u0_p1_imm__mi,
++ arm_instr_store_w0_word_u0_p1_imm__pl,
++ arm_instr_store_w0_word_u0_p1_imm__vs,
++ arm_instr_store_w0_word_u0_p1_imm__vc,
++ arm_instr_store_w0_word_u0_p1_imm__hi,
++ arm_instr_store_w0_word_u0_p1_imm__ls,
++ arm_instr_store_w0_word_u0_p1_imm__ge,
++ arm_instr_store_w0_word_u0_p1_imm__lt,
++ arm_instr_store_w0_word_u0_p1_imm__gt,
++ arm_instr_store_w0_word_u0_p1_imm__le,
++ arm_instr_store_w0_word_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p1_imm__eq,
++ arm_instr_load_w0_word_u0_p1_imm__ne,
++ arm_instr_load_w0_word_u0_p1_imm__cs,
++ arm_instr_load_w0_word_u0_p1_imm__cc,
++ arm_instr_load_w0_word_u0_p1_imm__mi,
++ arm_instr_load_w0_word_u0_p1_imm__pl,
++ arm_instr_load_w0_word_u0_p1_imm__vs,
++ arm_instr_load_w0_word_u0_p1_imm__vc,
++ arm_instr_load_w0_word_u0_p1_imm__hi,
++ arm_instr_load_w0_word_u0_p1_imm__ls,
++ arm_instr_load_w0_word_u0_p1_imm__ge,
++ arm_instr_load_w0_word_u0_p1_imm__lt,
++ arm_instr_load_w0_word_u0_p1_imm__gt,
++ arm_instr_load_w0_word_u0_p1_imm__le,
++ arm_instr_load_w0_word_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p1_imm__eq,
++ arm_instr_store_w1_word_u0_p1_imm__ne,
++ arm_instr_store_w1_word_u0_p1_imm__cs,
++ arm_instr_store_w1_word_u0_p1_imm__cc,
++ arm_instr_store_w1_word_u0_p1_imm__mi,
++ arm_instr_store_w1_word_u0_p1_imm__pl,
++ arm_instr_store_w1_word_u0_p1_imm__vs,
++ arm_instr_store_w1_word_u0_p1_imm__vc,
++ arm_instr_store_w1_word_u0_p1_imm__hi,
++ arm_instr_store_w1_word_u0_p1_imm__ls,
++ arm_instr_store_w1_word_u0_p1_imm__ge,
++ arm_instr_store_w1_word_u0_p1_imm__lt,
++ arm_instr_store_w1_word_u0_p1_imm__gt,
++ arm_instr_store_w1_word_u0_p1_imm__le,
++ arm_instr_store_w1_word_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p1_imm__eq,
++ arm_instr_load_w1_word_u0_p1_imm__ne,
++ arm_instr_load_w1_word_u0_p1_imm__cs,
++ arm_instr_load_w1_word_u0_p1_imm__cc,
++ arm_instr_load_w1_word_u0_p1_imm__mi,
++ arm_instr_load_w1_word_u0_p1_imm__pl,
++ arm_instr_load_w1_word_u0_p1_imm__vs,
++ arm_instr_load_w1_word_u0_p1_imm__vc,
++ arm_instr_load_w1_word_u0_p1_imm__hi,
++ arm_instr_load_w1_word_u0_p1_imm__ls,
++ arm_instr_load_w1_word_u0_p1_imm__ge,
++ arm_instr_load_w1_word_u0_p1_imm__lt,
++ arm_instr_load_w1_word_u0_p1_imm__gt,
++ arm_instr_load_w1_word_u0_p1_imm__le,
++ arm_instr_load_w1_word_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p1_imm__eq,
++ arm_instr_store_w0_byte_u0_p1_imm__ne,
++ arm_instr_store_w0_byte_u0_p1_imm__cs,
++ arm_instr_store_w0_byte_u0_p1_imm__cc,
++ arm_instr_store_w0_byte_u0_p1_imm__mi,
++ arm_instr_store_w0_byte_u0_p1_imm__pl,
++ arm_instr_store_w0_byte_u0_p1_imm__vs,
++ arm_instr_store_w0_byte_u0_p1_imm__vc,
++ arm_instr_store_w0_byte_u0_p1_imm__hi,
++ arm_instr_store_w0_byte_u0_p1_imm__ls,
++ arm_instr_store_w0_byte_u0_p1_imm__ge,
++ arm_instr_store_w0_byte_u0_p1_imm__lt,
++ arm_instr_store_w0_byte_u0_p1_imm__gt,
++ arm_instr_store_w0_byte_u0_p1_imm__le,
++ arm_instr_store_w0_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p1_imm__eq,
++ arm_instr_load_w0_byte_u0_p1_imm__ne,
++ arm_instr_load_w0_byte_u0_p1_imm__cs,
++ arm_instr_load_w0_byte_u0_p1_imm__cc,
++ arm_instr_load_w0_byte_u0_p1_imm__mi,
++ arm_instr_load_w0_byte_u0_p1_imm__pl,
++ arm_instr_load_w0_byte_u0_p1_imm__vs,
++ arm_instr_load_w0_byte_u0_p1_imm__vc,
++ arm_instr_load_w0_byte_u0_p1_imm__hi,
++ arm_instr_load_w0_byte_u0_p1_imm__ls,
++ arm_instr_load_w0_byte_u0_p1_imm__ge,
++ arm_instr_load_w0_byte_u0_p1_imm__lt,
++ arm_instr_load_w0_byte_u0_p1_imm__gt,
++ arm_instr_load_w0_byte_u0_p1_imm__le,
++ arm_instr_load_w0_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p1_imm__eq,
++ arm_instr_store_w1_byte_u0_p1_imm__ne,
++ arm_instr_store_w1_byte_u0_p1_imm__cs,
++ arm_instr_store_w1_byte_u0_p1_imm__cc,
++ arm_instr_store_w1_byte_u0_p1_imm__mi,
++ arm_instr_store_w1_byte_u0_p1_imm__pl,
++ arm_instr_store_w1_byte_u0_p1_imm__vs,
++ arm_instr_store_w1_byte_u0_p1_imm__vc,
++ arm_instr_store_w1_byte_u0_p1_imm__hi,
++ arm_instr_store_w1_byte_u0_p1_imm__ls,
++ arm_instr_store_w1_byte_u0_p1_imm__ge,
++ arm_instr_store_w1_byte_u0_p1_imm__lt,
++ arm_instr_store_w1_byte_u0_p1_imm__gt,
++ arm_instr_store_w1_byte_u0_p1_imm__le,
++ arm_instr_store_w1_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p1_imm__eq,
++ arm_instr_load_w1_byte_u0_p1_imm__ne,
++ arm_instr_load_w1_byte_u0_p1_imm__cs,
++ arm_instr_load_w1_byte_u0_p1_imm__cc,
++ arm_instr_load_w1_byte_u0_p1_imm__mi,
++ arm_instr_load_w1_byte_u0_p1_imm__pl,
++ arm_instr_load_w1_byte_u0_p1_imm__vs,
++ arm_instr_load_w1_byte_u0_p1_imm__vc,
++ arm_instr_load_w1_byte_u0_p1_imm__hi,
++ arm_instr_load_w1_byte_u0_p1_imm__ls,
++ arm_instr_load_w1_byte_u0_p1_imm__ge,
++ arm_instr_load_w1_byte_u0_p1_imm__lt,
++ arm_instr_load_w1_byte_u0_p1_imm__gt,
++ arm_instr_load_w1_byte_u0_p1_imm__le,
++ arm_instr_load_w1_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p1_imm__eq,
++ arm_instr_store_w0_word_u1_p1_imm__ne,
++ arm_instr_store_w0_word_u1_p1_imm__cs,
++ arm_instr_store_w0_word_u1_p1_imm__cc,
++ arm_instr_store_w0_word_u1_p1_imm__mi,
++ arm_instr_store_w0_word_u1_p1_imm__pl,
++ arm_instr_store_w0_word_u1_p1_imm__vs,
++ arm_instr_store_w0_word_u1_p1_imm__vc,
++ arm_instr_store_w0_word_u1_p1_imm__hi,
++ arm_instr_store_w0_word_u1_p1_imm__ls,
++ arm_instr_store_w0_word_u1_p1_imm__ge,
++ arm_instr_store_w0_word_u1_p1_imm__lt,
++ arm_instr_store_w0_word_u1_p1_imm__gt,
++ arm_instr_store_w0_word_u1_p1_imm__le,
++ arm_instr_store_w0_word_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p1_imm__eq,
++ arm_instr_load_w0_word_u1_p1_imm__ne,
++ arm_instr_load_w0_word_u1_p1_imm__cs,
++ arm_instr_load_w0_word_u1_p1_imm__cc,
++ arm_instr_load_w0_word_u1_p1_imm__mi,
++ arm_instr_load_w0_word_u1_p1_imm__pl,
++ arm_instr_load_w0_word_u1_p1_imm__vs,
++ arm_instr_load_w0_word_u1_p1_imm__vc,
++ arm_instr_load_w0_word_u1_p1_imm__hi,
++ arm_instr_load_w0_word_u1_p1_imm__ls,
++ arm_instr_load_w0_word_u1_p1_imm__ge,
++ arm_instr_load_w0_word_u1_p1_imm__lt,
++ arm_instr_load_w0_word_u1_p1_imm__gt,
++ arm_instr_load_w0_word_u1_p1_imm__le,
++ arm_instr_load_w0_word_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p1_imm__eq,
++ arm_instr_store_w1_word_u1_p1_imm__ne,
++ arm_instr_store_w1_word_u1_p1_imm__cs,
++ arm_instr_store_w1_word_u1_p1_imm__cc,
++ arm_instr_store_w1_word_u1_p1_imm__mi,
++ arm_instr_store_w1_word_u1_p1_imm__pl,
++ arm_instr_store_w1_word_u1_p1_imm__vs,
++ arm_instr_store_w1_word_u1_p1_imm__vc,
++ arm_instr_store_w1_word_u1_p1_imm__hi,
++ arm_instr_store_w1_word_u1_p1_imm__ls,
++ arm_instr_store_w1_word_u1_p1_imm__ge,
++ arm_instr_store_w1_word_u1_p1_imm__lt,
++ arm_instr_store_w1_word_u1_p1_imm__gt,
++ arm_instr_store_w1_word_u1_p1_imm__le,
++ arm_instr_store_w1_word_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p1_imm__eq,
++ arm_instr_load_w1_word_u1_p1_imm__ne,
++ arm_instr_load_w1_word_u1_p1_imm__cs,
++ arm_instr_load_w1_word_u1_p1_imm__cc,
++ arm_instr_load_w1_word_u1_p1_imm__mi,
++ arm_instr_load_w1_word_u1_p1_imm__pl,
++ arm_instr_load_w1_word_u1_p1_imm__vs,
++ arm_instr_load_w1_word_u1_p1_imm__vc,
++ arm_instr_load_w1_word_u1_p1_imm__hi,
++ arm_instr_load_w1_word_u1_p1_imm__ls,
++ arm_instr_load_w1_word_u1_p1_imm__ge,
++ arm_instr_load_w1_word_u1_p1_imm__lt,
++ arm_instr_load_w1_word_u1_p1_imm__gt,
++ arm_instr_load_w1_word_u1_p1_imm__le,
++ arm_instr_load_w1_word_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p1_imm__eq,
++ arm_instr_store_w0_byte_u1_p1_imm__ne,
++ arm_instr_store_w0_byte_u1_p1_imm__cs,
++ arm_instr_store_w0_byte_u1_p1_imm__cc,
++ arm_instr_store_w0_byte_u1_p1_imm__mi,
++ arm_instr_store_w0_byte_u1_p1_imm__pl,
++ arm_instr_store_w0_byte_u1_p1_imm__vs,
++ arm_instr_store_w0_byte_u1_p1_imm__vc,
++ arm_instr_store_w0_byte_u1_p1_imm__hi,
++ arm_instr_store_w0_byte_u1_p1_imm__ls,
++ arm_instr_store_w0_byte_u1_p1_imm__ge,
++ arm_instr_store_w0_byte_u1_p1_imm__lt,
++ arm_instr_store_w0_byte_u1_p1_imm__gt,
++ arm_instr_store_w0_byte_u1_p1_imm__le,
++ arm_instr_store_w0_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p1_imm__eq,
++ arm_instr_load_w0_byte_u1_p1_imm__ne,
++ arm_instr_load_w0_byte_u1_p1_imm__cs,
++ arm_instr_load_w0_byte_u1_p1_imm__cc,
++ arm_instr_load_w0_byte_u1_p1_imm__mi,
++ arm_instr_load_w0_byte_u1_p1_imm__pl,
++ arm_instr_load_w0_byte_u1_p1_imm__vs,
++ arm_instr_load_w0_byte_u1_p1_imm__vc,
++ arm_instr_load_w0_byte_u1_p1_imm__hi,
++ arm_instr_load_w0_byte_u1_p1_imm__ls,
++ arm_instr_load_w0_byte_u1_p1_imm__ge,
++ arm_instr_load_w0_byte_u1_p1_imm__lt,
++ arm_instr_load_w0_byte_u1_p1_imm__gt,
++ arm_instr_load_w0_byte_u1_p1_imm__le,
++ arm_instr_load_w0_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p1_imm__eq,
++ arm_instr_store_w1_byte_u1_p1_imm__ne,
++ arm_instr_store_w1_byte_u1_p1_imm__cs,
++ arm_instr_store_w1_byte_u1_p1_imm__cc,
++ arm_instr_store_w1_byte_u1_p1_imm__mi,
++ arm_instr_store_w1_byte_u1_p1_imm__pl,
++ arm_instr_store_w1_byte_u1_p1_imm__vs,
++ arm_instr_store_w1_byte_u1_p1_imm__vc,
++ arm_instr_store_w1_byte_u1_p1_imm__hi,
++ arm_instr_store_w1_byte_u1_p1_imm__ls,
++ arm_instr_store_w1_byte_u1_p1_imm__ge,
++ arm_instr_store_w1_byte_u1_p1_imm__lt,
++ arm_instr_store_w1_byte_u1_p1_imm__gt,
++ arm_instr_store_w1_byte_u1_p1_imm__le,
++ arm_instr_store_w1_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p1_imm__eq,
++ arm_instr_load_w1_byte_u1_p1_imm__ne,
++ arm_instr_load_w1_byte_u1_p1_imm__cs,
++ arm_instr_load_w1_byte_u1_p1_imm__cc,
++ arm_instr_load_w1_byte_u1_p1_imm__mi,
++ arm_instr_load_w1_byte_u1_p1_imm__pl,
++ arm_instr_load_w1_byte_u1_p1_imm__vs,
++ arm_instr_load_w1_byte_u1_p1_imm__vc,
++ arm_instr_load_w1_byte_u1_p1_imm__hi,
++ arm_instr_load_w1_byte_u1_p1_imm__ls,
++ arm_instr_load_w1_byte_u1_p1_imm__ge,
++ arm_instr_load_w1_byte_u1_p1_imm__lt,
++ arm_instr_load_w1_byte_u1_p1_imm__gt,
++ arm_instr_load_w1_byte_u1_p1_imm__le,
++ arm_instr_load_w1_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p0_reg__eq,
++ arm_instr_store_w0_word_u0_p0_reg__ne,
++ arm_instr_store_w0_word_u0_p0_reg__cs,
++ arm_instr_store_w0_word_u0_p0_reg__cc,
++ arm_instr_store_w0_word_u0_p0_reg__mi,
++ arm_instr_store_w0_word_u0_p0_reg__pl,
++ arm_instr_store_w0_word_u0_p0_reg__vs,
++ arm_instr_store_w0_word_u0_p0_reg__vc,
++ arm_instr_store_w0_word_u0_p0_reg__hi,
++ arm_instr_store_w0_word_u0_p0_reg__ls,
++ arm_instr_store_w0_word_u0_p0_reg__ge,
++ arm_instr_store_w0_word_u0_p0_reg__lt,
++ arm_instr_store_w0_word_u0_p0_reg__gt,
++ arm_instr_store_w0_word_u0_p0_reg__le,
++ arm_instr_store_w0_word_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p0_reg__eq,
++ arm_instr_load_w0_word_u0_p0_reg__ne,
++ arm_instr_load_w0_word_u0_p0_reg__cs,
++ arm_instr_load_w0_word_u0_p0_reg__cc,
++ arm_instr_load_w0_word_u0_p0_reg__mi,
++ arm_instr_load_w0_word_u0_p0_reg__pl,
++ arm_instr_load_w0_word_u0_p0_reg__vs,
++ arm_instr_load_w0_word_u0_p0_reg__vc,
++ arm_instr_load_w0_word_u0_p0_reg__hi,
++ arm_instr_load_w0_word_u0_p0_reg__ls,
++ arm_instr_load_w0_word_u0_p0_reg__ge,
++ arm_instr_load_w0_word_u0_p0_reg__lt,
++ arm_instr_load_w0_word_u0_p0_reg__gt,
++ arm_instr_load_w0_word_u0_p0_reg__le,
++ arm_instr_load_w0_word_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p0_reg__eq,
++ arm_instr_store_w1_word_u0_p0_reg__ne,
++ arm_instr_store_w1_word_u0_p0_reg__cs,
++ arm_instr_store_w1_word_u0_p0_reg__cc,
++ arm_instr_store_w1_word_u0_p0_reg__mi,
++ arm_instr_store_w1_word_u0_p0_reg__pl,
++ arm_instr_store_w1_word_u0_p0_reg__vs,
++ arm_instr_store_w1_word_u0_p0_reg__vc,
++ arm_instr_store_w1_word_u0_p0_reg__hi,
++ arm_instr_store_w1_word_u0_p0_reg__ls,
++ arm_instr_store_w1_word_u0_p0_reg__ge,
++ arm_instr_store_w1_word_u0_p0_reg__lt,
++ arm_instr_store_w1_word_u0_p0_reg__gt,
++ arm_instr_store_w1_word_u0_p0_reg__le,
++ arm_instr_store_w1_word_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p0_reg__eq,
++ arm_instr_load_w1_word_u0_p0_reg__ne,
++ arm_instr_load_w1_word_u0_p0_reg__cs,
++ arm_instr_load_w1_word_u0_p0_reg__cc,
++ arm_instr_load_w1_word_u0_p0_reg__mi,
++ arm_instr_load_w1_word_u0_p0_reg__pl,
++ arm_instr_load_w1_word_u0_p0_reg__vs,
++ arm_instr_load_w1_word_u0_p0_reg__vc,
++ arm_instr_load_w1_word_u0_p0_reg__hi,
++ arm_instr_load_w1_word_u0_p0_reg__ls,
++ arm_instr_load_w1_word_u0_p0_reg__ge,
++ arm_instr_load_w1_word_u0_p0_reg__lt,
++ arm_instr_load_w1_word_u0_p0_reg__gt,
++ arm_instr_load_w1_word_u0_p0_reg__le,
++ arm_instr_load_w1_word_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p0_reg__eq,
++ arm_instr_store_w0_byte_u0_p0_reg__ne,
++ arm_instr_store_w0_byte_u0_p0_reg__cs,
++ arm_instr_store_w0_byte_u0_p0_reg__cc,
++ arm_instr_store_w0_byte_u0_p0_reg__mi,
++ arm_instr_store_w0_byte_u0_p0_reg__pl,
++ arm_instr_store_w0_byte_u0_p0_reg__vs,
++ arm_instr_store_w0_byte_u0_p0_reg__vc,
++ arm_instr_store_w0_byte_u0_p0_reg__hi,
++ arm_instr_store_w0_byte_u0_p0_reg__ls,
++ arm_instr_store_w0_byte_u0_p0_reg__ge,
++ arm_instr_store_w0_byte_u0_p0_reg__lt,
++ arm_instr_store_w0_byte_u0_p0_reg__gt,
++ arm_instr_store_w0_byte_u0_p0_reg__le,
++ arm_instr_store_w0_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p0_reg__eq,
++ arm_instr_load_w0_byte_u0_p0_reg__ne,
++ arm_instr_load_w0_byte_u0_p0_reg__cs,
++ arm_instr_load_w0_byte_u0_p0_reg__cc,
++ arm_instr_load_w0_byte_u0_p0_reg__mi,
++ arm_instr_load_w0_byte_u0_p0_reg__pl,
++ arm_instr_load_w0_byte_u0_p0_reg__vs,
++ arm_instr_load_w0_byte_u0_p0_reg__vc,
++ arm_instr_load_w0_byte_u0_p0_reg__hi,
++ arm_instr_load_w0_byte_u0_p0_reg__ls,
++ arm_instr_load_w0_byte_u0_p0_reg__ge,
++ arm_instr_load_w0_byte_u0_p0_reg__lt,
++ arm_instr_load_w0_byte_u0_p0_reg__gt,
++ arm_instr_load_w0_byte_u0_p0_reg__le,
++ arm_instr_load_w0_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p0_reg__eq,
++ arm_instr_store_w1_byte_u0_p0_reg__ne,
++ arm_instr_store_w1_byte_u0_p0_reg__cs,
++ arm_instr_store_w1_byte_u0_p0_reg__cc,
++ arm_instr_store_w1_byte_u0_p0_reg__mi,
++ arm_instr_store_w1_byte_u0_p0_reg__pl,
++ arm_instr_store_w1_byte_u0_p0_reg__vs,
++ arm_instr_store_w1_byte_u0_p0_reg__vc,
++ arm_instr_store_w1_byte_u0_p0_reg__hi,
++ arm_instr_store_w1_byte_u0_p0_reg__ls,
++ arm_instr_store_w1_byte_u0_p0_reg__ge,
++ arm_instr_store_w1_byte_u0_p0_reg__lt,
++ arm_instr_store_w1_byte_u0_p0_reg__gt,
++ arm_instr_store_w1_byte_u0_p0_reg__le,
++ arm_instr_store_w1_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p0_reg__eq,
++ arm_instr_load_w1_byte_u0_p0_reg__ne,
++ arm_instr_load_w1_byte_u0_p0_reg__cs,
++ arm_instr_load_w1_byte_u0_p0_reg__cc,
++ arm_instr_load_w1_byte_u0_p0_reg__mi,
++ arm_instr_load_w1_byte_u0_p0_reg__pl,
++ arm_instr_load_w1_byte_u0_p0_reg__vs,
++ arm_instr_load_w1_byte_u0_p0_reg__vc,
++ arm_instr_load_w1_byte_u0_p0_reg__hi,
++ arm_instr_load_w1_byte_u0_p0_reg__ls,
++ arm_instr_load_w1_byte_u0_p0_reg__ge,
++ arm_instr_load_w1_byte_u0_p0_reg__lt,
++ arm_instr_load_w1_byte_u0_p0_reg__gt,
++ arm_instr_load_w1_byte_u0_p0_reg__le,
++ arm_instr_load_w1_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p0_reg__eq,
++ arm_instr_store_w0_word_u1_p0_reg__ne,
++ arm_instr_store_w0_word_u1_p0_reg__cs,
++ arm_instr_store_w0_word_u1_p0_reg__cc,
++ arm_instr_store_w0_word_u1_p0_reg__mi,
++ arm_instr_store_w0_word_u1_p0_reg__pl,
++ arm_instr_store_w0_word_u1_p0_reg__vs,
++ arm_instr_store_w0_word_u1_p0_reg__vc,
++ arm_instr_store_w0_word_u1_p0_reg__hi,
++ arm_instr_store_w0_word_u1_p0_reg__ls,
++ arm_instr_store_w0_word_u1_p0_reg__ge,
++ arm_instr_store_w0_word_u1_p0_reg__lt,
++ arm_instr_store_w0_word_u1_p0_reg__gt,
++ arm_instr_store_w0_word_u1_p0_reg__le,
++ arm_instr_store_w0_word_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p0_reg__eq,
++ arm_instr_load_w0_word_u1_p0_reg__ne,
++ arm_instr_load_w0_word_u1_p0_reg__cs,
++ arm_instr_load_w0_word_u1_p0_reg__cc,
++ arm_instr_load_w0_word_u1_p0_reg__mi,
++ arm_instr_load_w0_word_u1_p0_reg__pl,
++ arm_instr_load_w0_word_u1_p0_reg__vs,
++ arm_instr_load_w0_word_u1_p0_reg__vc,
++ arm_instr_load_w0_word_u1_p0_reg__hi,
++ arm_instr_load_w0_word_u1_p0_reg__ls,
++ arm_instr_load_w0_word_u1_p0_reg__ge,
++ arm_instr_load_w0_word_u1_p0_reg__lt,
++ arm_instr_load_w0_word_u1_p0_reg__gt,
++ arm_instr_load_w0_word_u1_p0_reg__le,
++ arm_instr_load_w0_word_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p0_reg__eq,
++ arm_instr_store_w1_word_u1_p0_reg__ne,
++ arm_instr_store_w1_word_u1_p0_reg__cs,
++ arm_instr_store_w1_word_u1_p0_reg__cc,
++ arm_instr_store_w1_word_u1_p0_reg__mi,
++ arm_instr_store_w1_word_u1_p0_reg__pl,
++ arm_instr_store_w1_word_u1_p0_reg__vs,
++ arm_instr_store_w1_word_u1_p0_reg__vc,
++ arm_instr_store_w1_word_u1_p0_reg__hi,
++ arm_instr_store_w1_word_u1_p0_reg__ls,
++ arm_instr_store_w1_word_u1_p0_reg__ge,
++ arm_instr_store_w1_word_u1_p0_reg__lt,
++ arm_instr_store_w1_word_u1_p0_reg__gt,
++ arm_instr_store_w1_word_u1_p0_reg__le,
++ arm_instr_store_w1_word_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p0_reg__eq,
++ arm_instr_load_w1_word_u1_p0_reg__ne,
++ arm_instr_load_w1_word_u1_p0_reg__cs,
++ arm_instr_load_w1_word_u1_p0_reg__cc,
++ arm_instr_load_w1_word_u1_p0_reg__mi,
++ arm_instr_load_w1_word_u1_p0_reg__pl,
++ arm_instr_load_w1_word_u1_p0_reg__vs,
++ arm_instr_load_w1_word_u1_p0_reg__vc,
++ arm_instr_load_w1_word_u1_p0_reg__hi,
++ arm_instr_load_w1_word_u1_p0_reg__ls,
++ arm_instr_load_w1_word_u1_p0_reg__ge,
++ arm_instr_load_w1_word_u1_p0_reg__lt,
++ arm_instr_load_w1_word_u1_p0_reg__gt,
++ arm_instr_load_w1_word_u1_p0_reg__le,
++ arm_instr_load_w1_word_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p0_reg__eq,
++ arm_instr_store_w0_byte_u1_p0_reg__ne,
++ arm_instr_store_w0_byte_u1_p0_reg__cs,
++ arm_instr_store_w0_byte_u1_p0_reg__cc,
++ arm_instr_store_w0_byte_u1_p0_reg__mi,
++ arm_instr_store_w0_byte_u1_p0_reg__pl,
++ arm_instr_store_w0_byte_u1_p0_reg__vs,
++ arm_instr_store_w0_byte_u1_p0_reg__vc,
++ arm_instr_store_w0_byte_u1_p0_reg__hi,
++ arm_instr_store_w0_byte_u1_p0_reg__ls,
++ arm_instr_store_w0_byte_u1_p0_reg__ge,
++ arm_instr_store_w0_byte_u1_p0_reg__lt,
++ arm_instr_store_w0_byte_u1_p0_reg__gt,
++ arm_instr_store_w0_byte_u1_p0_reg__le,
++ arm_instr_store_w0_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p0_reg__eq,
++ arm_instr_load_w0_byte_u1_p0_reg__ne,
++ arm_instr_load_w0_byte_u1_p0_reg__cs,
++ arm_instr_load_w0_byte_u1_p0_reg__cc,
++ arm_instr_load_w0_byte_u1_p0_reg__mi,
++ arm_instr_load_w0_byte_u1_p0_reg__pl,
++ arm_instr_load_w0_byte_u1_p0_reg__vs,
++ arm_instr_load_w0_byte_u1_p0_reg__vc,
++ arm_instr_load_w0_byte_u1_p0_reg__hi,
++ arm_instr_load_w0_byte_u1_p0_reg__ls,
++ arm_instr_load_w0_byte_u1_p0_reg__ge,
++ arm_instr_load_w0_byte_u1_p0_reg__lt,
++ arm_instr_load_w0_byte_u1_p0_reg__gt,
++ arm_instr_load_w0_byte_u1_p0_reg__le,
++ arm_instr_load_w0_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p0_reg__eq,
++ arm_instr_store_w1_byte_u1_p0_reg__ne,
++ arm_instr_store_w1_byte_u1_p0_reg__cs,
++ arm_instr_store_w1_byte_u1_p0_reg__cc,
++ arm_instr_store_w1_byte_u1_p0_reg__mi,
++ arm_instr_store_w1_byte_u1_p0_reg__pl,
++ arm_instr_store_w1_byte_u1_p0_reg__vs,
++ arm_instr_store_w1_byte_u1_p0_reg__vc,
++ arm_instr_store_w1_byte_u1_p0_reg__hi,
++ arm_instr_store_w1_byte_u1_p0_reg__ls,
++ arm_instr_store_w1_byte_u1_p0_reg__ge,
++ arm_instr_store_w1_byte_u1_p0_reg__lt,
++ arm_instr_store_w1_byte_u1_p0_reg__gt,
++ arm_instr_store_w1_byte_u1_p0_reg__le,
++ arm_instr_store_w1_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p0_reg__eq,
++ arm_instr_load_w1_byte_u1_p0_reg__ne,
++ arm_instr_load_w1_byte_u1_p0_reg__cs,
++ arm_instr_load_w1_byte_u1_p0_reg__cc,
++ arm_instr_load_w1_byte_u1_p0_reg__mi,
++ arm_instr_load_w1_byte_u1_p0_reg__pl,
++ arm_instr_load_w1_byte_u1_p0_reg__vs,
++ arm_instr_load_w1_byte_u1_p0_reg__vc,
++ arm_instr_load_w1_byte_u1_p0_reg__hi,
++ arm_instr_load_w1_byte_u1_p0_reg__ls,
++ arm_instr_load_w1_byte_u1_p0_reg__ge,
++ arm_instr_load_w1_byte_u1_p0_reg__lt,
++ arm_instr_load_w1_byte_u1_p0_reg__gt,
++ arm_instr_load_w1_byte_u1_p0_reg__le,
++ arm_instr_load_w1_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p1_reg__eq,
++ arm_instr_store_w0_word_u0_p1_reg__ne,
++ arm_instr_store_w0_word_u0_p1_reg__cs,
++ arm_instr_store_w0_word_u0_p1_reg__cc,
++ arm_instr_store_w0_word_u0_p1_reg__mi,
++ arm_instr_store_w0_word_u0_p1_reg__pl,
++ arm_instr_store_w0_word_u0_p1_reg__vs,
++ arm_instr_store_w0_word_u0_p1_reg__vc,
++ arm_instr_store_w0_word_u0_p1_reg__hi,
++ arm_instr_store_w0_word_u0_p1_reg__ls,
++ arm_instr_store_w0_word_u0_p1_reg__ge,
++ arm_instr_store_w0_word_u0_p1_reg__lt,
++ arm_instr_store_w0_word_u0_p1_reg__gt,
++ arm_instr_store_w0_word_u0_p1_reg__le,
++ arm_instr_store_w0_word_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p1_reg__eq,
++ arm_instr_load_w0_word_u0_p1_reg__ne,
++ arm_instr_load_w0_word_u0_p1_reg__cs,
++ arm_instr_load_w0_word_u0_p1_reg__cc,
++ arm_instr_load_w0_word_u0_p1_reg__mi,
++ arm_instr_load_w0_word_u0_p1_reg__pl,
++ arm_instr_load_w0_word_u0_p1_reg__vs,
++ arm_instr_load_w0_word_u0_p1_reg__vc,
++ arm_instr_load_w0_word_u0_p1_reg__hi,
++ arm_instr_load_w0_word_u0_p1_reg__ls,
++ arm_instr_load_w0_word_u0_p1_reg__ge,
++ arm_instr_load_w0_word_u0_p1_reg__lt,
++ arm_instr_load_w0_word_u0_p1_reg__gt,
++ arm_instr_load_w0_word_u0_p1_reg__le,
++ arm_instr_load_w0_word_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p1_reg__eq,
++ arm_instr_store_w1_word_u0_p1_reg__ne,
++ arm_instr_store_w1_word_u0_p1_reg__cs,
++ arm_instr_store_w1_word_u0_p1_reg__cc,
++ arm_instr_store_w1_word_u0_p1_reg__mi,
++ arm_instr_store_w1_word_u0_p1_reg__pl,
++ arm_instr_store_w1_word_u0_p1_reg__vs,
++ arm_instr_store_w1_word_u0_p1_reg__vc,
++ arm_instr_store_w1_word_u0_p1_reg__hi,
++ arm_instr_store_w1_word_u0_p1_reg__ls,
++ arm_instr_store_w1_word_u0_p1_reg__ge,
++ arm_instr_store_w1_word_u0_p1_reg__lt,
++ arm_instr_store_w1_word_u0_p1_reg__gt,
++ arm_instr_store_w1_word_u0_p1_reg__le,
++ arm_instr_store_w1_word_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p1_reg__eq,
++ arm_instr_load_w1_word_u0_p1_reg__ne,
++ arm_instr_load_w1_word_u0_p1_reg__cs,
++ arm_instr_load_w1_word_u0_p1_reg__cc,
++ arm_instr_load_w1_word_u0_p1_reg__mi,
++ arm_instr_load_w1_word_u0_p1_reg__pl,
++ arm_instr_load_w1_word_u0_p1_reg__vs,
++ arm_instr_load_w1_word_u0_p1_reg__vc,
++ arm_instr_load_w1_word_u0_p1_reg__hi,
++ arm_instr_load_w1_word_u0_p1_reg__ls,
++ arm_instr_load_w1_word_u0_p1_reg__ge,
++ arm_instr_load_w1_word_u0_p1_reg__lt,
++ arm_instr_load_w1_word_u0_p1_reg__gt,
++ arm_instr_load_w1_word_u0_p1_reg__le,
++ arm_instr_load_w1_word_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p1_reg__eq,
++ arm_instr_store_w0_byte_u0_p1_reg__ne,
++ arm_instr_store_w0_byte_u0_p1_reg__cs,
++ arm_instr_store_w0_byte_u0_p1_reg__cc,
++ arm_instr_store_w0_byte_u0_p1_reg__mi,
++ arm_instr_store_w0_byte_u0_p1_reg__pl,
++ arm_instr_store_w0_byte_u0_p1_reg__vs,
++ arm_instr_store_w0_byte_u0_p1_reg__vc,
++ arm_instr_store_w0_byte_u0_p1_reg__hi,
++ arm_instr_store_w0_byte_u0_p1_reg__ls,
++ arm_instr_store_w0_byte_u0_p1_reg__ge,
++ arm_instr_store_w0_byte_u0_p1_reg__lt,
++ arm_instr_store_w0_byte_u0_p1_reg__gt,
++ arm_instr_store_w0_byte_u0_p1_reg__le,
++ arm_instr_store_w0_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p1_reg__eq,
++ arm_instr_load_w0_byte_u0_p1_reg__ne,
++ arm_instr_load_w0_byte_u0_p1_reg__cs,
++ arm_instr_load_w0_byte_u0_p1_reg__cc,
++ arm_instr_load_w0_byte_u0_p1_reg__mi,
++ arm_instr_load_w0_byte_u0_p1_reg__pl,
++ arm_instr_load_w0_byte_u0_p1_reg__vs,
++ arm_instr_load_w0_byte_u0_p1_reg__vc,
++ arm_instr_load_w0_byte_u0_p1_reg__hi,
++ arm_instr_load_w0_byte_u0_p1_reg__ls,
++ arm_instr_load_w0_byte_u0_p1_reg__ge,
++ arm_instr_load_w0_byte_u0_p1_reg__lt,
++ arm_instr_load_w0_byte_u0_p1_reg__gt,
++ arm_instr_load_w0_byte_u0_p1_reg__le,
++ arm_instr_load_w0_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p1_reg__eq,
++ arm_instr_store_w1_byte_u0_p1_reg__ne,
++ arm_instr_store_w1_byte_u0_p1_reg__cs,
++ arm_instr_store_w1_byte_u0_p1_reg__cc,
++ arm_instr_store_w1_byte_u0_p1_reg__mi,
++ arm_instr_store_w1_byte_u0_p1_reg__pl,
++ arm_instr_store_w1_byte_u0_p1_reg__vs,
++ arm_instr_store_w1_byte_u0_p1_reg__vc,
++ arm_instr_store_w1_byte_u0_p1_reg__hi,
++ arm_instr_store_w1_byte_u0_p1_reg__ls,
++ arm_instr_store_w1_byte_u0_p1_reg__ge,
++ arm_instr_store_w1_byte_u0_p1_reg__lt,
++ arm_instr_store_w1_byte_u0_p1_reg__gt,
++ arm_instr_store_w1_byte_u0_p1_reg__le,
++ arm_instr_store_w1_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p1_reg__eq,
++ arm_instr_load_w1_byte_u0_p1_reg__ne,
++ arm_instr_load_w1_byte_u0_p1_reg__cs,
++ arm_instr_load_w1_byte_u0_p1_reg__cc,
++ arm_instr_load_w1_byte_u0_p1_reg__mi,
++ arm_instr_load_w1_byte_u0_p1_reg__pl,
++ arm_instr_load_w1_byte_u0_p1_reg__vs,
++ arm_instr_load_w1_byte_u0_p1_reg__vc,
++ arm_instr_load_w1_byte_u0_p1_reg__hi,
++ arm_instr_load_w1_byte_u0_p1_reg__ls,
++ arm_instr_load_w1_byte_u0_p1_reg__ge,
++ arm_instr_load_w1_byte_u0_p1_reg__lt,
++ arm_instr_load_w1_byte_u0_p1_reg__gt,
++ arm_instr_load_w1_byte_u0_p1_reg__le,
++ arm_instr_load_w1_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p1_reg__eq,
++ arm_instr_store_w0_word_u1_p1_reg__ne,
++ arm_instr_store_w0_word_u1_p1_reg__cs,
++ arm_instr_store_w0_word_u1_p1_reg__cc,
++ arm_instr_store_w0_word_u1_p1_reg__mi,
++ arm_instr_store_w0_word_u1_p1_reg__pl,
++ arm_instr_store_w0_word_u1_p1_reg__vs,
++ arm_instr_store_w0_word_u1_p1_reg__vc,
++ arm_instr_store_w0_word_u1_p1_reg__hi,
++ arm_instr_store_w0_word_u1_p1_reg__ls,
++ arm_instr_store_w0_word_u1_p1_reg__ge,
++ arm_instr_store_w0_word_u1_p1_reg__lt,
++ arm_instr_store_w0_word_u1_p1_reg__gt,
++ arm_instr_store_w0_word_u1_p1_reg__le,
++ arm_instr_store_w0_word_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p1_reg__eq,
++ arm_instr_load_w0_word_u1_p1_reg__ne,
++ arm_instr_load_w0_word_u1_p1_reg__cs,
++ arm_instr_load_w0_word_u1_p1_reg__cc,
++ arm_instr_load_w0_word_u1_p1_reg__mi,
++ arm_instr_load_w0_word_u1_p1_reg__pl,
++ arm_instr_load_w0_word_u1_p1_reg__vs,
++ arm_instr_load_w0_word_u1_p1_reg__vc,
++ arm_instr_load_w0_word_u1_p1_reg__hi,
++ arm_instr_load_w0_word_u1_p1_reg__ls,
++ arm_instr_load_w0_word_u1_p1_reg__ge,
++ arm_instr_load_w0_word_u1_p1_reg__lt,
++ arm_instr_load_w0_word_u1_p1_reg__gt,
++ arm_instr_load_w0_word_u1_p1_reg__le,
++ arm_instr_load_w0_word_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p1_reg__eq,
++ arm_instr_store_w1_word_u1_p1_reg__ne,
++ arm_instr_store_w1_word_u1_p1_reg__cs,
++ arm_instr_store_w1_word_u1_p1_reg__cc,
++ arm_instr_store_w1_word_u1_p1_reg__mi,
++ arm_instr_store_w1_word_u1_p1_reg__pl,
++ arm_instr_store_w1_word_u1_p1_reg__vs,
++ arm_instr_store_w1_word_u1_p1_reg__vc,
++ arm_instr_store_w1_word_u1_p1_reg__hi,
++ arm_instr_store_w1_word_u1_p1_reg__ls,
++ arm_instr_store_w1_word_u1_p1_reg__ge,
++ arm_instr_store_w1_word_u1_p1_reg__lt,
++ arm_instr_store_w1_word_u1_p1_reg__gt,
++ arm_instr_store_w1_word_u1_p1_reg__le,
++ arm_instr_store_w1_word_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p1_reg__eq,
++ arm_instr_load_w1_word_u1_p1_reg__ne,
++ arm_instr_load_w1_word_u1_p1_reg__cs,
++ arm_instr_load_w1_word_u1_p1_reg__cc,
++ arm_instr_load_w1_word_u1_p1_reg__mi,
++ arm_instr_load_w1_word_u1_p1_reg__pl,
++ arm_instr_load_w1_word_u1_p1_reg__vs,
++ arm_instr_load_w1_word_u1_p1_reg__vc,
++ arm_instr_load_w1_word_u1_p1_reg__hi,
++ arm_instr_load_w1_word_u1_p1_reg__ls,
++ arm_instr_load_w1_word_u1_p1_reg__ge,
++ arm_instr_load_w1_word_u1_p1_reg__lt,
++ arm_instr_load_w1_word_u1_p1_reg__gt,
++ arm_instr_load_w1_word_u1_p1_reg__le,
++ arm_instr_load_w1_word_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p1_reg__eq,
++ arm_instr_store_w0_byte_u1_p1_reg__ne,
++ arm_instr_store_w0_byte_u1_p1_reg__cs,
++ arm_instr_store_w0_byte_u1_p1_reg__cc,
++ arm_instr_store_w0_byte_u1_p1_reg__mi,
++ arm_instr_store_w0_byte_u1_p1_reg__pl,
++ arm_instr_store_w0_byte_u1_p1_reg__vs,
++ arm_instr_store_w0_byte_u1_p1_reg__vc,
++ arm_instr_store_w0_byte_u1_p1_reg__hi,
++ arm_instr_store_w0_byte_u1_p1_reg__ls,
++ arm_instr_store_w0_byte_u1_p1_reg__ge,
++ arm_instr_store_w0_byte_u1_p1_reg__lt,
++ arm_instr_store_w0_byte_u1_p1_reg__gt,
++ arm_instr_store_w0_byte_u1_p1_reg__le,
++ arm_instr_store_w0_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p1_reg__eq,
++ arm_instr_load_w0_byte_u1_p1_reg__ne,
++ arm_instr_load_w0_byte_u1_p1_reg__cs,
++ arm_instr_load_w0_byte_u1_p1_reg__cc,
++ arm_instr_load_w0_byte_u1_p1_reg__mi,
++ arm_instr_load_w0_byte_u1_p1_reg__pl,
++ arm_instr_load_w0_byte_u1_p1_reg__vs,
++ arm_instr_load_w0_byte_u1_p1_reg__vc,
++ arm_instr_load_w0_byte_u1_p1_reg__hi,
++ arm_instr_load_w0_byte_u1_p1_reg__ls,
++ arm_instr_load_w0_byte_u1_p1_reg__ge,
++ arm_instr_load_w0_byte_u1_p1_reg__lt,
++ arm_instr_load_w0_byte_u1_p1_reg__gt,
++ arm_instr_load_w0_byte_u1_p1_reg__le,
++ arm_instr_load_w0_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p1_reg__eq,
++ arm_instr_store_w1_byte_u1_p1_reg__ne,
++ arm_instr_store_w1_byte_u1_p1_reg__cs,
++ arm_instr_store_w1_byte_u1_p1_reg__cc,
++ arm_instr_store_w1_byte_u1_p1_reg__mi,
++ arm_instr_store_w1_byte_u1_p1_reg__pl,
++ arm_instr_store_w1_byte_u1_p1_reg__vs,
++ arm_instr_store_w1_byte_u1_p1_reg__vc,
++ arm_instr_store_w1_byte_u1_p1_reg__hi,
++ arm_instr_store_w1_byte_u1_p1_reg__ls,
++ arm_instr_store_w1_byte_u1_p1_reg__ge,
++ arm_instr_store_w1_byte_u1_p1_reg__lt,
++ arm_instr_store_w1_byte_u1_p1_reg__gt,
++ arm_instr_store_w1_byte_u1_p1_reg__le,
++ arm_instr_store_w1_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p1_reg__eq,
++ arm_instr_load_w1_byte_u1_p1_reg__ne,
++ arm_instr_load_w1_byte_u1_p1_reg__cs,
++ arm_instr_load_w1_byte_u1_p1_reg__cc,
++ arm_instr_load_w1_byte_u1_p1_reg__mi,
++ arm_instr_load_w1_byte_u1_p1_reg__pl,
++ arm_instr_load_w1_byte_u1_p1_reg__vs,
++ arm_instr_load_w1_byte_u1_p1_reg__vc,
++ arm_instr_load_w1_byte_u1_p1_reg__hi,
++ arm_instr_load_w1_byte_u1_p1_reg__ls,
++ arm_instr_load_w1_byte_u1_p1_reg__ge,
++ arm_instr_load_w1_byte_u1_p1_reg__lt,
++ arm_instr_load_w1_byte_u1_p1_reg__gt,
++ arm_instr_load_w1_byte_u1_p1_reg__le,
++ arm_instr_load_w1_byte_u1_p1_reg,
++ arm_instr_nop
++};
++
++
++ void (*arm_load_store_instr_pc[1024])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_store_w0_word_u0_p0_imm_pc__eq,
++ arm_instr_store_w0_word_u0_p0_imm_pc__ne,
++ arm_instr_store_w0_word_u0_p0_imm_pc__cs,
++ arm_instr_store_w0_word_u0_p0_imm_pc__cc,
++ arm_instr_store_w0_word_u0_p0_imm_pc__mi,
++ arm_instr_store_w0_word_u0_p0_imm_pc__pl,
++ arm_instr_store_w0_word_u0_p0_imm_pc__vs,
++ arm_instr_store_w0_word_u0_p0_imm_pc__vc,
++ arm_instr_store_w0_word_u0_p0_imm_pc__hi,
++ arm_instr_store_w0_word_u0_p0_imm_pc__ls,
++ arm_instr_store_w0_word_u0_p0_imm_pc__ge,
++ arm_instr_store_w0_word_u0_p0_imm_pc__lt,
++ arm_instr_store_w0_word_u0_p0_imm_pc__gt,
++ arm_instr_store_w0_word_u0_p0_imm_pc__le,
++ arm_instr_store_w0_word_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p0_imm_pc__eq,
++ arm_instr_load_w0_word_u0_p0_imm_pc__ne,
++ arm_instr_load_w0_word_u0_p0_imm_pc__cs,
++ arm_instr_load_w0_word_u0_p0_imm_pc__cc,
++ arm_instr_load_w0_word_u0_p0_imm_pc__mi,
++ arm_instr_load_w0_word_u0_p0_imm_pc__pl,
++ arm_instr_load_w0_word_u0_p0_imm_pc__vs,
++ arm_instr_load_w0_word_u0_p0_imm_pc__vc,
++ arm_instr_load_w0_word_u0_p0_imm_pc__hi,
++ arm_instr_load_w0_word_u0_p0_imm_pc__ls,
++ arm_instr_load_w0_word_u0_p0_imm_pc__ge,
++ arm_instr_load_w0_word_u0_p0_imm_pc__lt,
++ arm_instr_load_w0_word_u0_p0_imm_pc__gt,
++ arm_instr_load_w0_word_u0_p0_imm_pc__le,
++ arm_instr_load_w0_word_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p0_imm_pc__eq,
++ arm_instr_store_w1_word_u0_p0_imm_pc__ne,
++ arm_instr_store_w1_word_u0_p0_imm_pc__cs,
++ arm_instr_store_w1_word_u0_p0_imm_pc__cc,
++ arm_instr_store_w1_word_u0_p0_imm_pc__mi,
++ arm_instr_store_w1_word_u0_p0_imm_pc__pl,
++ arm_instr_store_w1_word_u0_p0_imm_pc__vs,
++ arm_instr_store_w1_word_u0_p0_imm_pc__vc,
++ arm_instr_store_w1_word_u0_p0_imm_pc__hi,
++ arm_instr_store_w1_word_u0_p0_imm_pc__ls,
++ arm_instr_store_w1_word_u0_p0_imm_pc__ge,
++ arm_instr_store_w1_word_u0_p0_imm_pc__lt,
++ arm_instr_store_w1_word_u0_p0_imm_pc__gt,
++ arm_instr_store_w1_word_u0_p0_imm_pc__le,
++ arm_instr_store_w1_word_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p0_imm_pc__eq,
++ arm_instr_load_w1_word_u0_p0_imm_pc__ne,
++ arm_instr_load_w1_word_u0_p0_imm_pc__cs,
++ arm_instr_load_w1_word_u0_p0_imm_pc__cc,
++ arm_instr_load_w1_word_u0_p0_imm_pc__mi,
++ arm_instr_load_w1_word_u0_p0_imm_pc__pl,
++ arm_instr_load_w1_word_u0_p0_imm_pc__vs,
++ arm_instr_load_w1_word_u0_p0_imm_pc__vc,
++ arm_instr_load_w1_word_u0_p0_imm_pc__hi,
++ arm_instr_load_w1_word_u0_p0_imm_pc__ls,
++ arm_instr_load_w1_word_u0_p0_imm_pc__ge,
++ arm_instr_load_w1_word_u0_p0_imm_pc__lt,
++ arm_instr_load_w1_word_u0_p0_imm_pc__gt,
++ arm_instr_load_w1_word_u0_p0_imm_pc__le,
++ arm_instr_load_w1_word_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__eq,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__ne,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__cs,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__cc,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__mi,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__pl,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__vs,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__vc,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__hi,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__ls,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__ge,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__lt,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__gt,
++ arm_instr_store_w0_byte_u0_p0_imm_pc__le,
++ arm_instr_store_w0_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__eq,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__ne,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__cs,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__cc,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__mi,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__pl,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__vs,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__vc,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__hi,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__ls,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__ge,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__lt,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__gt,
++ arm_instr_load_w0_byte_u0_p0_imm_pc__le,
++ arm_instr_load_w0_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__eq,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__ne,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__cs,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__cc,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__mi,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__pl,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__vs,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__vc,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__hi,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__ls,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__ge,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__lt,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__gt,
++ arm_instr_store_w1_byte_u0_p0_imm_pc__le,
++ arm_instr_store_w1_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__eq,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__ne,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__cs,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__cc,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__mi,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__pl,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__vs,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__vc,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__hi,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__ls,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__ge,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__lt,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__gt,
++ arm_instr_load_w1_byte_u0_p0_imm_pc__le,
++ arm_instr_load_w1_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p0_imm_pc__eq,
++ arm_instr_store_w0_word_u1_p0_imm_pc__ne,
++ arm_instr_store_w0_word_u1_p0_imm_pc__cs,
++ arm_instr_store_w0_word_u1_p0_imm_pc__cc,
++ arm_instr_store_w0_word_u1_p0_imm_pc__mi,
++ arm_instr_store_w0_word_u1_p0_imm_pc__pl,
++ arm_instr_store_w0_word_u1_p0_imm_pc__vs,
++ arm_instr_store_w0_word_u1_p0_imm_pc__vc,
++ arm_instr_store_w0_word_u1_p0_imm_pc__hi,
++ arm_instr_store_w0_word_u1_p0_imm_pc__ls,
++ arm_instr_store_w0_word_u1_p0_imm_pc__ge,
++ arm_instr_store_w0_word_u1_p0_imm_pc__lt,
++ arm_instr_store_w0_word_u1_p0_imm_pc__gt,
++ arm_instr_store_w0_word_u1_p0_imm_pc__le,
++ arm_instr_store_w0_word_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p0_imm_pc__eq,
++ arm_instr_load_w0_word_u1_p0_imm_pc__ne,
++ arm_instr_load_w0_word_u1_p0_imm_pc__cs,
++ arm_instr_load_w0_word_u1_p0_imm_pc__cc,
++ arm_instr_load_w0_word_u1_p0_imm_pc__mi,
++ arm_instr_load_w0_word_u1_p0_imm_pc__pl,
++ arm_instr_load_w0_word_u1_p0_imm_pc__vs,
++ arm_instr_load_w0_word_u1_p0_imm_pc__vc,
++ arm_instr_load_w0_word_u1_p0_imm_pc__hi,
++ arm_instr_load_w0_word_u1_p0_imm_pc__ls,
++ arm_instr_load_w0_word_u1_p0_imm_pc__ge,
++ arm_instr_load_w0_word_u1_p0_imm_pc__lt,
++ arm_instr_load_w0_word_u1_p0_imm_pc__gt,
++ arm_instr_load_w0_word_u1_p0_imm_pc__le,
++ arm_instr_load_w0_word_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p0_imm_pc__eq,
++ arm_instr_store_w1_word_u1_p0_imm_pc__ne,
++ arm_instr_store_w1_word_u1_p0_imm_pc__cs,
++ arm_instr_store_w1_word_u1_p0_imm_pc__cc,
++ arm_instr_store_w1_word_u1_p0_imm_pc__mi,
++ arm_instr_store_w1_word_u1_p0_imm_pc__pl,
++ arm_instr_store_w1_word_u1_p0_imm_pc__vs,
++ arm_instr_store_w1_word_u1_p0_imm_pc__vc,
++ arm_instr_store_w1_word_u1_p0_imm_pc__hi,
++ arm_instr_store_w1_word_u1_p0_imm_pc__ls,
++ arm_instr_store_w1_word_u1_p0_imm_pc__ge,
++ arm_instr_store_w1_word_u1_p0_imm_pc__lt,
++ arm_instr_store_w1_word_u1_p0_imm_pc__gt,
++ arm_instr_store_w1_word_u1_p0_imm_pc__le,
++ arm_instr_store_w1_word_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p0_imm_pc__eq,
++ arm_instr_load_w1_word_u1_p0_imm_pc__ne,
++ arm_instr_load_w1_word_u1_p0_imm_pc__cs,
++ arm_instr_load_w1_word_u1_p0_imm_pc__cc,
++ arm_instr_load_w1_word_u1_p0_imm_pc__mi,
++ arm_instr_load_w1_word_u1_p0_imm_pc__pl,
++ arm_instr_load_w1_word_u1_p0_imm_pc__vs,
++ arm_instr_load_w1_word_u1_p0_imm_pc__vc,
++ arm_instr_load_w1_word_u1_p0_imm_pc__hi,
++ arm_instr_load_w1_word_u1_p0_imm_pc__ls,
++ arm_instr_load_w1_word_u1_p0_imm_pc__ge,
++ arm_instr_load_w1_word_u1_p0_imm_pc__lt,
++ arm_instr_load_w1_word_u1_p0_imm_pc__gt,
++ arm_instr_load_w1_word_u1_p0_imm_pc__le,
++ arm_instr_load_w1_word_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__eq,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__ne,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__cs,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__cc,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__mi,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__pl,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__vs,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__vc,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__hi,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__ls,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__ge,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__lt,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__gt,
++ arm_instr_store_w0_byte_u1_p0_imm_pc__le,
++ arm_instr_store_w0_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__eq,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__ne,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__cs,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__cc,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__mi,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__pl,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__vs,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__vc,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__hi,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__ls,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__ge,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__lt,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__gt,
++ arm_instr_load_w0_byte_u1_p0_imm_pc__le,
++ arm_instr_load_w0_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__eq,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__ne,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__cs,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__cc,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__mi,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__pl,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__vs,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__vc,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__hi,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__ls,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__ge,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__lt,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__gt,
++ arm_instr_store_w1_byte_u1_p0_imm_pc__le,
++ arm_instr_store_w1_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__eq,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__ne,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__cs,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__cc,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__mi,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__pl,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__vs,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__vc,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__hi,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__ls,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__ge,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__lt,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__gt,
++ arm_instr_load_w1_byte_u1_p0_imm_pc__le,
++ arm_instr_load_w1_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p1_imm_pc__eq,
++ arm_instr_store_w0_word_u0_p1_imm_pc__ne,
++ arm_instr_store_w0_word_u0_p1_imm_pc__cs,
++ arm_instr_store_w0_word_u0_p1_imm_pc__cc,
++ arm_instr_store_w0_word_u0_p1_imm_pc__mi,
++ arm_instr_store_w0_word_u0_p1_imm_pc__pl,
++ arm_instr_store_w0_word_u0_p1_imm_pc__vs,
++ arm_instr_store_w0_word_u0_p1_imm_pc__vc,
++ arm_instr_store_w0_word_u0_p1_imm_pc__hi,
++ arm_instr_store_w0_word_u0_p1_imm_pc__ls,
++ arm_instr_store_w0_word_u0_p1_imm_pc__ge,
++ arm_instr_store_w0_word_u0_p1_imm_pc__lt,
++ arm_instr_store_w0_word_u0_p1_imm_pc__gt,
++ arm_instr_store_w0_word_u0_p1_imm_pc__le,
++ arm_instr_store_w0_word_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p1_imm_pc__eq,
++ arm_instr_load_w0_word_u0_p1_imm_pc__ne,
++ arm_instr_load_w0_word_u0_p1_imm_pc__cs,
++ arm_instr_load_w0_word_u0_p1_imm_pc__cc,
++ arm_instr_load_w0_word_u0_p1_imm_pc__mi,
++ arm_instr_load_w0_word_u0_p1_imm_pc__pl,
++ arm_instr_load_w0_word_u0_p1_imm_pc__vs,
++ arm_instr_load_w0_word_u0_p1_imm_pc__vc,
++ arm_instr_load_w0_word_u0_p1_imm_pc__hi,
++ arm_instr_load_w0_word_u0_p1_imm_pc__ls,
++ arm_instr_load_w0_word_u0_p1_imm_pc__ge,
++ arm_instr_load_w0_word_u0_p1_imm_pc__lt,
++ arm_instr_load_w0_word_u0_p1_imm_pc__gt,
++ arm_instr_load_w0_word_u0_p1_imm_pc__le,
++ arm_instr_load_w0_word_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p1_imm_pc__eq,
++ arm_instr_store_w1_word_u0_p1_imm_pc__ne,
++ arm_instr_store_w1_word_u0_p1_imm_pc__cs,
++ arm_instr_store_w1_word_u0_p1_imm_pc__cc,
++ arm_instr_store_w1_word_u0_p1_imm_pc__mi,
++ arm_instr_store_w1_word_u0_p1_imm_pc__pl,
++ arm_instr_store_w1_word_u0_p1_imm_pc__vs,
++ arm_instr_store_w1_word_u0_p1_imm_pc__vc,
++ arm_instr_store_w1_word_u0_p1_imm_pc__hi,
++ arm_instr_store_w1_word_u0_p1_imm_pc__ls,
++ arm_instr_store_w1_word_u0_p1_imm_pc__ge,
++ arm_instr_store_w1_word_u0_p1_imm_pc__lt,
++ arm_instr_store_w1_word_u0_p1_imm_pc__gt,
++ arm_instr_store_w1_word_u0_p1_imm_pc__le,
++ arm_instr_store_w1_word_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p1_imm_pc__eq,
++ arm_instr_load_w1_word_u0_p1_imm_pc__ne,
++ arm_instr_load_w1_word_u0_p1_imm_pc__cs,
++ arm_instr_load_w1_word_u0_p1_imm_pc__cc,
++ arm_instr_load_w1_word_u0_p1_imm_pc__mi,
++ arm_instr_load_w1_word_u0_p1_imm_pc__pl,
++ arm_instr_load_w1_word_u0_p1_imm_pc__vs,
++ arm_instr_load_w1_word_u0_p1_imm_pc__vc,
++ arm_instr_load_w1_word_u0_p1_imm_pc__hi,
++ arm_instr_load_w1_word_u0_p1_imm_pc__ls,
++ arm_instr_load_w1_word_u0_p1_imm_pc__ge,
++ arm_instr_load_w1_word_u0_p1_imm_pc__lt,
++ arm_instr_load_w1_word_u0_p1_imm_pc__gt,
++ arm_instr_load_w1_word_u0_p1_imm_pc__le,
++ arm_instr_load_w1_word_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__eq,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__ne,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__cs,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__cc,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__mi,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__pl,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__vs,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__vc,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__hi,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__ls,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__ge,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__lt,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__gt,
++ arm_instr_store_w0_byte_u0_p1_imm_pc__le,
++ arm_instr_store_w0_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__eq,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__ne,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__cs,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__cc,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__mi,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__pl,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__vs,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__vc,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__hi,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__ls,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__ge,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__lt,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__gt,
++ arm_instr_load_w0_byte_u0_p1_imm_pc__le,
++ arm_instr_load_w0_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__eq,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__ne,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__cs,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__cc,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__mi,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__pl,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__vs,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__vc,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__hi,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__ls,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__ge,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__lt,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__gt,
++ arm_instr_store_w1_byte_u0_p1_imm_pc__le,
++ arm_instr_store_w1_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__eq,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__ne,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__cs,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__cc,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__mi,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__pl,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__vs,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__vc,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__hi,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__ls,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__ge,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__lt,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__gt,
++ arm_instr_load_w1_byte_u0_p1_imm_pc__le,
++ arm_instr_load_w1_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p1_imm_pc__eq,
++ arm_instr_store_w0_word_u1_p1_imm_pc__ne,
++ arm_instr_store_w0_word_u1_p1_imm_pc__cs,
++ arm_instr_store_w0_word_u1_p1_imm_pc__cc,
++ arm_instr_store_w0_word_u1_p1_imm_pc__mi,
++ arm_instr_store_w0_word_u1_p1_imm_pc__pl,
++ arm_instr_store_w0_word_u1_p1_imm_pc__vs,
++ arm_instr_store_w0_word_u1_p1_imm_pc__vc,
++ arm_instr_store_w0_word_u1_p1_imm_pc__hi,
++ arm_instr_store_w0_word_u1_p1_imm_pc__ls,
++ arm_instr_store_w0_word_u1_p1_imm_pc__ge,
++ arm_instr_store_w0_word_u1_p1_imm_pc__lt,
++ arm_instr_store_w0_word_u1_p1_imm_pc__gt,
++ arm_instr_store_w0_word_u1_p1_imm_pc__le,
++ arm_instr_store_w0_word_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p1_imm_pc__eq,
++ arm_instr_load_w0_word_u1_p1_imm_pc__ne,
++ arm_instr_load_w0_word_u1_p1_imm_pc__cs,
++ arm_instr_load_w0_word_u1_p1_imm_pc__cc,
++ arm_instr_load_w0_word_u1_p1_imm_pc__mi,
++ arm_instr_load_w0_word_u1_p1_imm_pc__pl,
++ arm_instr_load_w0_word_u1_p1_imm_pc__vs,
++ arm_instr_load_w0_word_u1_p1_imm_pc__vc,
++ arm_instr_load_w0_word_u1_p1_imm_pc__hi,
++ arm_instr_load_w0_word_u1_p1_imm_pc__ls,
++ arm_instr_load_w0_word_u1_p1_imm_pc__ge,
++ arm_instr_load_w0_word_u1_p1_imm_pc__lt,
++ arm_instr_load_w0_word_u1_p1_imm_pc__gt,
++ arm_instr_load_w0_word_u1_p1_imm_pc__le,
++ arm_instr_load_w0_word_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p1_imm_pc__eq,
++ arm_instr_store_w1_word_u1_p1_imm_pc__ne,
++ arm_instr_store_w1_word_u1_p1_imm_pc__cs,
++ arm_instr_store_w1_word_u1_p1_imm_pc__cc,
++ arm_instr_store_w1_word_u1_p1_imm_pc__mi,
++ arm_instr_store_w1_word_u1_p1_imm_pc__pl,
++ arm_instr_store_w1_word_u1_p1_imm_pc__vs,
++ arm_instr_store_w1_word_u1_p1_imm_pc__vc,
++ arm_instr_store_w1_word_u1_p1_imm_pc__hi,
++ arm_instr_store_w1_word_u1_p1_imm_pc__ls,
++ arm_instr_store_w1_word_u1_p1_imm_pc__ge,
++ arm_instr_store_w1_word_u1_p1_imm_pc__lt,
++ arm_instr_store_w1_word_u1_p1_imm_pc__gt,
++ arm_instr_store_w1_word_u1_p1_imm_pc__le,
++ arm_instr_store_w1_word_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p1_imm_pc__eq,
++ arm_instr_load_w1_word_u1_p1_imm_pc__ne,
++ arm_instr_load_w1_word_u1_p1_imm_pc__cs,
++ arm_instr_load_w1_word_u1_p1_imm_pc__cc,
++ arm_instr_load_w1_word_u1_p1_imm_pc__mi,
++ arm_instr_load_w1_word_u1_p1_imm_pc__pl,
++ arm_instr_load_w1_word_u1_p1_imm_pc__vs,
++ arm_instr_load_w1_word_u1_p1_imm_pc__vc,
++ arm_instr_load_w1_word_u1_p1_imm_pc__hi,
++ arm_instr_load_w1_word_u1_p1_imm_pc__ls,
++ arm_instr_load_w1_word_u1_p1_imm_pc__ge,
++ arm_instr_load_w1_word_u1_p1_imm_pc__lt,
++ arm_instr_load_w1_word_u1_p1_imm_pc__gt,
++ arm_instr_load_w1_word_u1_p1_imm_pc__le,
++ arm_instr_load_w1_word_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__eq,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__ne,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__cs,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__cc,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__mi,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__pl,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__vs,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__vc,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__hi,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__ls,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__ge,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__lt,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__gt,
++ arm_instr_store_w0_byte_u1_p1_imm_pc__le,
++ arm_instr_store_w0_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__eq,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__ne,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__cs,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__cc,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__mi,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__pl,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__vs,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__vc,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__hi,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__ls,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__ge,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__lt,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__gt,
++ arm_instr_load_w0_byte_u1_p1_imm_pc__le,
++ arm_instr_load_w0_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__eq,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__ne,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__cs,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__cc,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__mi,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__pl,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__vs,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__vc,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__hi,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__ls,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__ge,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__lt,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__gt,
++ arm_instr_store_w1_byte_u1_p1_imm_pc__le,
++ arm_instr_store_w1_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__eq,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__ne,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__cs,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__cc,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__mi,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__pl,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__vs,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__vc,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__hi,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__ls,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__ge,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__lt,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__gt,
++ arm_instr_load_w1_byte_u1_p1_imm_pc__le,
++ arm_instr_load_w1_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p0_reg_pc__eq,
++ arm_instr_store_w0_word_u0_p0_reg_pc__ne,
++ arm_instr_store_w0_word_u0_p0_reg_pc__cs,
++ arm_instr_store_w0_word_u0_p0_reg_pc__cc,
++ arm_instr_store_w0_word_u0_p0_reg_pc__mi,
++ arm_instr_store_w0_word_u0_p0_reg_pc__pl,
++ arm_instr_store_w0_word_u0_p0_reg_pc__vs,
++ arm_instr_store_w0_word_u0_p0_reg_pc__vc,
++ arm_instr_store_w0_word_u0_p0_reg_pc__hi,
++ arm_instr_store_w0_word_u0_p0_reg_pc__ls,
++ arm_instr_store_w0_word_u0_p0_reg_pc__ge,
++ arm_instr_store_w0_word_u0_p0_reg_pc__lt,
++ arm_instr_store_w0_word_u0_p0_reg_pc__gt,
++ arm_instr_store_w0_word_u0_p0_reg_pc__le,
++ arm_instr_store_w0_word_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p0_reg_pc__eq,
++ arm_instr_load_w0_word_u0_p0_reg_pc__ne,
++ arm_instr_load_w0_word_u0_p0_reg_pc__cs,
++ arm_instr_load_w0_word_u0_p0_reg_pc__cc,
++ arm_instr_load_w0_word_u0_p0_reg_pc__mi,
++ arm_instr_load_w0_word_u0_p0_reg_pc__pl,
++ arm_instr_load_w0_word_u0_p0_reg_pc__vs,
++ arm_instr_load_w0_word_u0_p0_reg_pc__vc,
++ arm_instr_load_w0_word_u0_p0_reg_pc__hi,
++ arm_instr_load_w0_word_u0_p0_reg_pc__ls,
++ arm_instr_load_w0_word_u0_p0_reg_pc__ge,
++ arm_instr_load_w0_word_u0_p0_reg_pc__lt,
++ arm_instr_load_w0_word_u0_p0_reg_pc__gt,
++ arm_instr_load_w0_word_u0_p0_reg_pc__le,
++ arm_instr_load_w0_word_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p0_reg_pc__eq,
++ arm_instr_store_w1_word_u0_p0_reg_pc__ne,
++ arm_instr_store_w1_word_u0_p0_reg_pc__cs,
++ arm_instr_store_w1_word_u0_p0_reg_pc__cc,
++ arm_instr_store_w1_word_u0_p0_reg_pc__mi,
++ arm_instr_store_w1_word_u0_p0_reg_pc__pl,
++ arm_instr_store_w1_word_u0_p0_reg_pc__vs,
++ arm_instr_store_w1_word_u0_p0_reg_pc__vc,
++ arm_instr_store_w1_word_u0_p0_reg_pc__hi,
++ arm_instr_store_w1_word_u0_p0_reg_pc__ls,
++ arm_instr_store_w1_word_u0_p0_reg_pc__ge,
++ arm_instr_store_w1_word_u0_p0_reg_pc__lt,
++ arm_instr_store_w1_word_u0_p0_reg_pc__gt,
++ arm_instr_store_w1_word_u0_p0_reg_pc__le,
++ arm_instr_store_w1_word_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p0_reg_pc__eq,
++ arm_instr_load_w1_word_u0_p0_reg_pc__ne,
++ arm_instr_load_w1_word_u0_p0_reg_pc__cs,
++ arm_instr_load_w1_word_u0_p0_reg_pc__cc,
++ arm_instr_load_w1_word_u0_p0_reg_pc__mi,
++ arm_instr_load_w1_word_u0_p0_reg_pc__pl,
++ arm_instr_load_w1_word_u0_p0_reg_pc__vs,
++ arm_instr_load_w1_word_u0_p0_reg_pc__vc,
++ arm_instr_load_w1_word_u0_p0_reg_pc__hi,
++ arm_instr_load_w1_word_u0_p0_reg_pc__ls,
++ arm_instr_load_w1_word_u0_p0_reg_pc__ge,
++ arm_instr_load_w1_word_u0_p0_reg_pc__lt,
++ arm_instr_load_w1_word_u0_p0_reg_pc__gt,
++ arm_instr_load_w1_word_u0_p0_reg_pc__le,
++ arm_instr_load_w1_word_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__eq,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__ne,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__cs,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__cc,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__mi,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__pl,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__vs,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__vc,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__hi,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__ls,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__ge,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__lt,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__gt,
++ arm_instr_store_w0_byte_u0_p0_reg_pc__le,
++ arm_instr_store_w0_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__eq,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__ne,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__cs,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__cc,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__mi,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__pl,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__vs,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__vc,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__hi,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__ls,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__ge,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__lt,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__gt,
++ arm_instr_load_w0_byte_u0_p0_reg_pc__le,
++ arm_instr_load_w0_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__eq,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__ne,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__cs,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__cc,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__mi,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__pl,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__vs,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__vc,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__hi,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__ls,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__ge,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__lt,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__gt,
++ arm_instr_store_w1_byte_u0_p0_reg_pc__le,
++ arm_instr_store_w1_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__eq,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__ne,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__cs,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__cc,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__mi,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__pl,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__vs,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__vc,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__hi,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__ls,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__ge,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__lt,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__gt,
++ arm_instr_load_w1_byte_u0_p0_reg_pc__le,
++ arm_instr_load_w1_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p0_reg_pc__eq,
++ arm_instr_store_w0_word_u1_p0_reg_pc__ne,
++ arm_instr_store_w0_word_u1_p0_reg_pc__cs,
++ arm_instr_store_w0_word_u1_p0_reg_pc__cc,
++ arm_instr_store_w0_word_u1_p0_reg_pc__mi,
++ arm_instr_store_w0_word_u1_p0_reg_pc__pl,
++ arm_instr_store_w0_word_u1_p0_reg_pc__vs,
++ arm_instr_store_w0_word_u1_p0_reg_pc__vc,
++ arm_instr_store_w0_word_u1_p0_reg_pc__hi,
++ arm_instr_store_w0_word_u1_p0_reg_pc__ls,
++ arm_instr_store_w0_word_u1_p0_reg_pc__ge,
++ arm_instr_store_w0_word_u1_p0_reg_pc__lt,
++ arm_instr_store_w0_word_u1_p0_reg_pc__gt,
++ arm_instr_store_w0_word_u1_p0_reg_pc__le,
++ arm_instr_store_w0_word_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p0_reg_pc__eq,
++ arm_instr_load_w0_word_u1_p0_reg_pc__ne,
++ arm_instr_load_w0_word_u1_p0_reg_pc__cs,
++ arm_instr_load_w0_word_u1_p0_reg_pc__cc,
++ arm_instr_load_w0_word_u1_p0_reg_pc__mi,
++ arm_instr_load_w0_word_u1_p0_reg_pc__pl,
++ arm_instr_load_w0_word_u1_p0_reg_pc__vs,
++ arm_instr_load_w0_word_u1_p0_reg_pc__vc,
++ arm_instr_load_w0_word_u1_p0_reg_pc__hi,
++ arm_instr_load_w0_word_u1_p0_reg_pc__ls,
++ arm_instr_load_w0_word_u1_p0_reg_pc__ge,
++ arm_instr_load_w0_word_u1_p0_reg_pc__lt,
++ arm_instr_load_w0_word_u1_p0_reg_pc__gt,
++ arm_instr_load_w0_word_u1_p0_reg_pc__le,
++ arm_instr_load_w0_word_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p0_reg_pc__eq,
++ arm_instr_store_w1_word_u1_p0_reg_pc__ne,
++ arm_instr_store_w1_word_u1_p0_reg_pc__cs,
++ arm_instr_store_w1_word_u1_p0_reg_pc__cc,
++ arm_instr_store_w1_word_u1_p0_reg_pc__mi,
++ arm_instr_store_w1_word_u1_p0_reg_pc__pl,
++ arm_instr_store_w1_word_u1_p0_reg_pc__vs,
++ arm_instr_store_w1_word_u1_p0_reg_pc__vc,
++ arm_instr_store_w1_word_u1_p0_reg_pc__hi,
++ arm_instr_store_w1_word_u1_p0_reg_pc__ls,
++ arm_instr_store_w1_word_u1_p0_reg_pc__ge,
++ arm_instr_store_w1_word_u1_p0_reg_pc__lt,
++ arm_instr_store_w1_word_u1_p0_reg_pc__gt,
++ arm_instr_store_w1_word_u1_p0_reg_pc__le,
++ arm_instr_store_w1_word_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p0_reg_pc__eq,
++ arm_instr_load_w1_word_u1_p0_reg_pc__ne,
++ arm_instr_load_w1_word_u1_p0_reg_pc__cs,
++ arm_instr_load_w1_word_u1_p0_reg_pc__cc,
++ arm_instr_load_w1_word_u1_p0_reg_pc__mi,
++ arm_instr_load_w1_word_u1_p0_reg_pc__pl,
++ arm_instr_load_w1_word_u1_p0_reg_pc__vs,
++ arm_instr_load_w1_word_u1_p0_reg_pc__vc,
++ arm_instr_load_w1_word_u1_p0_reg_pc__hi,
++ arm_instr_load_w1_word_u1_p0_reg_pc__ls,
++ arm_instr_load_w1_word_u1_p0_reg_pc__ge,
++ arm_instr_load_w1_word_u1_p0_reg_pc__lt,
++ arm_instr_load_w1_word_u1_p0_reg_pc__gt,
++ arm_instr_load_w1_word_u1_p0_reg_pc__le,
++ arm_instr_load_w1_word_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__eq,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__ne,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__cs,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__cc,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__mi,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__pl,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__vs,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__vc,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__hi,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__ls,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__ge,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__lt,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__gt,
++ arm_instr_store_w0_byte_u1_p0_reg_pc__le,
++ arm_instr_store_w0_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__eq,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__ne,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__cs,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__cc,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__mi,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__pl,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__vs,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__vc,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__hi,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__ls,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__ge,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__lt,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__gt,
++ arm_instr_load_w0_byte_u1_p0_reg_pc__le,
++ arm_instr_load_w0_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__eq,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__ne,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__cs,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__cc,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__mi,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__pl,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__vs,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__vc,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__hi,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__ls,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__ge,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__lt,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__gt,
++ arm_instr_store_w1_byte_u1_p0_reg_pc__le,
++ arm_instr_store_w1_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__eq,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__ne,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__cs,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__cc,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__mi,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__pl,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__vs,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__vc,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__hi,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__ls,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__ge,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__lt,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__gt,
++ arm_instr_load_w1_byte_u1_p0_reg_pc__le,
++ arm_instr_load_w1_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u0_p1_reg_pc__eq,
++ arm_instr_store_w0_word_u0_p1_reg_pc__ne,
++ arm_instr_store_w0_word_u0_p1_reg_pc__cs,
++ arm_instr_store_w0_word_u0_p1_reg_pc__cc,
++ arm_instr_store_w0_word_u0_p1_reg_pc__mi,
++ arm_instr_store_w0_word_u0_p1_reg_pc__pl,
++ arm_instr_store_w0_word_u0_p1_reg_pc__vs,
++ arm_instr_store_w0_word_u0_p1_reg_pc__vc,
++ arm_instr_store_w0_word_u0_p1_reg_pc__hi,
++ arm_instr_store_w0_word_u0_p1_reg_pc__ls,
++ arm_instr_store_w0_word_u0_p1_reg_pc__ge,
++ arm_instr_store_w0_word_u0_p1_reg_pc__lt,
++ arm_instr_store_w0_word_u0_p1_reg_pc__gt,
++ arm_instr_store_w0_word_u0_p1_reg_pc__le,
++ arm_instr_store_w0_word_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u0_p1_reg_pc__eq,
++ arm_instr_load_w0_word_u0_p1_reg_pc__ne,
++ arm_instr_load_w0_word_u0_p1_reg_pc__cs,
++ arm_instr_load_w0_word_u0_p1_reg_pc__cc,
++ arm_instr_load_w0_word_u0_p1_reg_pc__mi,
++ arm_instr_load_w0_word_u0_p1_reg_pc__pl,
++ arm_instr_load_w0_word_u0_p1_reg_pc__vs,
++ arm_instr_load_w0_word_u0_p1_reg_pc__vc,
++ arm_instr_load_w0_word_u0_p1_reg_pc__hi,
++ arm_instr_load_w0_word_u0_p1_reg_pc__ls,
++ arm_instr_load_w0_word_u0_p1_reg_pc__ge,
++ arm_instr_load_w0_word_u0_p1_reg_pc__lt,
++ arm_instr_load_w0_word_u0_p1_reg_pc__gt,
++ arm_instr_load_w0_word_u0_p1_reg_pc__le,
++ arm_instr_load_w0_word_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u0_p1_reg_pc__eq,
++ arm_instr_store_w1_word_u0_p1_reg_pc__ne,
++ arm_instr_store_w1_word_u0_p1_reg_pc__cs,
++ arm_instr_store_w1_word_u0_p1_reg_pc__cc,
++ arm_instr_store_w1_word_u0_p1_reg_pc__mi,
++ arm_instr_store_w1_word_u0_p1_reg_pc__pl,
++ arm_instr_store_w1_word_u0_p1_reg_pc__vs,
++ arm_instr_store_w1_word_u0_p1_reg_pc__vc,
++ arm_instr_store_w1_word_u0_p1_reg_pc__hi,
++ arm_instr_store_w1_word_u0_p1_reg_pc__ls,
++ arm_instr_store_w1_word_u0_p1_reg_pc__ge,
++ arm_instr_store_w1_word_u0_p1_reg_pc__lt,
++ arm_instr_store_w1_word_u0_p1_reg_pc__gt,
++ arm_instr_store_w1_word_u0_p1_reg_pc__le,
++ arm_instr_store_w1_word_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u0_p1_reg_pc__eq,
++ arm_instr_load_w1_word_u0_p1_reg_pc__ne,
++ arm_instr_load_w1_word_u0_p1_reg_pc__cs,
++ arm_instr_load_w1_word_u0_p1_reg_pc__cc,
++ arm_instr_load_w1_word_u0_p1_reg_pc__mi,
++ arm_instr_load_w1_word_u0_p1_reg_pc__pl,
++ arm_instr_load_w1_word_u0_p1_reg_pc__vs,
++ arm_instr_load_w1_word_u0_p1_reg_pc__vc,
++ arm_instr_load_w1_word_u0_p1_reg_pc__hi,
++ arm_instr_load_w1_word_u0_p1_reg_pc__ls,
++ arm_instr_load_w1_word_u0_p1_reg_pc__ge,
++ arm_instr_load_w1_word_u0_p1_reg_pc__lt,
++ arm_instr_load_w1_word_u0_p1_reg_pc__gt,
++ arm_instr_load_w1_word_u0_p1_reg_pc__le,
++ arm_instr_load_w1_word_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__eq,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__ne,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__cs,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__cc,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__mi,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__pl,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__vs,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__vc,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__hi,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__ls,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__ge,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__lt,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__gt,
++ arm_instr_store_w0_byte_u0_p1_reg_pc__le,
++ arm_instr_store_w0_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__eq,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__ne,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__cs,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__cc,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__mi,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__pl,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__vs,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__vc,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__hi,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__ls,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__ge,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__lt,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__gt,
++ arm_instr_load_w0_byte_u0_p1_reg_pc__le,
++ arm_instr_load_w0_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__eq,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__ne,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__cs,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__cc,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__mi,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__pl,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__vs,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__vc,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__hi,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__ls,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__ge,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__lt,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__gt,
++ arm_instr_store_w1_byte_u0_p1_reg_pc__le,
++ arm_instr_store_w1_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__eq,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__ne,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__cs,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__cc,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__mi,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__pl,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__vs,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__vc,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__hi,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__ls,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__ge,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__lt,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__gt,
++ arm_instr_load_w1_byte_u0_p1_reg_pc__le,
++ arm_instr_load_w1_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_word_u1_p1_reg_pc__eq,
++ arm_instr_store_w0_word_u1_p1_reg_pc__ne,
++ arm_instr_store_w0_word_u1_p1_reg_pc__cs,
++ arm_instr_store_w0_word_u1_p1_reg_pc__cc,
++ arm_instr_store_w0_word_u1_p1_reg_pc__mi,
++ arm_instr_store_w0_word_u1_p1_reg_pc__pl,
++ arm_instr_store_w0_word_u1_p1_reg_pc__vs,
++ arm_instr_store_w0_word_u1_p1_reg_pc__vc,
++ arm_instr_store_w0_word_u1_p1_reg_pc__hi,
++ arm_instr_store_w0_word_u1_p1_reg_pc__ls,
++ arm_instr_store_w0_word_u1_p1_reg_pc__ge,
++ arm_instr_store_w0_word_u1_p1_reg_pc__lt,
++ arm_instr_store_w0_word_u1_p1_reg_pc__gt,
++ arm_instr_store_w0_word_u1_p1_reg_pc__le,
++ arm_instr_store_w0_word_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_word_u1_p1_reg_pc__eq,
++ arm_instr_load_w0_word_u1_p1_reg_pc__ne,
++ arm_instr_load_w0_word_u1_p1_reg_pc__cs,
++ arm_instr_load_w0_word_u1_p1_reg_pc__cc,
++ arm_instr_load_w0_word_u1_p1_reg_pc__mi,
++ arm_instr_load_w0_word_u1_p1_reg_pc__pl,
++ arm_instr_load_w0_word_u1_p1_reg_pc__vs,
++ arm_instr_load_w0_word_u1_p1_reg_pc__vc,
++ arm_instr_load_w0_word_u1_p1_reg_pc__hi,
++ arm_instr_load_w0_word_u1_p1_reg_pc__ls,
++ arm_instr_load_w0_word_u1_p1_reg_pc__ge,
++ arm_instr_load_w0_word_u1_p1_reg_pc__lt,
++ arm_instr_load_w0_word_u1_p1_reg_pc__gt,
++ arm_instr_load_w0_word_u1_p1_reg_pc__le,
++ arm_instr_load_w0_word_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_word_u1_p1_reg_pc__eq,
++ arm_instr_store_w1_word_u1_p1_reg_pc__ne,
++ arm_instr_store_w1_word_u1_p1_reg_pc__cs,
++ arm_instr_store_w1_word_u1_p1_reg_pc__cc,
++ arm_instr_store_w1_word_u1_p1_reg_pc__mi,
++ arm_instr_store_w1_word_u1_p1_reg_pc__pl,
++ arm_instr_store_w1_word_u1_p1_reg_pc__vs,
++ arm_instr_store_w1_word_u1_p1_reg_pc__vc,
++ arm_instr_store_w1_word_u1_p1_reg_pc__hi,
++ arm_instr_store_w1_word_u1_p1_reg_pc__ls,
++ arm_instr_store_w1_word_u1_p1_reg_pc__ge,
++ arm_instr_store_w1_word_u1_p1_reg_pc__lt,
++ arm_instr_store_w1_word_u1_p1_reg_pc__gt,
++ arm_instr_store_w1_word_u1_p1_reg_pc__le,
++ arm_instr_store_w1_word_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_word_u1_p1_reg_pc__eq,
++ arm_instr_load_w1_word_u1_p1_reg_pc__ne,
++ arm_instr_load_w1_word_u1_p1_reg_pc__cs,
++ arm_instr_load_w1_word_u1_p1_reg_pc__cc,
++ arm_instr_load_w1_word_u1_p1_reg_pc__mi,
++ arm_instr_load_w1_word_u1_p1_reg_pc__pl,
++ arm_instr_load_w1_word_u1_p1_reg_pc__vs,
++ arm_instr_load_w1_word_u1_p1_reg_pc__vc,
++ arm_instr_load_w1_word_u1_p1_reg_pc__hi,
++ arm_instr_load_w1_word_u1_p1_reg_pc__ls,
++ arm_instr_load_w1_word_u1_p1_reg_pc__ge,
++ arm_instr_load_w1_word_u1_p1_reg_pc__lt,
++ arm_instr_load_w1_word_u1_p1_reg_pc__gt,
++ arm_instr_load_w1_word_u1_p1_reg_pc__le,
++ arm_instr_load_w1_word_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__eq,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__ne,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__cs,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__cc,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__mi,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__pl,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__vs,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__vc,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__hi,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__ls,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__ge,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__lt,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__gt,
++ arm_instr_store_w0_byte_u1_p1_reg_pc__le,
++ arm_instr_store_w0_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__eq,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__ne,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__cs,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__cc,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__mi,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__pl,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__vs,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__vc,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__hi,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__ls,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__ge,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__lt,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__gt,
++ arm_instr_load_w0_byte_u1_p1_reg_pc__le,
++ arm_instr_load_w0_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__eq,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__ne,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__cs,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__cc,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__mi,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__pl,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__vs,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__vc,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__hi,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__ls,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__ge,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__lt,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__gt,
++ arm_instr_store_w1_byte_u1_p1_reg_pc__le,
++ arm_instr_store_w1_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__eq,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__ne,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__cs,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__cc,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__mi,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__pl,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__vs,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__vc,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__hi,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__ls,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__ge,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__lt,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__gt,
++ arm_instr_load_w1_byte_u1_p1_reg_pc__le,
++ arm_instr_load_w1_byte_u1_p1_reg_pc,
++ arm_instr_nop
++};
++
++void arm_instr_store_w0_signed_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_imm_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p0_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u0_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_byte_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w0_signed_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w0_signed_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_store_w1_signed_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__eq(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ne(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__mi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__pl(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vs(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vc(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__hi(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ls(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ge(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__lt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__gt(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__le(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg(struct cpu *, struct arm_instr_call *);
++void arm_instr_load_w1_signed_halfword_u1_p1_reg_pc(struct cpu *, struct arm_instr_call *);
++
++ void (*arm_load_store_instr_3[2048])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__eq,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__ne,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__cs,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__cc,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__mi,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__pl,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__vs,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__vc,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__hi,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__ls,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__ge,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__lt,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__gt,
++ arm_instr_store_w0_signed_byte_u0_p0_imm__le,
++ arm_instr_store_w0_signed_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__eq,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__ne,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__cs,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__cc,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__mi,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__pl,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__vs,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__vc,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__hi,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__ls,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__ge,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__lt,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__gt,
++ arm_instr_load_w0_signed_byte_u0_p0_imm__le,
++ arm_instr_load_w0_signed_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__eq,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__ne,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__cs,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__cc,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__mi,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__pl,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__vs,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__vc,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__hi,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__ls,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__ge,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__lt,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__gt,
++ arm_instr_store_w1_signed_byte_u0_p0_imm__le,
++ arm_instr_store_w1_signed_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__eq,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__ne,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__cs,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__cc,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__mi,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__pl,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__vs,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__vc,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__hi,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__ls,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__ge,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__lt,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__gt,
++ arm_instr_load_w1_signed_byte_u0_p0_imm__le,
++ arm_instr_load_w1_signed_byte_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__eq,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__ne,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__cs,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__cc,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__mi,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__pl,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__vs,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__vc,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__hi,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__ls,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__ge,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__lt,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__gt,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm__le,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__eq,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__ne,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__cs,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__cc,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__mi,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__pl,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__vs,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__vc,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__hi,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__ls,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__ge,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__lt,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__gt,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm__le,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__eq,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__ne,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__cs,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__cc,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__mi,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__pl,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__vs,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__vc,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__hi,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__ls,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__ge,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__lt,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__gt,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm__le,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__eq,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__ne,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__cs,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__cc,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__mi,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__pl,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__vs,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__vc,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__hi,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__ls,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__ge,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__lt,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__gt,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm__le,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__eq,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__ne,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__cs,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__cc,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__mi,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__pl,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__vs,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__vc,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__hi,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__ls,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__ge,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__lt,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__gt,
++ arm_instr_store_w0_signed_byte_u1_p0_imm__le,
++ arm_instr_store_w0_signed_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__eq,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__ne,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__cs,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__cc,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__mi,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__pl,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__vs,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__vc,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__hi,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__ls,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__ge,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__lt,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__gt,
++ arm_instr_load_w0_signed_byte_u1_p0_imm__le,
++ arm_instr_load_w0_signed_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__eq,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__ne,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__cs,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__cc,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__mi,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__pl,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__vs,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__vc,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__hi,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__ls,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__ge,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__lt,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__gt,
++ arm_instr_store_w1_signed_byte_u1_p0_imm__le,
++ arm_instr_store_w1_signed_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__eq,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__ne,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__cs,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__cc,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__mi,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__pl,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__vs,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__vc,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__hi,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__ls,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__ge,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__lt,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__gt,
++ arm_instr_load_w1_signed_byte_u1_p0_imm__le,
++ arm_instr_load_w1_signed_byte_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__eq,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__ne,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__cs,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__cc,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__mi,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__pl,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__vs,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__vc,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__hi,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__ls,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__ge,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__lt,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__gt,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm__le,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__eq,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__ne,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__cs,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__cc,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__mi,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__pl,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__vs,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__vc,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__hi,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__ls,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__ge,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__lt,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__gt,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm__le,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__eq,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__ne,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__cs,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__cc,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__mi,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__pl,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__vs,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__vc,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__hi,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__ls,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__ge,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__lt,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__gt,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm__le,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__eq,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__ne,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__cs,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__cc,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__mi,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__pl,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__vs,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__vc,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__hi,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__ls,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__ge,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__lt,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__gt,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm__le,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__eq,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__ne,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__cs,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__cc,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__mi,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__pl,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__vs,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__vc,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__hi,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__ls,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__ge,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__lt,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__gt,
++ arm_instr_store_w0_signed_byte_u0_p1_imm__le,
++ arm_instr_store_w0_signed_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__eq,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__ne,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__cs,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__cc,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__mi,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__pl,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__vs,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__vc,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__hi,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__ls,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__ge,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__lt,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__gt,
++ arm_instr_load_w0_signed_byte_u0_p1_imm__le,
++ arm_instr_load_w0_signed_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__eq,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__ne,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__cs,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__cc,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__mi,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__pl,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__vs,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__vc,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__hi,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__ls,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__ge,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__lt,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__gt,
++ arm_instr_store_w1_signed_byte_u0_p1_imm__le,
++ arm_instr_store_w1_signed_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__eq,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__ne,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__cs,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__cc,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__mi,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__pl,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__vs,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__vc,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__hi,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__ls,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__ge,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__lt,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__gt,
++ arm_instr_load_w1_signed_byte_u0_p1_imm__le,
++ arm_instr_load_w1_signed_byte_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__eq,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__ne,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__cs,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__cc,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__mi,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__pl,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__vs,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__vc,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__hi,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__ls,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__ge,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__lt,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__gt,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm__le,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__eq,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__ne,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__cs,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__cc,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__mi,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__pl,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__vs,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__vc,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__hi,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__ls,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__ge,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__lt,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__gt,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm__le,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__eq,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__ne,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__cs,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__cc,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__mi,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__pl,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__vs,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__vc,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__hi,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__ls,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__ge,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__lt,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__gt,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm__le,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__eq,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__ne,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__cs,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__cc,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__mi,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__pl,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__vs,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__vc,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__hi,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__ls,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__ge,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__lt,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__gt,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm__le,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__eq,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__ne,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__cs,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__cc,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__mi,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__pl,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__vs,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__vc,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__hi,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__ls,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__ge,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__lt,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__gt,
++ arm_instr_store_w0_signed_byte_u1_p1_imm__le,
++ arm_instr_store_w0_signed_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__eq,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__ne,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__cs,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__cc,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__mi,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__pl,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__vs,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__vc,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__hi,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__ls,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__ge,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__lt,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__gt,
++ arm_instr_load_w0_signed_byte_u1_p1_imm__le,
++ arm_instr_load_w0_signed_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__eq,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__ne,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__cs,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__cc,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__mi,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__pl,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__vs,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__vc,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__hi,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__ls,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__ge,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__lt,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__gt,
++ arm_instr_store_w1_signed_byte_u1_p1_imm__le,
++ arm_instr_store_w1_signed_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__eq,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__ne,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__cs,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__cc,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__mi,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__pl,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__vs,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__vc,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__hi,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__ls,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__ge,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__lt,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__gt,
++ arm_instr_load_w1_signed_byte_u1_p1_imm__le,
++ arm_instr_load_w1_signed_byte_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__eq,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__ne,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__cs,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__cc,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__mi,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__pl,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__vs,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__vc,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__hi,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__ls,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__ge,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__lt,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__gt,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm__le,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__eq,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__ne,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__cs,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__cc,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__mi,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__pl,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__vs,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__vc,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__hi,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__ls,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__ge,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__lt,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__gt,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm__le,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__eq,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__ne,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__cs,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__cc,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__mi,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__pl,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__vs,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__vc,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__hi,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__ls,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__ge,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__lt,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__gt,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm__le,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__eq,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__ne,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__cs,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__cc,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__mi,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__pl,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__vs,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__vc,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__hi,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__ls,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__ge,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__lt,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__gt,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm__le,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__eq,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__ne,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__cs,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__cc,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__mi,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__pl,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__vs,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__vc,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__hi,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__ls,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__ge,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__lt,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__gt,
++ arm_instr_store_w0_signed_byte_u0_p0_reg__le,
++ arm_instr_store_w0_signed_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__eq,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__ne,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__cs,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__cc,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__mi,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__pl,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__vs,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__vc,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__hi,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__ls,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__ge,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__lt,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__gt,
++ arm_instr_load_w0_signed_byte_u0_p0_reg__le,
++ arm_instr_load_w0_signed_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__eq,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__ne,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__cs,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__cc,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__mi,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__pl,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__vs,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__vc,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__hi,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__ls,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__ge,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__lt,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__gt,
++ arm_instr_store_w1_signed_byte_u0_p0_reg__le,
++ arm_instr_store_w1_signed_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__eq,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__ne,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__cs,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__cc,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__mi,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__pl,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__vs,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__vc,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__hi,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__ls,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__ge,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__lt,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__gt,
++ arm_instr_load_w1_signed_byte_u0_p0_reg__le,
++ arm_instr_load_w1_signed_byte_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__eq,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__ne,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__cs,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__cc,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__mi,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__pl,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__vs,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__vc,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__hi,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__ls,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__ge,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__lt,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__gt,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg__le,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__eq,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__ne,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__cs,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__cc,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__mi,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__pl,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__vs,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__vc,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__hi,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__ls,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__ge,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__lt,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__gt,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg__le,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__eq,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__ne,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__cs,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__cc,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__mi,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__pl,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__vs,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__vc,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__hi,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__ls,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__ge,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__lt,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__gt,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg__le,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__eq,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__ne,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__cs,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__cc,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__mi,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__pl,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__vs,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__vc,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__hi,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__ls,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__ge,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__lt,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__gt,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg__le,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__eq,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__ne,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__cs,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__cc,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__mi,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__pl,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__vs,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__vc,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__hi,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__ls,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__ge,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__lt,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__gt,
++ arm_instr_store_w0_signed_byte_u1_p0_reg__le,
++ arm_instr_store_w0_signed_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__eq,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__ne,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__cs,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__cc,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__mi,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__pl,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__vs,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__vc,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__hi,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__ls,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__ge,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__lt,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__gt,
++ arm_instr_load_w0_signed_byte_u1_p0_reg__le,
++ arm_instr_load_w0_signed_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__eq,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__ne,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__cs,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__cc,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__mi,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__pl,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__vs,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__vc,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__hi,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__ls,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__ge,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__lt,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__gt,
++ arm_instr_store_w1_signed_byte_u1_p0_reg__le,
++ arm_instr_store_w1_signed_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__eq,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__ne,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__cs,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__cc,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__mi,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__pl,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__vs,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__vc,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__hi,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__ls,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__ge,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__lt,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__gt,
++ arm_instr_load_w1_signed_byte_u1_p0_reg__le,
++ arm_instr_load_w1_signed_byte_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__eq,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__ne,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__cs,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__cc,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__mi,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__pl,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__vs,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__vc,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__hi,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__ls,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__ge,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__lt,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__gt,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg__le,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__eq,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__ne,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__cs,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__cc,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__mi,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__pl,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__vs,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__vc,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__hi,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__ls,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__ge,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__lt,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__gt,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg__le,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__eq,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__ne,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__cs,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__cc,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__mi,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__pl,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__vs,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__vc,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__hi,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__ls,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__ge,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__lt,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__gt,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg__le,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__eq,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__ne,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__cs,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__cc,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__mi,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__pl,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__vs,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__vc,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__hi,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__ls,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__ge,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__lt,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__gt,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg__le,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__eq,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__ne,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__cs,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__cc,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__mi,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__pl,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__vs,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__vc,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__hi,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__ls,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__ge,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__lt,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__gt,
++ arm_instr_store_w0_signed_byte_u0_p1_reg__le,
++ arm_instr_store_w0_signed_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__eq,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__ne,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__cs,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__cc,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__mi,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__pl,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__vs,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__vc,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__hi,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__ls,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__ge,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__lt,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__gt,
++ arm_instr_load_w0_signed_byte_u0_p1_reg__le,
++ arm_instr_load_w0_signed_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__eq,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__ne,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__cs,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__cc,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__mi,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__pl,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__vs,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__vc,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__hi,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__ls,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__ge,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__lt,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__gt,
++ arm_instr_store_w1_signed_byte_u0_p1_reg__le,
++ arm_instr_store_w1_signed_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__eq,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__ne,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__cs,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__cc,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__mi,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__pl,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__vs,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__vc,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__hi,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__ls,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__ge,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__lt,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__gt,
++ arm_instr_load_w1_signed_byte_u0_p1_reg__le,
++ arm_instr_load_w1_signed_byte_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__eq,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__ne,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__cs,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__cc,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__mi,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__pl,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__vs,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__vc,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__hi,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__ls,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__ge,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__lt,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__gt,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg__le,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__eq,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__ne,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__cs,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__cc,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__mi,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__pl,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__vs,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__vc,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__hi,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__ls,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__ge,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__lt,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__gt,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg__le,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__eq,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__ne,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__cs,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__cc,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__mi,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__pl,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__vs,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__vc,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__hi,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__ls,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__ge,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__lt,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__gt,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg__le,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__eq,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__ne,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__cs,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__cc,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__mi,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__pl,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__vs,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__vc,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__hi,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__ls,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__ge,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__lt,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__gt,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg__le,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__eq,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__ne,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__cs,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__cc,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__mi,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__pl,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__vs,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__vc,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__hi,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__ls,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__ge,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__lt,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__gt,
++ arm_instr_store_w0_signed_byte_u1_p1_reg__le,
++ arm_instr_store_w0_signed_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__eq,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__ne,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__cs,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__cc,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__mi,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__pl,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__vs,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__vc,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__hi,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__ls,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__ge,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__lt,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__gt,
++ arm_instr_load_w0_signed_byte_u1_p1_reg__le,
++ arm_instr_load_w0_signed_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__eq,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__ne,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__cs,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__cc,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__mi,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__pl,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__vs,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__vc,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__hi,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__ls,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__ge,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__lt,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__gt,
++ arm_instr_store_w1_signed_byte_u1_p1_reg__le,
++ arm_instr_store_w1_signed_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__eq,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__ne,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__cs,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__cc,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__mi,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__pl,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__vs,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__vc,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__hi,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__ls,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__ge,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__lt,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__gt,
++ arm_instr_load_w1_signed_byte_u1_p1_reg__le,
++ arm_instr_load_w1_signed_byte_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__eq,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__ne,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__cs,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__cc,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__mi,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__pl,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__vs,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__vc,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__hi,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__ls,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__ge,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__lt,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__gt,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg__le,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__eq,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__ne,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__cs,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__cc,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__mi,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__pl,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__vs,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__vc,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__hi,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__ls,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__ge,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__lt,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__gt,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg__le,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__eq,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__ne,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__cs,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__cc,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__mi,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__pl,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__vs,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__vc,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__hi,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__ls,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__ge,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__lt,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__gt,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg__le,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__eq,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__ne,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__cs,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__cc,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__mi,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__pl,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__vs,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__vc,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__hi,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__ls,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__ge,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__lt,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__gt,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg__le,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg,
++ arm_instr_nop
++};
++
++
++ void (*arm_load_store_instr_3_pc[2048])(struct cpu *,
++ struct arm_instr_call *) = {
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__eq,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ne,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cs,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cc,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__mi,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__pl,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vs,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vc,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__hi,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ls,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ge,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__lt,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__gt,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc__le,
++ arm_instr_store_w0_signed_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__eq,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ne,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cs,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cc,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__mi,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__pl,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vs,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vc,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__hi,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ls,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ge,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__lt,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__gt,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc__le,
++ arm_instr_load_w0_signed_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__eq,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ne,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cs,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cc,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__mi,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__pl,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vs,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vc,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__hi,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ls,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ge,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__lt,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__gt,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc__le,
++ arm_instr_store_w1_signed_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__eq,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ne,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cs,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cc,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__mi,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__pl,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vs,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vc,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__hi,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ls,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ge,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__lt,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__gt,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc__le,
++ arm_instr_load_w1_signed_byte_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__eq,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ne,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cs,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cc,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__mi,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__pl,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vs,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vc,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__hi,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ls,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ge,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__lt,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__gt,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__le,
++ arm_instr_store_w0_signed_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__eq,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ne,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cs,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cc,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__mi,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__pl,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vs,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vc,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__hi,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ls,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ge,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__lt,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__gt,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__le,
++ arm_instr_load_w0_signed_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__eq,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ne,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cs,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cc,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__mi,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__pl,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vs,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vc,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__hi,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ls,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ge,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__lt,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__gt,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__le,
++ arm_instr_store_w1_signed_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__eq,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ne,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cs,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cc,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__mi,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__pl,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vs,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vc,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__hi,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ls,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ge,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__lt,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__gt,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__le,
++ arm_instr_load_w1_signed_halfword_u0_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__eq,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ne,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cs,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cc,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__mi,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__pl,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vs,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vc,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__hi,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ls,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ge,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__lt,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__gt,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc__le,
++ arm_instr_store_w0_signed_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__eq,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ne,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cs,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cc,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__mi,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__pl,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vs,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vc,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__hi,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ls,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ge,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__lt,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__gt,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc__le,
++ arm_instr_load_w0_signed_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__eq,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ne,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cs,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cc,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__mi,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__pl,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vs,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vc,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__hi,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ls,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ge,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__lt,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__gt,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc__le,
++ arm_instr_store_w1_signed_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__eq,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ne,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cs,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cc,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__mi,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__pl,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vs,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vc,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__hi,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ls,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ge,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__lt,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__gt,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc__le,
++ arm_instr_load_w1_signed_byte_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__eq,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ne,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cs,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cc,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__mi,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__pl,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vs,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vc,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__hi,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ls,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ge,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__lt,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__gt,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__le,
++ arm_instr_store_w0_signed_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__eq,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ne,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cs,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cc,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__mi,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__pl,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vs,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vc,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__hi,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ls,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ge,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__lt,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__gt,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__le,
++ arm_instr_load_w0_signed_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__eq,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ne,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cs,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cc,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__mi,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__pl,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vs,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vc,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__hi,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ls,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ge,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__lt,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__gt,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__le,
++ arm_instr_store_w1_signed_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__eq,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ne,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cs,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cc,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__mi,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__pl,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vs,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vc,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__hi,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ls,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ge,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__lt,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__gt,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__le,
++ arm_instr_load_w1_signed_halfword_u1_p0_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__eq,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ne,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cs,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cc,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__mi,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__pl,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vs,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vc,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__hi,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ls,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ge,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__lt,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__gt,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc__le,
++ arm_instr_store_w0_signed_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__eq,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ne,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cs,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cc,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__mi,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__pl,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vs,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vc,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__hi,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ls,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ge,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__lt,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__gt,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc__le,
++ arm_instr_load_w0_signed_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__eq,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ne,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cs,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cc,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__mi,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__pl,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vs,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vc,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__hi,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ls,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ge,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__lt,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__gt,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc__le,
++ arm_instr_store_w1_signed_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__eq,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ne,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cs,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cc,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__mi,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__pl,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vs,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vc,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__hi,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ls,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ge,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__lt,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__gt,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc__le,
++ arm_instr_load_w1_signed_byte_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__eq,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ne,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cs,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cc,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__mi,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__pl,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vs,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vc,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__hi,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ls,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ge,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__lt,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__gt,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__le,
++ arm_instr_store_w0_signed_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__eq,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ne,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cs,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cc,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__mi,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__pl,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vs,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vc,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__hi,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ls,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ge,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__lt,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__gt,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__le,
++ arm_instr_load_w0_signed_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__eq,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ne,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cs,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cc,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__mi,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__pl,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vs,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vc,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__hi,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ls,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ge,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__lt,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__gt,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__le,
++ arm_instr_store_w1_signed_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__eq,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ne,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cs,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cc,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__mi,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__pl,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vs,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vc,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__hi,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ls,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ge,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__lt,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__gt,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__le,
++ arm_instr_load_w1_signed_halfword_u0_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__eq,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ne,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cs,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cc,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__mi,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__pl,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vs,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vc,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__hi,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ls,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ge,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__lt,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__gt,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc__le,
++ arm_instr_store_w0_signed_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__eq,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ne,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cs,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cc,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__mi,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__pl,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vs,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vc,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__hi,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ls,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ge,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__lt,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__gt,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc__le,
++ arm_instr_load_w0_signed_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__eq,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ne,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cs,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cc,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__mi,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__pl,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vs,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vc,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__hi,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ls,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ge,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__lt,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__gt,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc__le,
++ arm_instr_store_w1_signed_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__eq,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ne,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cs,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cc,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__mi,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__pl,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vs,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vc,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__hi,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ls,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ge,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__lt,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__gt,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc__le,
++ arm_instr_load_w1_signed_byte_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__eq,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ne,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cs,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cc,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__mi,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__pl,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vs,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vc,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__hi,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ls,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ge,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__lt,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__gt,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__le,
++ arm_instr_store_w0_signed_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__eq,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ne,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cs,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cc,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__mi,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__pl,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vs,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vc,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__hi,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ls,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ge,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__lt,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__gt,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__le,
++ arm_instr_load_w0_signed_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__eq,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ne,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cs,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cc,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__mi,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__pl,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vs,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vc,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__hi,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ls,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ge,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__lt,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__gt,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__le,
++ arm_instr_store_w1_signed_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__eq,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ne,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cs,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cc,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__mi,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__pl,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vs,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vc,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__hi,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ls,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ge,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__lt,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__gt,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__le,
++ arm_instr_load_w1_signed_halfword_u1_p1_imm_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__eq,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ne,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cs,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cc,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__mi,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__pl,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vs,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vc,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__hi,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ls,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ge,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__lt,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__gt,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc__le,
++ arm_instr_store_w0_signed_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__eq,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ne,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cs,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cc,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__mi,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__pl,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vs,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vc,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__hi,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ls,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ge,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__lt,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__gt,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc__le,
++ arm_instr_load_w0_signed_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__eq,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ne,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cs,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cc,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__mi,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__pl,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vs,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vc,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__hi,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ls,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ge,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__lt,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__gt,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc__le,
++ arm_instr_store_w1_signed_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__eq,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ne,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cs,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cc,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__mi,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__pl,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vs,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vc,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__hi,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ls,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ge,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__lt,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__gt,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc__le,
++ arm_instr_load_w1_signed_byte_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__eq,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ne,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cs,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cc,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__mi,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__pl,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vs,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vc,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__hi,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ls,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ge,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__lt,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__gt,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__le,
++ arm_instr_store_w0_signed_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__eq,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ne,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cs,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cc,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__mi,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__pl,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vs,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vc,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__hi,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ls,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ge,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__lt,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__gt,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__le,
++ arm_instr_load_w0_signed_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__eq,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ne,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cs,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cc,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__mi,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__pl,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vs,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vc,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__hi,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ls,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ge,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__lt,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__gt,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__le,
++ arm_instr_store_w1_signed_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__eq,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ne,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cs,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cc,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__mi,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__pl,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vs,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vc,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__hi,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ls,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ge,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__lt,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__gt,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__le,
++ arm_instr_load_w1_signed_halfword_u0_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__eq,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ne,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cs,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cc,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__mi,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__pl,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vs,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vc,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__hi,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ls,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ge,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__lt,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__gt,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc__le,
++ arm_instr_store_w0_signed_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__eq,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ne,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cs,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cc,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__mi,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__pl,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vs,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vc,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__hi,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ls,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ge,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__lt,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__gt,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc__le,
++ arm_instr_load_w0_signed_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__eq,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ne,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cs,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cc,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__mi,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__pl,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vs,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vc,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__hi,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ls,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ge,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__lt,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__gt,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc__le,
++ arm_instr_store_w1_signed_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__eq,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ne,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cs,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cc,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__mi,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__pl,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vs,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vc,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__hi,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ls,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ge,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__lt,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__gt,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc__le,
++ arm_instr_load_w1_signed_byte_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__eq,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ne,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cs,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cc,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__mi,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__pl,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vs,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vc,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__hi,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ls,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ge,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__lt,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__gt,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__le,
++ arm_instr_store_w0_signed_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__eq,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ne,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cs,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cc,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__mi,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__pl,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vs,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vc,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__hi,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ls,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ge,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__lt,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__gt,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__le,
++ arm_instr_load_w0_signed_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__eq,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ne,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cs,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cc,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__mi,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__pl,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vs,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vc,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__hi,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ls,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ge,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__lt,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__gt,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__le,
++ arm_instr_store_w1_signed_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__eq,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ne,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cs,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cc,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__mi,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__pl,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vs,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vc,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__hi,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ls,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ge,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__lt,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__gt,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__le,
++ arm_instr_load_w1_signed_halfword_u1_p0_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__eq,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ne,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cs,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cc,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__mi,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__pl,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vs,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vc,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__hi,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ls,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ge,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__lt,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__gt,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc__le,
++ arm_instr_store_w0_signed_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__eq,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ne,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cs,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cc,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__mi,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__pl,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vs,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vc,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__hi,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ls,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ge,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__lt,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__gt,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc__le,
++ arm_instr_load_w0_signed_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__eq,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ne,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cs,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cc,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__mi,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__pl,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vs,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vc,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__hi,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ls,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ge,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__lt,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__gt,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc__le,
++ arm_instr_store_w1_signed_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__eq,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ne,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cs,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cc,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__mi,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__pl,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vs,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vc,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__hi,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ls,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ge,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__lt,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__gt,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc__le,
++ arm_instr_load_w1_signed_byte_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__eq,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ne,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cs,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cc,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__mi,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__pl,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vs,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vc,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__hi,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ls,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ge,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__lt,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__gt,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__le,
++ arm_instr_store_w0_signed_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__eq,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ne,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cs,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cc,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__mi,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__pl,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vs,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vc,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__hi,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ls,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ge,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__lt,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__gt,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__le,
++ arm_instr_load_w0_signed_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__eq,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ne,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cs,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cc,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__mi,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__pl,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vs,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vc,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__hi,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ls,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ge,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__lt,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__gt,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__le,
++ arm_instr_store_w1_signed_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__eq,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ne,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cs,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cc,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__mi,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__pl,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vs,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vc,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__hi,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ls,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ge,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__lt,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__gt,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__le,
++ arm_instr_load_w1_signed_halfword_u0_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__eq,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ne,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cs,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cc,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__mi,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__pl,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vs,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vc,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__hi,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ls,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ge,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__lt,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__gt,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc__le,
++ arm_instr_store_w0_signed_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__eq,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ne,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cs,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cc,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__mi,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__pl,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vs,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vc,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__hi,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ls,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ge,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__lt,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__gt,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc__le,
++ arm_instr_load_w0_signed_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_invalid,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__eq,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ne,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cs,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cc,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__mi,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__pl,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vs,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vc,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__hi,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ls,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ge,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__lt,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__gt,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc__le,
++ arm_instr_store_w1_signed_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__eq,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ne,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cs,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cc,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__mi,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__pl,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vs,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vc,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__hi,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ls,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ge,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__lt,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__gt,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc__le,
++ arm_instr_load_w1_signed_byte_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__eq,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ne,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__mi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__pl,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vs,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vc,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__hi,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ls,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ge,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__lt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__gt,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__le,
++ arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__eq,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ne,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__mi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__pl,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vs,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vc,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__hi,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ls,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ge,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__lt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__gt,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__le,
++ arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__eq,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ne,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cs,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cc,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__mi,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__pl,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vs,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vc,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__hi,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ls,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ge,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__lt,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__gt,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__le,
++ arm_instr_store_w0_signed_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__eq,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ne,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cs,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cc,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__mi,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__pl,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vs,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vc,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__hi,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ls,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ge,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__lt,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__gt,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__le,
++ arm_instr_load_w0_signed_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__eq,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ne,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__mi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__pl,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vs,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vc,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__hi,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ls,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ge,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__lt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__gt,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__le,
++ arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__eq,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ne,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__mi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__pl,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vs,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vc,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__hi,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ls,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ge,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__lt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__gt,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__le,
++ arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__eq,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ne,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cs,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cc,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__mi,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__pl,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vs,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vc,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__hi,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ls,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ge,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__lt,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__gt,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__le,
++ arm_instr_store_w1_signed_halfword_u1_p1_reg_pc,
++ arm_instr_nop,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__eq,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ne,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cs,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cc,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__mi,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__pl,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vs,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vc,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__hi,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ls,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ge,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__lt,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__gt,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__le,
++ arm_instr_load_w1_signed_halfword_u1_p1_reg_pc,
++ arm_instr_nop
++};
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u0_w0.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u0_w0.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u0_w0.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u0_w0.c 2022-10-18 16:37:22.078740600 +0000
+@@ -0,0 +1,1364 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w0_word_u0_p0_imm__general
++#define A__NAME arm_instr_store_w0_word_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w0_word_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_word_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_word_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_word_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_word_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_word_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_word_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_word_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_word_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_word_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_word_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_word_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_word_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_word_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_word_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u0_p0_imm_pc__le
++#include "cpu_arm_instr_loadstore.c"
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u0_p0_imm__general
++#define A__NAME arm_instr_load_w0_word_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w0_word_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_word_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_word_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_word_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_word_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_word_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_word_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_word_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_word_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_word_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_word_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_word_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_word_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_word_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_word_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u0_p0_imm_pc__le
++#define A__L
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u0_p0_imm__general
++#define A__NAME arm_instr_store_w0_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w0_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u0_p0_imm_pc__le
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u0_p0_imm__general
++#define A__NAME arm_instr_load_w0_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w0_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u0_p0_imm_pc__le
++#define A__L
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_word_u0_p0_reg__general
++#define A__NAME arm_instr_store_w0_word_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w0_word_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_word_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_word_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_word_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_word_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_word_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_word_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_word_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_word_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_word_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_word_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_word_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_word_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_word_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_word_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u0_p0_reg_pc__le
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u0_p0_reg__general
++#define A__NAME arm_instr_load_w0_word_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w0_word_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_word_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_word_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_word_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_word_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_word_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_word_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_word_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_word_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_word_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_word_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_word_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_word_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_word_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_word_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u0_p0_reg_pc__le
++#define A__L
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u0_p0_reg__general
++#define A__NAME arm_instr_store_w0_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w0_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u0_p0_reg_pc__le
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u0_p0_reg__general
++#define A__NAME arm_instr_load_w0_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w0_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u0_p0_reg_pc__le
++#define A__L
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u0_p0_imm__general
++#define A__NAME arm_instr_store_w0_signed_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u0_p0_imm__general
++#define A__NAME arm_instr_load_w0_signed_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u0_p0_imm_pc__le
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u0_p0_imm_pc__le
++#define A__L
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u0_p0_reg__general
++#define A__NAME arm_instr_store_w0_signed_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u0_p0_reg__general
++#define A__NAME arm_instr_load_w0_signed_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u0_p0_reg_pc__le
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u0_p0_reg_pc__le
++#define A__L
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u0_w1.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u0_w1.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u0_w1.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u0_w1.c 2022-10-18 16:37:22.079740900 +0000
+@@ -0,0 +1,1404 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w1_word_u0_p0_imm__general
++#define A__NAME arm_instr_store_w1_word_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w1_word_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_word_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_word_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_word_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_word_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_word_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_word_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_word_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_word_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_word_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_word_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_word_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_word_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_word_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_word_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u0_p0_imm_pc__le
++#define A__W
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u0_p0_imm__general
++#define A__NAME arm_instr_load_w1_word_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w1_word_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_word_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_word_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_word_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_word_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_word_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_word_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_word_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_word_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_word_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_word_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_word_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_word_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_word_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_word_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u0_p0_imm_pc__le
++#define A__L
++#define A__W
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u0_p0_imm__general
++#define A__NAME arm_instr_store_w1_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w1_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u0_p0_imm_pc__le
++#define A__W
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u0_p0_imm__general
++#define A__NAME arm_instr_load_w1_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w1_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u0_p0_imm_pc__le
++#define A__L
++#define A__W
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_word_u0_p0_reg__general
++#define A__NAME arm_instr_store_w1_word_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w1_word_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_word_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_word_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_word_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_word_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_word_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_word_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_word_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_word_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_word_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_word_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_word_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_word_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_word_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_word_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u0_p0_reg_pc__le
++#define A__W
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u0_p0_reg__general
++#define A__NAME arm_instr_load_w1_word_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w1_word_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_word_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_word_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_word_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_word_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_word_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_word_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_word_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_word_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_word_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_word_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_word_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_word_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_word_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_word_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u0_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u0_p0_reg__general
++#define A__NAME arm_instr_store_w1_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w1_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u0_p0_reg_pc__le
++#define A__W
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u0_p0_reg__general
++#define A__NAME arm_instr_load_w1_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w1_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u0_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u0_p0_imm__general
++#define A__NAME arm_instr_store_w1_signed_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u0_p0_imm__general
++#define A__NAME arm_instr_load_w1_signed_byte_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u0_p0_imm_pc__le
++#define A__W
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u0_p0_imm_pc__le
++#define A__L
++#define A__W
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u0_p0_imm__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u0_p0_imm
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u0_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u0_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u0_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u0_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u0_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u0_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u0_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u0_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u0_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u0_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u0_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u0_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u0_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u0_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u0_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u0_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u0_p0_reg__general
++#define A__NAME arm_instr_store_w1_signed_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u0_p0_reg__general
++#define A__NAME arm_instr_load_w1_signed_byte_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u0_p0_reg_pc__le
++#define A__W
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u0_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u0_p0_reg__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u0_p0_reg
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u0_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u0_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u0_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u0_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u0_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u0_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u0_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u0_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u0_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u0_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u0_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u0_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u0_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u0_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u0_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u0_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u1_w0.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u1_w0.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u1_w0.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u1_w0.c 2022-10-18 16:37:22.080741800 +0000
+@@ -0,0 +1,1404 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w0_word_u1_p0_imm__general
++#define A__NAME arm_instr_store_w0_word_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w0_word_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_word_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_word_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_word_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_word_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_word_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_word_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_word_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_word_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_word_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_word_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_word_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_word_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_word_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_word_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u1_p0_imm_pc__le
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u1_p0_imm__general
++#define A__NAME arm_instr_load_w0_word_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w0_word_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_word_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_word_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_word_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_word_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_word_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_word_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_word_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_word_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_word_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_word_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_word_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_word_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_word_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_word_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u1_p0_imm_pc__le
++#define A__L
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u1_p0_imm__general
++#define A__NAME arm_instr_store_w0_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w0_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u1_p0_imm_pc__le
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u1_p0_imm__general
++#define A__NAME arm_instr_load_w0_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w0_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u1_p0_imm_pc__le
++#define A__L
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_word_u1_p0_reg__general
++#define A__NAME arm_instr_store_w0_word_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w0_word_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_word_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_word_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_word_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_word_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_word_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_word_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_word_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_word_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_word_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_word_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_word_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_word_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_word_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_word_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u1_p0_reg_pc__le
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u1_p0_reg__general
++#define A__NAME arm_instr_load_w0_word_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w0_word_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_word_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_word_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_word_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_word_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_word_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_word_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_word_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_word_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_word_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_word_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_word_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_word_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_word_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_word_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u1_p0_reg_pc__le
++#define A__L
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u1_p0_reg__general
++#define A__NAME arm_instr_store_w0_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w0_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u1_p0_reg_pc__le
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u1_p0_reg__general
++#define A__NAME arm_instr_load_w0_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w0_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u1_p0_reg_pc__le
++#define A__L
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u1_p0_imm__general
++#define A__NAME arm_instr_store_w0_signed_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u1_p0_imm__general
++#define A__NAME arm_instr_load_w0_signed_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u1_p0_imm_pc__le
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u1_p0_imm_pc__le
++#define A__L
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u1_p0_reg__general
++#define A__NAME arm_instr_store_w0_signed_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u1_p0_reg__general
++#define A__NAME arm_instr_load_w0_signed_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u1_p0_reg_pc__le
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u1_p0_reg_pc__le
++#define A__L
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u1_w1.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u1_w1.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p0_u1_w1.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p0_u1_w1.c 2022-10-18 16:37:22.080741800 +0000
+@@ -0,0 +1,1444 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w1_word_u1_p0_imm__general
++#define A__NAME arm_instr_store_w1_word_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w1_word_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_word_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_word_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_word_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_word_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_word_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_word_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_word_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_word_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_word_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_word_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_word_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_word_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_word_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_word_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u1_p0_imm_pc__le
++#define A__W
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u1_p0_imm__general
++#define A__NAME arm_instr_load_w1_word_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w1_word_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_word_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_word_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_word_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_word_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_word_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_word_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_word_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_word_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_word_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_word_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_word_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_word_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_word_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_word_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u1_p0_imm_pc__le
++#define A__L
++#define A__W
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u1_p0_imm__general
++#define A__NAME arm_instr_store_w1_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w1_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u1_p0_imm_pc__le
++#define A__W
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u1_p0_imm__general
++#define A__NAME arm_instr_load_w1_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w1_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u1_p0_imm_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_word_u1_p0_reg__general
++#define A__NAME arm_instr_store_w1_word_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w1_word_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_word_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_word_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_word_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_word_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_word_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_word_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_word_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_word_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_word_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_word_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_word_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_word_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_word_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_word_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u1_p0_reg_pc__le
++#define A__W
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u1_p0_reg__general
++#define A__NAME arm_instr_load_w1_word_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w1_word_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_word_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_word_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_word_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_word_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_word_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_word_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_word_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_word_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_word_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_word_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_word_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_word_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_word_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_word_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u1_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u1_p0_reg__general
++#define A__NAME arm_instr_store_w1_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w1_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u1_p0_reg_pc__le
++#define A__W
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u1_p0_reg__general
++#define A__NAME arm_instr_load_w1_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w1_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u1_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u1_p0_imm__general
++#define A__NAME arm_instr_store_w1_signed_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u1_p0_imm__general
++#define A__NAME arm_instr_load_w1_signed_byte_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u1_p0_imm_pc__le
++#define A__W
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u1_p0_imm_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u1_p0_imm__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u1_p0_imm
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u1_p0_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u1_p0_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u1_p0_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u1_p0_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u1_p0_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u1_p0_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u1_p0_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u1_p0_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u1_p0_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u1_p0_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u1_p0_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u1_p0_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u1_p0_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u1_p0_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u1_p0_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u1_p0_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u1_p0_reg__general
++#define A__NAME arm_instr_store_w1_signed_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u1_p0_reg__general
++#define A__NAME arm_instr_load_w1_signed_byte_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u1_p0_reg_pc__le
++#define A__W
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u1_p0_reg_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u1_p0_reg__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u1_p0_reg
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u1_p0_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u1_p0_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u1_p0_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u1_p0_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u1_p0_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u1_p0_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u1_p0_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u1_p0_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u1_p0_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u1_p0_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u1_p0_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u1_p0_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u1_p0_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u1_p0_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u1_p0_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u1_p0_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u0_w0.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u0_w0.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u0_w0.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u0_w0.c 2022-10-18 16:37:22.081742900 +0000
+@@ -0,0 +1,1404 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w0_word_u0_p1_imm__general
++#define A__NAME arm_instr_store_w0_word_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w0_word_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_word_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_word_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_word_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_word_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_word_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_word_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_word_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_word_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_word_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_word_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_word_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_word_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_word_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_word_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u0_p1_imm_pc__le
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u0_p1_imm__general
++#define A__NAME arm_instr_load_w0_word_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w0_word_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_word_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_word_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_word_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_word_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_word_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_word_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_word_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_word_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_word_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_word_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_word_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_word_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_word_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_word_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u0_p1_imm_pc__le
++#define A__L
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u0_p1_imm__general
++#define A__NAME arm_instr_store_w0_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w0_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u0_p1_imm_pc__le
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u0_p1_imm__general
++#define A__NAME arm_instr_load_w0_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w0_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u0_p1_imm_pc__le
++#define A__L
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_word_u0_p1_reg__general
++#define A__NAME arm_instr_store_w0_word_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w0_word_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_word_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_word_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_word_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_word_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_word_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_word_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_word_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_word_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_word_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_word_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_word_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_word_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_word_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_word_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u0_p1_reg_pc__le
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u0_p1_reg__general
++#define A__NAME arm_instr_load_w0_word_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w0_word_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_word_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_word_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_word_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_word_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_word_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_word_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_word_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_word_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_word_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_word_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_word_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_word_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_word_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_word_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u0_p1_reg_pc__le
++#define A__L
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u0_p1_reg__general
++#define A__NAME arm_instr_store_w0_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w0_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u0_p1_reg_pc__le
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u0_p1_reg__general
++#define A__NAME arm_instr_load_w0_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w0_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u0_p1_reg_pc__le
++#define A__L
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u0_p1_imm__general
++#define A__NAME arm_instr_store_w0_signed_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u0_p1_imm__general
++#define A__NAME arm_instr_load_w0_signed_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u0_p1_imm_pc__le
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u0_p1_imm_pc__le
++#define A__L
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u0_p1_reg__general
++#define A__NAME arm_instr_store_w0_signed_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u0_p1_reg__general
++#define A__NAME arm_instr_load_w0_signed_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u0_p1_reg_pc__le
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u0_p1_reg_pc__le
++#define A__L
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u0_w1.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u0_w1.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u0_w1.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u0_w1.c 2022-10-18 16:37:22.082743600 +0000
+@@ -0,0 +1,1444 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w1_word_u0_p1_imm__general
++#define A__NAME arm_instr_store_w1_word_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w1_word_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_word_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_word_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_word_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_word_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_word_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_word_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_word_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_word_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_word_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_word_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_word_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_word_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_word_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_word_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u0_p1_imm_pc__le
++#define A__W
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u0_p1_imm__general
++#define A__NAME arm_instr_load_w1_word_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w1_word_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_word_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_word_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_word_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_word_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_word_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_word_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_word_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_word_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_word_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_word_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_word_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_word_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_word_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_word_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u0_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u0_p1_imm__general
++#define A__NAME arm_instr_store_w1_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w1_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u0_p1_imm_pc__le
++#define A__W
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u0_p1_imm__general
++#define A__NAME arm_instr_load_w1_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w1_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u0_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_word_u0_p1_reg__general
++#define A__NAME arm_instr_store_w1_word_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w1_word_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_word_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_word_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_word_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_word_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_word_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_word_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_word_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_word_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_word_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_word_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_word_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_word_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_word_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_word_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u0_p1_reg_pc__le
++#define A__W
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u0_p1_reg__general
++#define A__NAME arm_instr_load_w1_word_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w1_word_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_word_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_word_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_word_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_word_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_word_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_word_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_word_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_word_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_word_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_word_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_word_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_word_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_word_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_word_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u0_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u0_p1_reg__general
++#define A__NAME arm_instr_store_w1_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w1_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u0_p1_reg_pc__le
++#define A__W
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u0_p1_reg__general
++#define A__NAME arm_instr_load_w1_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w1_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u0_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u0_p1_imm__general
++#define A__NAME arm_instr_store_w1_signed_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u0_p1_imm__general
++#define A__NAME arm_instr_load_w1_signed_byte_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u0_p1_imm_pc__le
++#define A__W
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u0_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u0_p1_imm__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u0_p1_imm
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u0_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u0_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u0_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u0_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u0_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u0_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u0_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u0_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u0_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u0_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u0_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u0_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u0_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u0_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u0_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u0_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u0_p1_reg__general
++#define A__NAME arm_instr_store_w1_signed_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u0_p1_reg__general
++#define A__NAME arm_instr_load_w1_signed_byte_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u0_p1_reg_pc__le
++#define A__W
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u0_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u0_p1_reg__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u0_p1_reg
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u0_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u0_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u0_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u0_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u0_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u0_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u0_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u0_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u0_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u0_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u0_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u0_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u0_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u0_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u0_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u0_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u1_w0.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u1_w0.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u1_w0.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u1_w0.c 2022-10-18 16:37:22.082743600 +0000
+@@ -0,0 +1,1444 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w0_word_u1_p1_imm__general
++#define A__NAME arm_instr_store_w0_word_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w0_word_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_word_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_word_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_word_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_word_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_word_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_word_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_word_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_word_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_word_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_word_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_word_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_word_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_word_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_word_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u1_p1_imm_pc__le
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u1_p1_imm__general
++#define A__NAME arm_instr_load_w0_word_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w0_word_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_word_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_word_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_word_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_word_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_word_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_word_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_word_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_word_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_word_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_word_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_word_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_word_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_word_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_word_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u1_p1_imm_pc__le
++#define A__L
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u1_p1_imm__general
++#define A__NAME arm_instr_store_w0_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w0_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u1_p1_imm_pc__le
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u1_p1_imm__general
++#define A__NAME arm_instr_load_w0_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w0_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u1_p1_imm_pc__le
++#define A__L
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_word_u1_p1_reg__general
++#define A__NAME arm_instr_store_w0_word_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w0_word_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_word_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_word_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_word_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_word_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_word_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_word_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_word_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_word_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_word_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_word_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_word_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_word_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_word_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_word_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_word_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_word_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_word_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_word_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_word_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_word_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_word_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_word_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_word_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_word_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_word_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_word_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_word_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_word_u1_p1_reg_pc__le
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_word_u1_p1_reg__general
++#define A__NAME arm_instr_load_w0_word_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w0_word_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_word_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_word_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_word_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_word_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_word_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_word_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_word_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_word_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_word_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_word_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_word_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_word_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_word_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_word_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_word_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_word_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_word_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_word_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_word_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_word_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_word_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_word_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_word_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_word_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_word_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_word_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_word_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_word_u1_p1_reg_pc__le
++#define A__L
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_byte_u1_p1_reg__general
++#define A__NAME arm_instr_store_w0_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w0_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_byte_u1_p1_reg_pc__le
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_byte_u1_p1_reg__general
++#define A__NAME arm_instr_load_w0_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w0_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_byte_u1_p1_reg_pc__le
++#define A__L
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u1_p1_imm__general
++#define A__NAME arm_instr_store_w0_signed_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u1_p1_imm__general
++#define A__NAME arm_instr_load_w0_signed_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u1_p1_imm_pc__le
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u1_p1_imm_pc__le
++#define A__L
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_byte_u1_p1_reg__general
++#define A__NAME arm_instr_store_w0_signed_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w0_signed_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_byte_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_byte_u1_p1_reg__general
++#define A__NAME arm_instr_load_w0_signed_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w0_signed_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_byte_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_unsigned_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_store_w0_unsigned_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w0_unsigned_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_unsigned_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_unsigned_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_unsigned_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_unsigned_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_unsigned_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_unsigned_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_unsigned_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_unsigned_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_unsigned_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_unsigned_halfword_u1_p1_reg_pc__le
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_unsigned_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_load_w0_unsigned_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w0_unsigned_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_unsigned_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_unsigned_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_unsigned_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_unsigned_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_unsigned_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_unsigned_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_unsigned_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_unsigned_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_unsigned_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_unsigned_halfword_u1_p1_reg_pc__le
++#define A__L
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w0_signed_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_store_w0_signed_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w0_signed_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w0_signed_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w0_signed_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w0_signed_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w0_signed_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w0_signed_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w0_signed_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w0_signed_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w0_signed_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w0_signed_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w0_signed_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w0_signed_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w0_signed_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w0_signed_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w0_signed_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w0_signed_halfword_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w0_signed_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_load_w0_signed_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w0_signed_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w0_signed_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w0_signed_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w0_signed_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w0_signed_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w0_signed_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w0_signed_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w0_signed_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w0_signed_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w0_signed_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w0_signed_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w0_signed_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w0_signed_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w0_signed_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w0_signed_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w0_signed_halfword_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u1_w1.c gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u1_w1.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_loadstore_p1_u1_w1.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_loadstore_p1_u1_w1.c 2022-10-18 16:37:22.083744800 +0000
+@@ -0,0 +1,1484 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "machine.h"
++#include "memory.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#define reg(x) (*((uint32_t *)(x)))
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_nothing(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_invalid(struct cpu *, struct arm_instr_call *);
++extern void arm_pc_to_pointers(struct cpu *);
++#define A__NAME__general arm_instr_store_w1_word_u1_p1_imm__general
++#define A__NAME arm_instr_store_w1_word_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w1_word_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_word_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_word_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_word_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_word_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_word_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_word_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_word_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_word_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_word_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_word_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_word_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_word_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_word_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_word_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u1_p1_imm_pc__le
++#define A__W
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u1_p1_imm__general
++#define A__NAME arm_instr_load_w1_word_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w1_word_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_word_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_word_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_word_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_word_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_word_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_word_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_word_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_word_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_word_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_word_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_word_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_word_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_word_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_word_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u1_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u1_p1_imm__general
++#define A__NAME arm_instr_store_w1_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w1_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u1_p1_imm_pc__le
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u1_p1_imm__general
++#define A__NAME arm_instr_load_w1_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w1_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u1_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_word_u1_p1_reg__general
++#define A__NAME arm_instr_store_w1_word_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w1_word_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_word_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_word_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_word_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_word_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_word_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_word_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_word_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_word_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_word_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_word_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_word_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_word_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_word_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_word_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_word_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_word_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_word_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_word_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_word_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_word_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_word_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_word_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_word_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_word_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_word_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_word_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_word_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_word_u1_p1_reg_pc__le
++#define A__W
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_word_u1_p1_reg__general
++#define A__NAME arm_instr_load_w1_word_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w1_word_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_word_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_word_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_word_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_word_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_word_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_word_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_word_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_word_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_word_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_word_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_word_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_word_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_word_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_word_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_word_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_word_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_word_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_word_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_word_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_word_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_word_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_word_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_word_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_word_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_word_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_word_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_word_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_word_u1_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_byte_u1_p1_reg__general
++#define A__NAME arm_instr_store_w1_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w1_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_byte_u1_p1_reg_pc__le
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_byte_u1_p1_reg__general
++#define A__NAME arm_instr_load_w1_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w1_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_byte_u1_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u1_p1_imm__general
++#define A__NAME arm_instr_store_w1_signed_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u1_p1_imm__general
++#define A__NAME arm_instr_load_w1_signed_byte_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u1_p1_imm_pc__le
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u1_p1_imm_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u1_p1_imm__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u1_p1_imm
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u1_p1_imm__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u1_p1_imm__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u1_p1_imm__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u1_p1_imm__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u1_p1_imm__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u1_p1_imm__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u1_p1_imm__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u1_p1_imm__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u1_p1_imm__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u1_p1_imm__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u1_p1_imm__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u1_p1_imm__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u1_p1_imm__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u1_p1_imm__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u1_p1_imm_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u1_p1_imm_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_byte_u1_p1_reg__general
++#define A__NAME arm_instr_store_w1_signed_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w1_signed_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_byte_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_byte_u1_p1_reg__general
++#define A__NAME arm_instr_load_w1_signed_byte_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w1_signed_byte_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_byte_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_byte_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_byte_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_byte_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_byte_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_byte_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_byte_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_byte_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_byte_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_byte_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_byte_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_byte_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_byte_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_byte_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_byte_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_byte_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_byte_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_byte_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_byte_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_byte_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_byte_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_byte_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_byte_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_byte_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__B
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__B
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_unsigned_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_store_w1_unsigned_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w1_unsigned_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_unsigned_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_unsigned_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_unsigned_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_unsigned_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_unsigned_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_unsigned_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_unsigned_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_unsigned_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_unsigned_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_unsigned_halfword_u1_p1_reg_pc__le
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_unsigned_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_load_w1_unsigned_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w1_unsigned_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_unsigned_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_unsigned_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_unsigned_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_unsigned_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_unsigned_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_unsigned_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_unsigned_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_unsigned_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_unsigned_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_unsigned_halfword_u1_p1_reg_pc__le
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_store_w1_signed_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_store_w1_signed_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_store_w1_signed_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_store_w1_signed_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_store_w1_signed_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_store_w1_signed_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_store_w1_signed_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_store_w1_signed_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_store_w1_signed_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_store_w1_signed_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_store_w1_signed_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_store_w1_signed_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_store_w1_signed_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_store_w1_signed_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_store_w1_signed_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_store_w1_signed_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_store_w1_signed_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_store_w1_signed_halfword_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
++#define A__NAME__general arm_instr_load_w1_signed_halfword_u1_p1_reg__general
++#define A__NAME arm_instr_load_w1_signed_halfword_u1_p1_reg
++#define A__NAME__eq arm_instr_load_w1_signed_halfword_u1_p1_reg__eq
++#define A__NAME__ne arm_instr_load_w1_signed_halfword_u1_p1_reg__ne
++#define A__NAME__cs arm_instr_load_w1_signed_halfword_u1_p1_reg__cs
++#define A__NAME__cc arm_instr_load_w1_signed_halfword_u1_p1_reg__cc
++#define A__NAME__mi arm_instr_load_w1_signed_halfword_u1_p1_reg__mi
++#define A__NAME__pl arm_instr_load_w1_signed_halfword_u1_p1_reg__pl
++#define A__NAME__vs arm_instr_load_w1_signed_halfword_u1_p1_reg__vs
++#define A__NAME__vc arm_instr_load_w1_signed_halfword_u1_p1_reg__vc
++#define A__NAME__hi arm_instr_load_w1_signed_halfword_u1_p1_reg__hi
++#define A__NAME__ls arm_instr_load_w1_signed_halfword_u1_p1_reg__ls
++#define A__NAME__ge arm_instr_load_w1_signed_halfword_u1_p1_reg__ge
++#define A__NAME__lt arm_instr_load_w1_signed_halfword_u1_p1_reg__lt
++#define A__NAME__gt arm_instr_load_w1_signed_halfword_u1_p1_reg__gt
++#define A__NAME__le arm_instr_load_w1_signed_halfword_u1_p1_reg__le
++#define A__NAME_PC arm_instr_load_w1_signed_halfword_u1_p1_reg_pc
++#define A__NAME_PC__eq arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__eq
++#define A__NAME_PC__ne arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ne
++#define A__NAME_PC__cs arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cs
++#define A__NAME_PC__cc arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__cc
++#define A__NAME_PC__mi arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__mi
++#define A__NAME_PC__pl arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__pl
++#define A__NAME_PC__vs arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vs
++#define A__NAME_PC__vc arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__vc
++#define A__NAME_PC__hi arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__hi
++#define A__NAME_PC__ls arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ls
++#define A__NAME_PC__ge arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__ge
++#define A__NAME_PC__lt arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__lt
++#define A__NAME_PC__gt arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__gt
++#define A__NAME_PC__le arm_instr_load_w1_signed_halfword_u1_p1_reg_pc__le
++#define A__SIGNED
++#define A__L
++#define A__W
++#define A__H
++#define A__U
++#define A__P
++#define A__REG
++#include "cpu_arm_instr_loadstore.c"
++#undef A__SIGNED
++#undef A__L
++#undef A__W
++#undef A__H
++#undef A__U
++#undef A__P
++#undef A__REG
++#undef A__NAME__eq
++#undef A__NAME__ne
++#undef A__NAME__cs
++#undef A__NAME__cc
++#undef A__NAME__mi
++#undef A__NAME__pl
++#undef A__NAME__vs
++#undef A__NAME__vc
++#undef A__NAME__hi
++#undef A__NAME__ls
++#undef A__NAME__ge
++#undef A__NAME__lt
++#undef A__NAME__gt
++#undef A__NAME__le
++#undef A__NAME_PC__eq
++#undef A__NAME_PC__ne
++#undef A__NAME_PC__cs
++#undef A__NAME_PC__cc
++#undef A__NAME_PC__mi
++#undef A__NAME_PC__pl
++#undef A__NAME_PC__vs
++#undef A__NAME_PC__vc
++#undef A__NAME_PC__hi
++#undef A__NAME_PC__ls
++#undef A__NAME_PC__ge
++#undef A__NAME_PC__lt
++#undef A__NAME_PC__gt
++#undef A__NAME_PC__le
++#undef A__NAME__general
++#undef A__NAME_PC
++#undef A__NAME
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_multi.c gxemul-0.7.0/src/cpus/tmp_arm_multi.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_multi.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_multi.c 2022-10-18 16:37:22.084745600 +0000
+@@ -0,0 +1,9575 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#include "quick_pc_to_pointers.h"
++#include "arm_tmphead_1.h"
++
++#define instr(x) arm_instr_ ## x
++extern void arm_pc_to_pointers(struct cpu *);
++extern void arm_instr_nop(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_bdt_load(struct cpu *, struct arm_instr_call *);
++extern void arm_instr_bdt_store(struct cpu *, struct arm_instr_call *);
++
++
++
++void arm_instr_multi_0x092ddff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x28 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-10] = cpu->cd.arm.r[4];
++ p[-9] = cpu->cd.arm.r[5];
++ p[-8] = cpu->cd.arm.r[6];
++ p[-7] = cpu->cd.arm.r[7];
++ p[-6] = cpu->cd.arm.r[8];
++ p[-5] = cpu->cd.arm.r[9];
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 44;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddff0)
++
++void arm_instr_multi_0x091baff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x24 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-9];
++ cpu->cd.arm.r[5] = p[-8];
++ cpu->cd.arm.r[6] = p[-7];
++ cpu->cd.arm.r[7] = p[-6];
++ cpu->cd.arm.r[8] = p[-5];
++ cpu->cd.arm.r[9] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091baff0)
++
++void arm_instr_multi_0x08110003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-1];
++ cpu->cd.arm.r[1] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08110003)
++
++void arm_instr_multi_0x092dd8f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-7] = cpu->cd.arm.r[4];
++ p[-6] = cpu->cd.arm.r[5];
++ p[-5] = cpu->cd.arm.r[6];
++ p[-4] = cpu->cd.arm.r[7];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd8f0)
++
++void arm_instr_multi_0x091ba8f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-6];
++ cpu->cd.arm.r[5] = p[-5];
++ cpu->cd.arm.r[6] = p[-4];
++ cpu->cd.arm.r[7] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba8f0)
++
++void arm_instr_multi_0x092d4000(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 4;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4000)
++
++void arm_instr_multi_0x08bd8000(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->pc = p[0];
++ cpu->cd.arm.r[13] += 4;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8000)
++
++void arm_instr_multi_0x08ac000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[2];
++ p[1] = cpu->cd.arm.r[3];
++ cpu->cd.arm.r[12] += 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08ac000c)
++
++void arm_instr_multi_0x092dd830(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x14 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-5] = cpu->cd.arm.r[4];
++ p[-4] = cpu->cd.arm.r[5];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 24;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd830)
++
++void arm_instr_multi_0x092dddf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x24 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-9] = cpu->cd.arm.r[4];
++ p[-8] = cpu->cd.arm.r[5];
++ p[-7] = cpu->cd.arm.r[6];
++ p[-6] = cpu->cd.arm.r[7];
++ p[-5] = cpu->cd.arm.r[8];
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 40;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dddf0)
++
++void arm_instr_multi_0x092dd9f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x20 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-8] = cpu->cd.arm.r[4];
++ p[-7] = cpu->cd.arm.r[5];
++ p[-6] = cpu->cd.arm.r[6];
++ p[-5] = cpu->cd.arm.r[7];
++ p[-4] = cpu->cd.arm.r[8];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 36;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd9f0)
++
++void arm_instr_multi_0x091badf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x20 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-8];
++ cpu->cd.arm.r[5] = p[-7];
++ cpu->cd.arm.r[6] = p[-6];
++ cpu->cd.arm.r[7] = p[-5];
++ cpu->cd.arm.r[8] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091badf0)
++
++void arm_instr_multi_0x091ba830(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x10 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-4];
++ cpu->cd.arm.r[5] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba830)
++
++void arm_instr_multi_0x091ba9f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-7];
++ cpu->cd.arm.r[5] = p[-6];
++ cpu->cd.arm.r[6] = p[-5];
++ cpu->cd.arm.r[7] = p[-4];
++ cpu->cd.arm.r[8] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba9f0)
++
++void arm_instr_multi_0x08930003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930003)
++
++void arm_instr_multi_0x09040003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[0];
++ p[0] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09040003)
++
++void arm_instr_multi_0x08b051f8(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ cpu->cd.arm.r[5] = p[2];
++ cpu->cd.arm.r[6] = p[3];
++ cpu->cd.arm.r[7] = p[4];
++ cpu->cd.arm.r[8] = p[5];
++ cpu->cd.arm.r[12] = p[6];
++ cpu->cd.arm.r[14] = p[7];
++ cpu->cd.arm.r[0] += 32;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b051f8)
++
++void arm_instr_multi_0x08a151f8(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ p[2] = cpu->cd.arm.r[5];
++ p[3] = cpu->cd.arm.r[6];
++ p[4] = cpu->cd.arm.r[7];
++ p[5] = cpu->cd.arm.r[8];
++ p[6] = cpu->cd.arm.r[12];
++ p[7] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[1] += 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a151f8)
++
++void arm_instr_multi_0x092dd810(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x10 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-4] = cpu->cd.arm.r[4];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 20;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd810)
++
++void arm_instr_multi_0x091ba810(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba810)
++
++void arm_instr_multi_0x08930006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930006)
++
++void arm_instr_multi_0x092d4010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[4];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4010)
++
++void arm_instr_multi_0x092dd800(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd800)
++
++void arm_instr_multi_0x08830006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830006)
++
++void arm_instr_multi_0x08920018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08920018)
++
++void arm_instr_multi_0x08a051f8(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ p[2] = cpu->cd.arm.r[5];
++ p[3] = cpu->cd.arm.r[6];
++ p[4] = cpu->cd.arm.r[7];
++ p[5] = cpu->cd.arm.r[8];
++ p[6] = cpu->cd.arm.r[12];
++ p[7] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] += 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a051f8)
++
++void arm_instr_multi_0x08820018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08820018)
++
++void arm_instr_multi_0x08bd8010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->pc = p[1];
++ cpu->cd.arm.r[13] += 8;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8010)
++
++void arm_instr_multi_0x08a05018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ p[2] = cpu->cd.arm.r[12];
++ p[3] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] += 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a05018)
++
++void arm_instr_multi_0x08b15018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ cpu->cd.arm.r[12] = p[2];
++ cpu->cd.arm.r[14] = p[3];
++ cpu->cd.arm.r[1] += 16;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b15018)
++
++void arm_instr_multi_0x092dd870(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-6] = cpu->cd.arm.r[4];
++ p[-5] = cpu->cd.arm.r[5];
++ p[-4] = cpu->cd.arm.r[6];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 28;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092dd870)
++
++void arm_instr_multi_0x091ba870(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x14 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-5];
++ cpu->cd.arm.r[5] = p[-4];
++ cpu->cd.arm.r[6] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba870)
++
++void arm_instr_multi_0x092d41f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x14 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-5] = cpu->cd.arm.r[4];
++ p[-4] = cpu->cd.arm.r[5];
++ p[-3] = cpu->cd.arm.r[6];
++ p[-2] = cpu->cd.arm.r[7];
++ p[-1] = cpu->cd.arm.r[8];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 24;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d41f0)
++
++void arm_instr_multi_0x08bd81f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[8] = p[4];
++ cpu->pc = p[5];
++ cpu->cd.arm.r[13] += 24;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd81f0)
++
++void arm_instr_multi_0x08971040(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[12] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08971040)
++
++void arm_instr_multi_0x08040006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[1];
++ p[0] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08040006)
++
++void arm_instr_multi_0x08130018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-1];
++ cpu->cd.arm.r[4] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08130018)
++
++void arm_instr_multi_0x091ba800(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091ba800)
++
++void arm_instr_multi_0x088d1fff(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfcc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ p[2] = cpu->cd.arm.r[2];
++ p[3] = cpu->cd.arm.r[3];
++ p[4] = cpu->cd.arm.r[4];
++ p[5] = cpu->cd.arm.r[5];
++ p[6] = cpu->cd.arm.r[6];
++ p[7] = cpu->cd.arm.r[7];
++ p[8] = cpu->cd.arm.r[8];
++ p[9] = cpu->cd.arm.r[9];
++ p[10] = cpu->cd.arm.r[10];
++ p[11] = cpu->cd.arm.r[11];
++ p[12] = cpu->cd.arm.r[12];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d1fff)
++
++void arm_instr_multi_0x091b6800(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6800)
++
++void arm_instr_multi_0x08950006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08950006)
++
++void arm_instr_multi_0x0911000f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-3];
++ cpu->cd.arm.r[1] = p[-2];
++ cpu->cd.arm.r[2] = p[-1];
++ cpu->cd.arm.r[3] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0911000f)
++
++void arm_instr_multi_0x090d000f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[0];
++ p[-2] = cpu->cd.arm.r[1];
++ p[-1] = cpu->cd.arm.r[2];
++ p[0] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x090d000f)
++
++void arm_instr_multi_0x08850006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08850006)
++
++void arm_instr_multi_0x092d4070(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[4];
++ p[-2] = cpu->cd.arm.r[5];
++ p[-1] = cpu->cd.arm.r[6];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4070)
++
++void arm_instr_multi_0x08bd8070(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->pc = p[3];
++ cpu->cd.arm.r[13] += 16;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8070)
++
++void arm_instr_multi_0x08900006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08900006)
++
++void arm_instr_multi_0x08800006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08800006)
++
++void arm_instr_multi_0x089e0018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089e0018)
++
++void arm_instr_multi_0x08870006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08870006)
++
++void arm_instr_multi_0x088e0018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088e0018)
++
++void arm_instr_multi_0x08b00fc0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[7] = p[1];
++ cpu->cd.arm.r[8] = p[2];
++ cpu->cd.arm.r[9] = p[3];
++ cpu->cd.arm.r[10] = p[4];
++ cpu->cd.arm.r[11] = p[5];
++ cpu->cd.arm.r[0] += 24;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b00fc0)
++
++void arm_instr_multi_0x08b000c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[7] = p[1];
++ cpu->cd.arm.r[0] += 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b000c0)
++
++void arm_instr_multi_0x08970006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08970006)
++
++void arm_instr_multi_0x08930060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[6] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930060)
++
++void arm_instr_multi_0x091b6ff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x24 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-9];
++ cpu->cd.arm.r[5] = p[-8];
++ cpu->cd.arm.r[6] = p[-7];
++ cpu->cd.arm.r[7] = p[-6];
++ cpu->cd.arm.r[8] = p[-5];
++ cpu->cd.arm.r[9] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6ff0)
++
++void arm_instr_multi_0x092d4030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-2] = cpu->cd.arm.r[4];
++ p[-1] = cpu->cd.arm.r[5];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 12;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4030)
++
++void arm_instr_multi_0x08bd8030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->pc = p[2];
++ cpu->cd.arm.r[13] += 12;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8030)
++
++void arm_instr_multi_0x091b6830(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x10 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-4];
++ cpu->cd.arm.r[5] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6830)
++
++void arm_instr_multi_0x092ddc30(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-6] = cpu->cd.arm.r[4];
++ p[-5] = cpu->cd.arm.r[5];
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 28;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddc30)
++
++void arm_instr_multi_0x091bac30(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x14 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-5];
++ cpu->cd.arm.r[5] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091bac30)
++
++void arm_instr_multi_0x092d4001(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[0];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4001)
++
++void arm_instr_multi_0x08bd8001(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->pc = p[1];
++ cpu->cd.arm.r[13] += 8;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8001)
++
++void arm_instr_multi_0x09205018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[3];
++ p[-2] = cpu->cd.arm.r[4];
++ p[-1] = cpu->cd.arm.r[12];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] -= 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09205018)
++
++void arm_instr_multi_0x09315018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-3];
++ cpu->cd.arm.r[4] = p[-2];
++ cpu->cd.arm.r[12] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ cpu->cd.arm.r[1] -= 16;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09315018)
++
++void arm_instr_multi_0x092ddbf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x24 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-9] = cpu->cd.arm.r[4];
++ p[-8] = cpu->cd.arm.r[5];
++ p[-7] = cpu->cd.arm.r[6];
++ p[-6] = cpu->cd.arm.r[7];
++ p[-5] = cpu->cd.arm.r[8];
++ p[-4] = cpu->cd.arm.r[9];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 40;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddbf0)
++
++void arm_instr_multi_0x091babf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x20 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-8];
++ cpu->cd.arm.r[5] = p[-7];
++ cpu->cd.arm.r[6] = p[-6];
++ cpu->cd.arm.r[7] = p[-5];
++ cpu->cd.arm.r[8] = p[-4];
++ cpu->cd.arm.r[9] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091babf0)
++
++void arm_instr_multi_0x091bac70(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-6];
++ cpu->cd.arm.r[5] = p[-5];
++ cpu->cd.arm.r[6] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091bac70)
++
++void arm_instr_multi_0x092ddc70(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-7] = cpu->cd.arm.r[4];
++ p[-6] = cpu->cd.arm.r[5];
++ p[-5] = cpu->cd.arm.r[6];
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddc70)
++
++void arm_instr_multi_0x080c0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[4];
++ p[0] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x080c0030)
++
++void arm_instr_multi_0x092ddcf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x20 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-8] = cpu->cd.arm.r[4];
++ p[-7] = cpu->cd.arm.r[5];
++ p[-6] = cpu->cd.arm.r[6];
++ p[-5] = cpu->cd.arm.r[7];
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 36;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddcf0)
++
++void arm_instr_multi_0x091bacf0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-7];
++ cpu->cd.arm.r[5] = p[-6];
++ cpu->cd.arm.r[6] = p[-5];
++ cpu->cd.arm.r[7] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091bacf0)
++
++void arm_instr_multi_0x0892000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0892000c)
++
++void arm_instr_multi_0x08930180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[7] = p[0];
++ cpu->cd.arm.r[8] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930180)
++
++void arm_instr_multi_0x08150003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-1];
++ cpu->cd.arm.r[1] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08150003)
++
++void arm_instr_multi_0x08020003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[0];
++ p[0] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08020003)
++
++void arm_instr_multi_0x08920006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08920006)
++
++void arm_instr_multi_0x0817000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[-1];
++ cpu->cd.arm.r[3] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0817000c)
++
++void arm_instr_multi_0x09870018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09870018)
++
++void arm_instr_multi_0x099c0180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[7] = p[0];
++ cpu->cd.arm.r[8] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x099c0180)
++
++void arm_instr_multi_0x091b69f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-7];
++ cpu->cd.arm.r[5] = p[-6];
++ cpu->cd.arm.r[6] = p[-5];
++ cpu->cd.arm.r[7] = p[-4];
++ cpu->cd.arm.r[8] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b69f0)
++
++void arm_instr_multi_0x08950003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08950003)
++
++void arm_instr_multi_0x088c0060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[5];
++ p[1] = cpu->cd.arm.r[6];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088c0060)
++
++void arm_instr_multi_0x0891000e(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ cpu->cd.arm.r[3] = p[2];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0891000e)
++
++void arm_instr_multi_0x08bd0400(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[10] = p[0];
++ cpu->cd.arm.r[13] += 4;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd0400)
++
++void arm_instr_multi_0x092d0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[4];
++ p[0] = cpu->cd.arm.r[5];
++ cpu->cd.arm.r[13] -= 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d0030)
++
++void arm_instr_multi_0x08bd0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[13] += 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd0030)
++
++void arm_instr_multi_0x08810018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08810018)
++
++void arm_instr_multi_0x08880018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08880018)
++
++void arm_instr_multi_0x08820003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08820003)
++
++void arm_instr_multi_0x08980060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[6] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08980060)
++
++void arm_instr_multi_0x08bd0010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[13] += 4;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd0010)
++
++void arm_instr_multi_0x092d0010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ cpu->cd.arm.r[13] -= 4;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d0010)
++
++void arm_instr_multi_0x08bd4010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[14] = p[1];
++ cpu->cd.arm.r[13] += 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd4010)
++
++void arm_instr_multi_0x08100009(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-1];
++ cpu->cd.arm.r[3] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08100009)
++
++void arm_instr_multi_0x08910003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08910003)
++
++void arm_instr_multi_0x08830030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830030)
++
++void arm_instr_multi_0x08980018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08980018)
++
++void arm_instr_multi_0x08930018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930018)
++
++void arm_instr_multi_0x08880006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08880006)
++
++void arm_instr_multi_0x088c0018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088c0018)
++
++void arm_instr_multi_0x08910006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08910006)
++
++void arm_instr_multi_0x08940003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08940003)
++
++void arm_instr_multi_0x08850003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08850003)
++
++void arm_instr_multi_0x08890006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08890006)
++
++void arm_instr_multi_0x092d40f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x10 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-4] = cpu->cd.arm.r[4];
++ p[-3] = cpu->cd.arm.r[5];
++ p[-2] = cpu->cd.arm.r[6];
++ p[-1] = cpu->cd.arm.r[7];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 20;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d40f0)
++
++void arm_instr_multi_0x08840003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08840003)
++
++void arm_instr_multi_0x08820030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08820030)
++
++void arm_instr_multi_0x09160060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[-1];
++ cpu->cd.arm.r[6] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09160060)
++
++void arm_instr_multi_0x08930600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[9] = p[0];
++ cpu->cd.arm.r[10] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08930600)
++
++void arm_instr_multi_0x092d0ff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-7] = cpu->cd.arm.r[4];
++ p[-6] = cpu->cd.arm.r[5];
++ p[-5] = cpu->cd.arm.r[6];
++ p[-4] = cpu->cd.arm.r[7];
++ p[-3] = cpu->cd.arm.r[8];
++ p[-2] = cpu->cd.arm.r[9];
++ p[-1] = cpu->cd.arm.r[10];
++ p[0] = cpu->cd.arm.r[11];
++ cpu->cd.arm.r[13] -= 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d0ff0)
++
++void arm_instr_multi_0x08bd0ff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[8] = p[4];
++ cpu->cd.arm.r[9] = p[5];
++ cpu->cd.arm.r[10] = p[6];
++ cpu->cd.arm.r[11] = p[7];
++ cpu->cd.arm.r[13] += 32;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd0ff0)
++
++void arm_instr_multi_0x089e000a(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089e000a)
++
++void arm_instr_multi_0x09930006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09930006)
++
++void arm_instr_multi_0x080c0003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[0];
++ p[0] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x080c0003)
++
++void arm_instr_multi_0x0804000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[2];
++ p[0] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x0804000c)
++
++void arm_instr_multi_0x08830060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[5];
++ p[1] = cpu->cd.arm.r[6];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830060)
++
++void arm_instr_multi_0x08130003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-1];
++ cpu->cd.arm.r[1] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08130003)
++
++void arm_instr_multi_0x09830006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09830006)
++
++void arm_instr_multi_0x08b00300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[8] = p[0];
++ cpu->cd.arm.r[9] = p[1];
++ cpu->cd.arm.r[0] += 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b00300)
++
++void arm_instr_multi_0x088e1002(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[12];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088e1002)
++
++void arm_instr_multi_0x0894000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0894000c)
++
++void arm_instr_multi_0x0885000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[2];
++ p[1] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x0885000c)
++
++void arm_instr_multi_0x08840600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[9];
++ p[1] = cpu->cd.arm.r[10];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08840600)
++
++void arm_instr_multi_0x091b6df0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x20 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-8];
++ cpu->cd.arm.r[5] = p[-7];
++ cpu->cd.arm.r[6] = p[-6];
++ cpu->cd.arm.r[7] = p[-5];
++ cpu->cd.arm.r[8] = p[-4];
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6df0)
++
++void arm_instr_multi_0x088c0006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088c0006)
++
++void arm_instr_multi_0x092d47f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x1c && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-7] = cpu->cd.arm.r[4];
++ p[-6] = cpu->cd.arm.r[5];
++ p[-5] = cpu->cd.arm.r[6];
++ p[-4] = cpu->cd.arm.r[7];
++ p[-3] = cpu->cd.arm.r[8];
++ p[-2] = cpu->cd.arm.r[9];
++ p[-1] = cpu->cd.arm.r[10];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 32;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d47f0)
++
++void arm_instr_multi_0x08bd87f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[8] = p[4];
++ cpu->cd.arm.r[9] = p[5];
++ cpu->cd.arm.r[10] = p[6];
++ cpu->pc = p[7];
++ cpu->cd.arm.r[13] += 32;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd87f0)
++
++void arm_instr_multi_0x08800018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08800018)
++
++void arm_instr_multi_0x099b0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x099b0030)
++
++void arm_instr_multi_0x08a100c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[6];
++ p[1] = cpu->cd.arm.r[7];
++ cpu->cd.arm.r[1] += 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a100c0)
++
++void arm_instr_multi_0x089c0006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089c0006)
++
++void arm_instr_multi_0x099b0180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[7] = p[0];
++ cpu->cd.arm.r[8] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x099b0180)
++
++void arm_instr_multi_0x08910030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08910030)
++
++void arm_instr_multi_0x09150018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-1];
++ cpu->cd.arm.r[4] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09150018)
++
++void arm_instr_multi_0x091a0600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[10];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[9] = p[-1];
++ cpu->cd.arm.r[10] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091a0600)
++
++void arm_instr_multi_0x090a0300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[10];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[8];
++ p[0] = cpu->cd.arm.r[9];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x090a0300)
++
++void arm_instr_multi_0x08bd40f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfec && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[14] = p[4];
++ cpu->cd.arm.r[13] += 20;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd40f0)
++
++void arm_instr_multi_0x089c0300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[8] = p[0];
++ cpu->cd.arm.r[9] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089c0300)
++
++void arm_instr_multi_0x09150006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[-1];
++ cpu->cd.arm.r[2] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09150006)
++
++void arm_instr_multi_0x08a10300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[8];
++ p[1] = cpu->cd.arm.r[9];
++ cpu->cd.arm.r[1] += 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a10300)
++
++void arm_instr_multi_0x08a01008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[12];
++ cpu->cd.arm.r[0] += 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a01008)
++
++void arm_instr_multi_0x08b11008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[12] = p[1];
++ cpu->cd.arm.r[1] += 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b11008)
++
++void arm_instr_multi_0x08bd80f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfec && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->pc = p[4];
++ cpu->cd.arm.r[13] += 20;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd80f0)
++
++void arm_instr_multi_0x08a05008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[12];
++ p[2] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] += 12;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a05008)
++
++void arm_instr_multi_0x08b15008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[12] = p[1];
++ cpu->cd.arm.r[14] = p[2];
++ cpu->cd.arm.r[1] += 12;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08b15008)
++
++void arm_instr_multi_0x08900018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08900018)
++
++void arm_instr_multi_0x092ddc00(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ uint32_t tmp_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page) / sizeof(struct arm_instr_call);
++ tmp_pc = ((cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1)
++ << ARM_INSTR_ALIGNMENT_SHIFT)))
++ + (tmp_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 12;
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x10 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-4] = cpu->cd.arm.r[10];
++ p[-3] = cpu->cd.arm.r[11];
++ p[-2] = cpu->cd.arm.r[12];
++ p[-1] = cpu->cd.arm.r[14];
++ p[0] = tmp_pc;
++ cpu->cd.arm.r[13] -= 20;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092ddc00)
++
++void arm_instr_multi_0x088c0003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088c0003)
++
++void arm_instr_multi_0x08830600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[9];
++ p[1] = cpu->cd.arm.r[10];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830600)
++
++void arm_instr_multi_0x08920003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08920003)
++
++void arm_instr_multi_0x088d1100(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[8];
++ p[1] = cpu->cd.arm.r[12];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d1100)
++
++void arm_instr_multi_0x09900120(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[8] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09900120)
++
++void arm_instr_multi_0x091bac00(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[10] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->pc = p[0];
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091bac00)
++
++void arm_instr_multi_0x092d45f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-6] = cpu->cd.arm.r[4];
++ p[-5] = cpu->cd.arm.r[5];
++ p[-4] = cpu->cd.arm.r[6];
++ p[-3] = cpu->cd.arm.r[7];
++ p[-2] = cpu->cd.arm.r[8];
++ p[-1] = cpu->cd.arm.r[10];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 28;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d45f0)
++
++void arm_instr_multi_0x08bd85f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[8] = p[4];
++ cpu->cd.arm.r[10] = p[5];
++ cpu->pc = p[6];
++ cpu->cd.arm.r[13] += 28;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd85f0)
++
++void arm_instr_multi_0x09940018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09940018)
++
++void arm_instr_multi_0x09850014(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[2];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09850014)
++
++void arm_instr_multi_0x08860006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08860006)
++
++void arm_instr_multi_0x09120006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[-1];
++ cpu->cd.arm.r[2] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09120006)
++
++void arm_instr_multi_0x089c0018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089c0018)
++
++void arm_instr_multi_0x091b6870(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x14 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-5];
++ cpu->cd.arm.r[5] = p[-4];
++ cpu->cd.arm.r[6] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6870)
++
++void arm_instr_multi_0x08950030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08950030)
++
++void arm_instr_multi_0x09900018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09900018)
++
++void arm_instr_multi_0x098d0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x098d0030)
++
++void arm_instr_multi_0x088d0088(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d0088)
++
++void arm_instr_multi_0x08900060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[6] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08900060)
++
++void arm_instr_multi_0x08900003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08900003)
++
++void arm_instr_multi_0x08990018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08990018)
++
++void arm_instr_multi_0x08810600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[9];
++ p[1] = cpu->cd.arm.r[10];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08810600)
++
++void arm_instr_multi_0x092d0c1f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-6] = cpu->cd.arm.r[0];
++ p[-5] = cpu->cd.arm.r[1];
++ p[-4] = cpu->cd.arm.r[2];
++ p[-3] = cpu->cd.arm.r[3];
++ p[-2] = cpu->cd.arm.r[4];
++ p[-1] = cpu->cd.arm.r[10];
++ p[0] = cpu->cd.arm.r[11];
++ cpu->cd.arm.r[13] -= 28;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d0c1f)
++
++void arm_instr_multi_0x08bd4c1f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ cpu->cd.arm.r[2] = p[2];
++ cpu->cd.arm.r[3] = p[3];
++ cpu->cd.arm.r[4] = p[4];
++ cpu->cd.arm.r[10] = p[5];
++ cpu->cd.arm.r[11] = p[6];
++ cpu->cd.arm.r[14] = p[7];
++ cpu->cd.arm.r[13] += 32;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd4c1f)
++
++void arm_instr_multi_0x088d1010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[12];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d1010)
++
++void arm_instr_multi_0x09311008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-1];
++ cpu->cd.arm.r[12] = p[0];
++ cpu->cd.arm.r[1] -= 8;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09311008)
++
++void arm_instr_multi_0x09201008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[3];
++ p[0] = cpu->cd.arm.r[12];
++ cpu->cd.arm.r[0] -= 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09201008)
++
++void arm_instr_multi_0x08a10f00(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[8];
++ p[1] = cpu->cd.arm.r[9];
++ p[2] = cpu->cd.arm.r[10];
++ p[3] = cpu->cd.arm.r[11];
++ cpu->cd.arm.r[1] += 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a10f00)
++
++void arm_instr_multi_0x08931008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[12] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08931008)
++
++void arm_instr_multi_0x098b0003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x098b0003)
++
++void arm_instr_multi_0x08820180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[7];
++ p[1] = cpu->cd.arm.r[8];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08820180)
++
++void arm_instr_multi_0x08830300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[8];
++ p[1] = cpu->cd.arm.r[9];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830300)
++
++void arm_instr_multi_0x08800030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08800030)
++
++void arm_instr_multi_0x09315008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-2];
++ cpu->cd.arm.r[12] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ cpu->cd.arm.r[1] -= 12;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09315008)
++
++void arm_instr_multi_0x09205008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-2] = cpu->cd.arm.r[3];
++ p[-1] = cpu->cd.arm.r[12];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] -= 12;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09205008)
++
++void arm_instr_multi_0x08970300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[8] = p[0];
++ cpu->cd.arm.r[9] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08970300)
++
++void arm_instr_multi_0x08970030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08970030)
++
++void arm_instr_multi_0x08920030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08920030)
++
++void arm_instr_multi_0x08970600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[9] = p[0];
++ cpu->cd.arm.r[10] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08970600)
++
++void arm_instr_multi_0x08160060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[-1];
++ cpu->cd.arm.r[6] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08160060)
++
++void arm_instr_multi_0x08807ff0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfd4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ p[2] = cpu->cd.arm.r[6];
++ p[3] = cpu->cd.arm.r[7];
++ p[4] = cpu->cd.arm.r[8];
++ p[5] = cpu->cd.arm.r[9];
++ p[6] = cpu->cd.arm.r[10];
++ p[7] = cpu->cd.arm.r[11];
++ p[8] = cpu->cd.arm.r[12];
++ p[9] = cpu->cd.arm.r[13];
++ p[10] = cpu->cd.arm.r[14];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08807ff0)
++
++void arm_instr_multi_0x092d0070(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-2] = cpu->cd.arm.r[4];
++ p[-1] = cpu->cd.arm.r[5];
++ p[0] = cpu->cd.arm.r[6];
++ cpu->cd.arm.r[13] -= 12;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d0070)
++
++void arm_instr_multi_0x08bd0070(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[13] += 12;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd0070)
++
++void arm_instr_multi_0x08800180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[7];
++ p[1] = cpu->cd.arm.r[8];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08800180)
++
++void arm_instr_multi_0x088e000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[2];
++ p[1] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088e000c)
++
++void arm_instr_multi_0x088d0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d0030)
++
++void arm_instr_multi_0x08830003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08830003)
++
++void arm_instr_multi_0x089e0030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089e0030)
++
++void arm_instr_multi_0x091b6810(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b6810)
++
++void arm_instr_multi_0x08970180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[7];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[7] = p[0];
++ cpu->cd.arm.r[8] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08970180)
++
++void arm_instr_multi_0x0896000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0896000c)
++
++void arm_instr_multi_0x089200c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[7] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089200c0)
++
++void arm_instr_multi_0x088e00c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[6];
++ p[1] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088e00c0)
++
++void arm_instr_multi_0x08940012(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08940012)
++
++void arm_instr_multi_0x089100c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[7] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089100c0)
++
++void arm_instr_multi_0x0813000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[-1];
++ cpu->cd.arm.r[3] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0813000c)
++
++void arm_instr_multi_0x089c000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089c000c)
++
++void arm_instr_multi_0x09920003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09920003)
++
++void arm_instr_multi_0x08950060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[6] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08950060)
++
++void arm_instr_multi_0x09860006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09860006)
++
++void arm_instr_multi_0x088d4010(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[14];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d4010)
++
++void arm_instr_multi_0x09160006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[-1];
++ cpu->cd.arm.r[2] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09160006)
++
++void arm_instr_multi_0x08990600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[9] = p[0];
++ cpu->cd.arm.r[10] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08990600)
++
++void arm_instr_multi_0x08980006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08980006)
++
++void arm_instr_multi_0x091c0006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[-1];
++ cpu->cd.arm.r[2] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091c0006)
++
++void arm_instr_multi_0x080c0600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[9];
++ p[0] = cpu->cd.arm.r[10];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x080c0600)
++
++void arm_instr_multi_0x0894000a(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0894000a)
++
++void arm_instr_multi_0x09311038(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-3];
++ cpu->cd.arm.r[4] = p[-2];
++ cpu->cd.arm.r[5] = p[-1];
++ cpu->cd.arm.r[12] = p[0];
++ cpu->cd.arm.r[1] -= 16;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09311038)
++
++void arm_instr_multi_0x09205030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[4];
++ p[-2] = cpu->cd.arm.r[5];
++ p[-1] = cpu->cd.arm.r[12];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[0] -= 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09205030)
++
++void arm_instr_multi_0x08850018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[5];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08850018)
++
++void arm_instr_multi_0x09190300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[8] = p[-1];
++ cpu->cd.arm.r[9] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09190300)
++
++void arm_instr_multi_0x088d0180(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[7];
++ p[1] = cpu->cd.arm.r[8];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d0180)
++
++void arm_instr_multi_0x08980003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08980003)
++
++void arm_instr_multi_0x098d000e(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ p[2] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x098d000e)
++
++void arm_instr_multi_0x098c0006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[1];
++ p[1] = cpu->cd.arm.r[2];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x098c0006)
++
++void arm_instr_multi_0x09010018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[3];
++ p[0] = cpu->cd.arm.r[4];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09010018)
++
++void arm_instr_multi_0x09860030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x09860030)
++
++void arm_instr_multi_0x092d4400(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-1] = cpu->cd.arm.r[10];
++ p[0] = cpu->cd.arm.r[14];
++ cpu->cd.arm.r[13] -= 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d4400)
++
++void arm_instr_multi_0x08bd8400(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[10] = p[0];
++ cpu->pc = p[1];
++ cpu->cd.arm.r[13] += 8;
++ quick_pc_to_pointers(cpu);
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd8400)
++
++void arm_instr_multi_0x089e0060(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[5] = p[0];
++ cpu->cd.arm.r[6] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089e0060)
++
++void arm_instr_multi_0x088c00c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[3];
++ p[1] = cpu->cd.arm.r[6];
++ p[2] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088c00c8)
++
++void arm_instr_multi_0x0893000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[2] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x0893000c)
++
++void arm_instr_multi_0x09110003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[1];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[-1];
++ cpu->cd.arm.r[1] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09110003)
++
++void arm_instr_multi_0x08ac000f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ p[2] = cpu->cd.arm.r[2];
++ p[3] = cpu->cd.arm.r[3];
++ cpu->cd.arm.r[12] += 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08ac000f)
++
++void arm_instr_multi_0x08be000f(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[14];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ cpu->cd.arm.r[2] = p[2];
++ cpu->cd.arm.r[3] = p[3];
++ cpu->cd.arm.r[14] += 16;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08be000f)
++
++void arm_instr_multi_0x08940018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[4] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08940018)
++
++void arm_instr_multi_0x091b68f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[11];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x18 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[-6];
++ cpu->cd.arm.r[5] = p[-5];
++ cpu->cd.arm.r[6] = p[-4];
++ cpu->cd.arm.r[7] = p[-3];
++ cpu->cd.arm.r[11] = p[-2];
++ cpu->cd.arm.r[13] = p[-1];
++ cpu->cd.arm.r[14] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x091b68f0)
++
++void arm_instr_multi_0x09140018(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ addr -= 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0x4 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[-1];
++ cpu->cd.arm.r[4] = p[0];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09140018)
++
++void arm_instr_multi_0x08940009(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[4];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[3] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08940009)
++
++void arm_instr_multi_0x08bd41f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xfe8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[8] = p[4];
++ cpu->cd.arm.r[14] = p[5];
++ cpu->cd.arm.r[13] += 24;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd41f0)
++
++void arm_instr_multi_0x08a20600(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[9];
++ p[1] = cpu->cd.arm.r[10];
++ cpu->cd.arm.r[2] += 8;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08a20600)
++
++void arm_instr_multi_0x08990003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08990003)
++
++void arm_instr_multi_0x09904008(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[0];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[3] = p[0];
++ cpu->cd.arm.r[14] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x09904008)
++
++void arm_instr_multi_0x098c0003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[0];
++ p[1] = cpu->cd.arm.r[1];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x098c0003)
++
++void arm_instr_multi_0x088900c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[6];
++ p[1] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088900c0)
++
++void arm_instr_multi_0x088200c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[2];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[6];
++ p[1] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088200c0)
++
++void arm_instr_multi_0x088300c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[6];
++ p[1] = cpu->cd.arm.r[7];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088300c0)
++
++void arm_instr_multi_0x089300c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[3];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[6] = p[0];
++ cpu->cd.arm.r[7] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089300c0)
++
++void arm_instr_multi_0x092d00f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ addr -= 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr >= 0xc && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[-3] = cpu->cd.arm.r[4];
++ p[-2] = cpu->cd.arm.r[5];
++ p[-1] = cpu->cd.arm.r[6];
++ p[0] = cpu->cd.arm.r[7];
++ cpu->cd.arm.r[13] -= 16;
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x092d00f0)
++
++void arm_instr_multi_0x08bd00f0(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff0 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ cpu->cd.arm.r[6] = p[2];
++ cpu->cd.arm.r[7] = p[3];
++ cpu->cd.arm.r[13] += 16;
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08bd00f0)
++
++void arm_instr_multi_0x08960030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[6];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[4] = p[0];
++ cpu->cd.arm.r[5] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08960030)
++
++void arm_instr_multi_0x08980300(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[8];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[8] = p[0];
++ cpu->cd.arm.r[9] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08980300)
++
++void arm_instr_multi_0x089c5000(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[12];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[12] = p[0];
++ cpu->cd.arm.r[14] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x089c5000)
++
++void arm_instr_multi_0x088d1020(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[13];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[5];
++ p[1] = cpu->cd.arm.r[12];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x088d1020)
++
++void arm_instr_multi_0x08990006(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[1] = p[0];
++ cpu->cd.arm.r[2] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x08990006)
++
++void arm_instr_multi_0x08890030(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[4];
++ p[1] = cpu->cd.arm.r[5];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x08890030)
++
++void arm_instr_multi_0x099a0003(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[10];
++ addr += 4;
++ page = cpu->cd.arm.host_load[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ cpu->cd.arm.r[0] = p[0];
++ cpu->cd.arm.r[1] = p[1];
++ } else
++ instr(bdt_load)(cpu, ic);
++}
++Y(multi_0x099a0003)
++
++void arm_instr_multi_0x0989000c(struct cpu *cpu, struct arm_instr_call *ic) {
++ unsigned char *page;
++ uint32_t addr = cpu->cd.arm.r[9];
++ addr += 4;
++ page = cpu->cd.arm.host_store[addr >> 12];
++ addr &= 0xffc;
++ if (addr <= 0xff8 && page != NULL) {
++ uint32_t *p = (uint32_t *) (page + addr);
++ p[0] = cpu->cd.arm.r[2];
++ p[1] = cpu->cd.arm.r[3];
++ } else
++ instr(bdt_store)(cpu, ic);
++}
++Y(multi_0x0989000c)
++
++uint32_t multi_opcode_0[4] = {
++ 0x08020003,
++ 0x09201008,
++ 0x09205008,
++0 };
++
++uint32_t multi_opcode_1[1] = {
++0 };
++
++uint32_t multi_opcode_2[3] = {
++ 0x09205018,
++ 0x09205030,
++0 };
++
++uint32_t multi_opcode_3[1] = {
++0 };
++
++uint32_t multi_opcode_4[1] = {
++0 };
++
++uint32_t multi_opcode_5[1] = {
++0 };
++
++uint32_t multi_opcode_6[1] = {
++0 };
++
++uint32_t multi_opcode_7[1] = {
++0 };
++
++uint32_t multi_opcode_8[2] = {
++ 0x090a0300,
++0 };
++
++uint32_t multi_opcode_9[1] = {
++0 };
++
++uint32_t multi_opcode_10[1] = {
++0 };
++
++uint32_t multi_opcode_11[1] = {
++0 };
++
++uint32_t multi_opcode_12[1] = {
++0 };
++
++uint32_t multi_opcode_13[1] = {
++0 };
++
++uint32_t multi_opcode_14[1] = {
++0 };
++
++uint32_t multi_opcode_15[1] = {
++0 };
++
++uint32_t multi_opcode_16[1] = {
++0 };
++
++uint32_t multi_opcode_17[1] = {
++0 };
++
++uint32_t multi_opcode_18[2] = {
++ 0x09010018,
++0 };
++
++uint32_t multi_opcode_19[1] = {
++0 };
++
++uint32_t multi_opcode_20[1] = {
++0 };
++
++uint32_t multi_opcode_21[1] = {
++0 };
++
++uint32_t multi_opcode_22[1] = {
++0 };
++
++uint32_t multi_opcode_23[1] = {
++0 };
++
++uint32_t multi_opcode_24[1] = {
++0 };
++
++uint32_t multi_opcode_25[1] = {
++0 };
++
++uint32_t multi_opcode_26[1] = {
++0 };
++
++uint32_t multi_opcode_27[1] = {
++0 };
++
++uint32_t multi_opcode_28[1] = {
++0 };
++
++uint32_t multi_opcode_29[1] = {
++0 };
++
++uint32_t multi_opcode_30[1] = {
++0 };
++
++uint32_t multi_opcode_31[1] = {
++0 };
++
++uint32_t multi_opcode_32[4] = {
++ 0x09040003,
++ 0x080c0003,
++ 0x080c0600,
++0 };
++
++uint32_t multi_opcode_33[3] = {
++ 0x08040006,
++ 0x0804000c,
++0 };
++
++uint32_t multi_opcode_34[2] = {
++ 0x080c0030,
++0 };
++
++uint32_t multi_opcode_35[1] = {
++0 };
++
++uint32_t multi_opcode_36[1] = {
++0 };
++
++uint32_t multi_opcode_37[1] = {
++0 };
++
++uint32_t multi_opcode_38[1] = {
++0 };
++
++uint32_t multi_opcode_39[1] = {
++0 };
++
++uint32_t multi_opcode_40[1] = {
++0 };
++
++uint32_t multi_opcode_41[1] = {
++0 };
++
++uint32_t multi_opcode_42[1] = {
++0 };
++
++uint32_t multi_opcode_43[1] = {
++0 };
++
++uint32_t multi_opcode_44[1] = {
++0 };
++
++uint32_t multi_opcode_45[1] = {
++0 };
++
++uint32_t multi_opcode_46[1] = {
++0 };
++
++uint32_t multi_opcode_47[1] = {
++0 };
++
++uint32_t multi_opcode_48[6] = {
++ 0x092d4000,
++ 0x092dd800,
++ 0x092d4001,
++ 0x092ddc00,
++ 0x092d4400,
++0 };
++
++uint32_t multi_opcode_49[2] = {
++ 0x090d000f,
++0 };
++
++uint32_t multi_opcode_50[8] = {
++ 0x092dd830,
++ 0x092dd810,
++ 0x092d4010,
++ 0x092d4030,
++ 0x092ddc30,
++ 0x092d0030,
++ 0x092d0010,
++0 };
++
++uint32_t multi_opcode_51[2] = {
++ 0x092d0c1f,
++0 };
++
++uint32_t multi_opcode_52[1] = {
++0 };
++
++uint32_t multi_opcode_53[1] = {
++0 };
++
++uint32_t multi_opcode_54[9] = {
++ 0x092dd8f0,
++ 0x092dd870,
++ 0x092d4070,
++ 0x092ddc70,
++ 0x092ddcf0,
++ 0x092d40f0,
++ 0x092d0070,
++ 0x092d00f0,
++0 };
++
++uint32_t multi_opcode_55[1] = {
++0 };
++
++uint32_t multi_opcode_56[1] = {
++0 };
++
++uint32_t multi_opcode_57[1] = {
++0 };
++
++uint32_t multi_opcode_58[1] = {
++0 };
++
++uint32_t multi_opcode_59[1] = {
++0 };
++
++uint32_t multi_opcode_60[1] = {
++0 };
++
++uint32_t multi_opcode_61[1] = {
++0 };
++
++uint32_t multi_opcode_62[9] = {
++ 0x092ddff0,
++ 0x092dddf0,
++ 0x092dd9f0,
++ 0x092d41f0,
++ 0x092ddbf0,
++ 0x092d0ff0,
++ 0x092d47f0,
++ 0x092d45f0,
++0 };
++
++uint32_t multi_opcode_63[1] = {
++0 };
++
++uint32_t multi_opcode_64[3] = {
++ 0x08100009,
++ 0x091a0600,
++0 };
++
++uint32_t multi_opcode_65[2] = {
++ 0x09120006,
++0 };
++
++uint32_t multi_opcode_66[1] = {
++0 };
++
++uint32_t multi_opcode_67[1] = {
++0 };
++
++uint32_t multi_opcode_68[1] = {
++0 };
++
++uint32_t multi_opcode_69[1] = {
++0 };
++
++uint32_t multi_opcode_70[1] = {
++0 };
++
++uint32_t multi_opcode_71[1] = {
++0 };
++
++uint32_t multi_opcode_72[1] = {
++0 };
++
++uint32_t multi_opcode_73[1] = {
++0 };
++
++uint32_t multi_opcode_74[1] = {
++0 };
++
++uint32_t multi_opcode_75[1] = {
++0 };
++
++uint32_t multi_opcode_76[1] = {
++0 };
++
++uint32_t multi_opcode_77[1] = {
++0 };
++
++uint32_t multi_opcode_78[1] = {
++0 };
++
++uint32_t multi_opcode_79[1] = {
++0 };
++
++uint32_t multi_opcode_80[9] = {
++ 0x08110003,
++ 0x091ba800,
++ 0x091b6800,
++ 0x08130003,
++ 0x091bac00,
++ 0x09311008,
++ 0x09315008,
++ 0x09110003,
++0 };
++
++uint32_t multi_opcode_81[3] = {
++ 0x0911000f,
++ 0x0813000c,
++0 };
++
++uint32_t multi_opcode_82[9] = {
++ 0x091ba830,
++ 0x091ba810,
++ 0x08130018,
++ 0x091b6830,
++ 0x091bac30,
++ 0x09315018,
++ 0x091b6810,
++ 0x09311038,
++0 };
++
++uint32_t multi_opcode_83[1] = {
++0 };
++
++uint32_t multi_opcode_84[1] = {
++0 };
++
++uint32_t multi_opcode_85[1] = {
++0 };
++
++uint32_t multi_opcode_86[7] = {
++ 0x091ba8f0,
++ 0x091ba870,
++ 0x091bac70,
++ 0x091bacf0,
++ 0x091b6870,
++ 0x091b68f0,
++0 };
++
++uint32_t multi_opcode_87[1] = {
++0 };
++
++uint32_t multi_opcode_88[2] = {
++ 0x09190300,
++0 };
++
++uint32_t multi_opcode_89[1] = {
++0 };
++
++uint32_t multi_opcode_90[1] = {
++0 };
++
++uint32_t multi_opcode_91[1] = {
++0 };
++
++uint32_t multi_opcode_92[1] = {
++0 };
++
++uint32_t multi_opcode_93[1] = {
++0 };
++
++uint32_t multi_opcode_94[8] = {
++ 0x091baff0,
++ 0x091badf0,
++ 0x091ba9f0,
++ 0x091b6ff0,
++ 0x091babf0,
++ 0x091b69f0,
++ 0x091b6df0,
++0 };
++
++uint32_t multi_opcode_95[1] = {
++0 };
++
++uint32_t multi_opcode_96[1] = {
++0 };
++
++uint32_t multi_opcode_97[3] = {
++ 0x09160006,
++ 0x091c0006,
++0 };
++
++uint32_t multi_opcode_98[2] = {
++ 0x09140018,
++0 };
++
++uint32_t multi_opcode_99[1] = {
++0 };
++
++uint32_t multi_opcode_100[3] = {
++ 0x09160060,
++ 0x08160060,
++0 };
++
++uint32_t multi_opcode_101[1] = {
++0 };
++
++uint32_t multi_opcode_102[1] = {
++0 };
++
++uint32_t multi_opcode_103[1] = {
++0 };
++
++uint32_t multi_opcode_104[1] = {
++0 };
++
++uint32_t multi_opcode_105[1] = {
++0 };
++
++uint32_t multi_opcode_106[1] = {
++0 };
++
++uint32_t multi_opcode_107[1] = {
++0 };
++
++uint32_t multi_opcode_108[1] = {
++0 };
++
++uint32_t multi_opcode_109[1] = {
++0 };
++
++uint32_t multi_opcode_110[1] = {
++0 };
++
++uint32_t multi_opcode_111[1] = {
++0 };
++
++uint32_t multi_opcode_112[2] = {
++ 0x08150003,
++0 };
++
++uint32_t multi_opcode_113[3] = {
++ 0x0817000c,
++ 0x09150006,
++0 };
++
++uint32_t multi_opcode_114[2] = {
++ 0x09150018,
++0 };
++
++uint32_t multi_opcode_115[1] = {
++0 };
++
++uint32_t multi_opcode_116[1] = {
++0 };
++
++uint32_t multi_opcode_117[1] = {
++0 };
++
++uint32_t multi_opcode_118[1] = {
++0 };
++
++uint32_t multi_opcode_119[1] = {
++0 };
++
++uint32_t multi_opcode_120[1] = {
++0 };
++
++uint32_t multi_opcode_121[1] = {
++0 };
++
++uint32_t multi_opcode_122[1] = {
++0 };
++
++uint32_t multi_opcode_123[1] = {
++0 };
++
++uint32_t multi_opcode_124[1] = {
++0 };
++
++uint32_t multi_opcode_125[1] = {
++0 };
++
++uint32_t multi_opcode_126[1] = {
++0 };
++
++uint32_t multi_opcode_127[1] = {
++0 };
++
++uint32_t multi_opcode_128[5] = {
++ 0x08820003,
++ 0x08a01008,
++ 0x08a05008,
++ 0x08a20600,
++0 };
++
++uint32_t multi_opcode_129[3] = {
++ 0x08800006,
++ 0x08880006,
++0 };
++
++uint32_t multi_opcode_130[7] = {
++ 0x08820018,
++ 0x08a05018,
++ 0x08880018,
++ 0x08820030,
++ 0x08800018,
++ 0x08800030,
++0 };
++
++uint32_t multi_opcode_131[1] = {
++0 };
++
++uint32_t multi_opcode_132[2] = {
++ 0x088200c0,
++0 };
++
++uint32_t multi_opcode_133[1] = {
++0 };
++
++uint32_t multi_opcode_134[1] = {
++0 };
++
++uint32_t multi_opcode_135[1] = {
++0 };
++
++uint32_t multi_opcode_136[3] = {
++ 0x08820180,
++ 0x08800180,
++0 };
++
++uint32_t multi_opcode_137[1] = {
++0 };
++
++uint32_t multi_opcode_138[1] = {
++0 };
++
++uint32_t multi_opcode_139[1] = {
++0 };
++
++uint32_t multi_opcode_140[1] = {
++0 };
++
++uint32_t multi_opcode_141[1] = {
++0 };
++
++uint32_t multi_opcode_142[3] = {
++ 0x08a051f8,
++ 0x08807ff0,
++0 };
++
++uint32_t multi_opcode_143[1] = {
++0 };
++
++uint32_t multi_opcode_144[5] = {
++ 0x08830600,
++ 0x08810600,
++ 0x098b0003,
++ 0x08830003,
++0 };
++
++uint32_t multi_opcode_145[5] = {
++ 0x08830006,
++ 0x08890006,
++ 0x09830006,
++ 0x0989000c,
++0 };
++
++uint32_t multi_opcode_146[4] = {
++ 0x08810018,
++ 0x08830030,
++ 0x08890030,
++0 };
++
++uint32_t multi_opcode_147[1] = {
++0 };
++
++uint32_t multi_opcode_148[5] = {
++ 0x08830060,
++ 0x08a100c0,
++ 0x088900c0,
++ 0x088300c0,
++0 };
++
++uint32_t multi_opcode_149[1] = {
++0 };
++
++uint32_t multi_opcode_150[1] = {
++0 };
++
++uint32_t multi_opcode_151[1] = {
++0 };
++
++uint32_t multi_opcode_152[4] = {
++ 0x08a10300,
++ 0x08a10f00,
++ 0x08830300,
++0 };
++
++uint32_t multi_opcode_153[1] = {
++0 };
++
++uint32_t multi_opcode_154[1] = {
++0 };
++
++uint32_t multi_opcode_155[1] = {
++0 };
++
++uint32_t multi_opcode_156[1] = {
++0 };
++
++uint32_t multi_opcode_157[1] = {
++0 };
++
++uint32_t multi_opcode_158[2] = {
++ 0x08a151f8,
++0 };
++
++uint32_t multi_opcode_159[1] = {
++0 };
++
++uint32_t multi_opcode_160[6] = {
++ 0x08840003,
++ 0x088e1002,
++ 0x08840600,
++ 0x088c0003,
++ 0x098c0003,
++0 };
++
++uint32_t multi_opcode_161[8] = {
++ 0x08ac000c,
++ 0x088c0006,
++ 0x08860006,
++ 0x088e000c,
++ 0x09860006,
++ 0x098c0006,
++ 0x08ac000f,
++0 };
++
++uint32_t multi_opcode_162[4] = {
++ 0x088e0018,
++ 0x088c0018,
++ 0x09860030,
++0 };
++
++uint32_t multi_opcode_163[1] = {
++0 };
++
++uint32_t multi_opcode_164[4] = {
++ 0x088c0060,
++ 0x088e00c0,
++ 0x088c00c8,
++0 };
++
++uint32_t multi_opcode_165[1] = {
++0 };
++
++uint32_t multi_opcode_166[1] = {
++0 };
++
++uint32_t multi_opcode_167[1] = {
++0 };
++
++uint32_t multi_opcode_168[1] = {
++0 };
++
++uint32_t multi_opcode_169[1] = {
++0 };
++
++uint32_t multi_opcode_170[1] = {
++0 };
++
++uint32_t multi_opcode_171[1] = {
++0 };
++
++uint32_t multi_opcode_172[1] = {
++0 };
++
++uint32_t multi_opcode_173[1] = {
++0 };
++
++uint32_t multi_opcode_174[1] = {
++0 };
++
++uint32_t multi_opcode_175[1] = {
++0 };
++
++uint32_t multi_opcode_176[4] = {
++ 0x08850003,
++ 0x088d0088,
++ 0x088d1020,
++0 };
++
++uint32_t multi_opcode_177[5] = {
++ 0x08850006,
++ 0x08870006,
++ 0x0885000c,
++ 0x098d000e,
++0 };
++
++uint32_t multi_opcode_178[7] = {
++ 0x09870018,
++ 0x098d0030,
++ 0x088d1010,
++ 0x088d0030,
++ 0x088d4010,
++ 0x08850018,
++0 };
++
++uint32_t multi_opcode_179[2] = {
++ 0x09850014,
++0 };
++
++uint32_t multi_opcode_180[1] = {
++0 };
++
++uint32_t multi_opcode_181[1] = {
++0 };
++
++uint32_t multi_opcode_182[1] = {
++0 };
++
++uint32_t multi_opcode_183[1] = {
++0 };
++
++uint32_t multi_opcode_184[3] = {
++ 0x088d1100,
++ 0x088d0180,
++0 };
++
++uint32_t multi_opcode_185[1] = {
++0 };
++
++uint32_t multi_opcode_186[1] = {
++0 };
++
++uint32_t multi_opcode_187[1] = {
++0 };
++
++uint32_t multi_opcode_188[1] = {
++0 };
++
++uint32_t multi_opcode_189[1] = {
++0 };
++
++uint32_t multi_opcode_190[1] = {
++0 };
++
++uint32_t multi_opcode_191[2] = {
++ 0x088d1fff,
++0 };
++
++uint32_t multi_opcode_192[7] = {
++ 0x08920003,
++ 0x08900003,
++ 0x09920003,
++ 0x08980003,
++ 0x09904008,
++ 0x099a0003,
++0 };
++
++uint32_t multi_opcode_193[5] = {
++ 0x08900006,
++ 0x0892000c,
++ 0x08920006,
++ 0x08980006,
++0 };
++
++uint32_t multi_opcode_194[6] = {
++ 0x08920018,
++ 0x08980018,
++ 0x08900018,
++ 0x09900018,
++ 0x08920030,
++0 };
++
++uint32_t multi_opcode_195[1] = {
++0 };
++
++uint32_t multi_opcode_196[5] = {
++ 0x08b000c0,
++ 0x08980060,
++ 0x08900060,
++ 0x089200c0,
++0 };
++
++uint32_t multi_opcode_197[1] = {
++0 };
++
++uint32_t multi_opcode_198[1] = {
++0 };
++
++uint32_t multi_opcode_199[1] = {
++0 };
++
++uint32_t multi_opcode_200[4] = {
++ 0x08b00300,
++ 0x09900120,
++ 0x08980300,
++0 };
++
++uint32_t multi_opcode_201[1] = {
++0 };
++
++uint32_t multi_opcode_202[1] = {
++0 };
++
++uint32_t multi_opcode_203[1] = {
++0 };
++
++uint32_t multi_opcode_204[2] = {
++ 0x08b00fc0,
++0 };
++
++uint32_t multi_opcode_205[1] = {
++0 };
++
++uint32_t multi_opcode_206[2] = {
++ 0x08b051f8,
++0 };
++
++uint32_t multi_opcode_207[1] = {
++0 };
++
++uint32_t multi_opcode_208[9] = {
++ 0x08930003,
++ 0x08910003,
++ 0x08930600,
++ 0x08b11008,
++ 0x08b15008,
++ 0x08931008,
++ 0x08990600,
++ 0x08990003,
++0 };
++
++uint32_t multi_opcode_209[7] = {
++ 0x08930006,
++ 0x0891000e,
++ 0x08910006,
++ 0x09930006,
++ 0x0893000c,
++ 0x08990006,
++0 };
++
++uint32_t multi_opcode_210[6] = {
++ 0x08b15018,
++ 0x08930018,
++ 0x099b0030,
++ 0x08910030,
++ 0x08990018,
++0 };
++
++uint32_t multi_opcode_211[1] = {
++0 };
++
++uint32_t multi_opcode_212[4] = {
++ 0x08930060,
++ 0x089100c0,
++ 0x089300c0,
++0 };
++
++uint32_t multi_opcode_213[1] = {
++0 };
++
++uint32_t multi_opcode_214[1] = {
++0 };
++
++uint32_t multi_opcode_215[1] = {
++0 };
++
++uint32_t multi_opcode_216[3] = {
++ 0x08930180,
++ 0x099b0180,
++0 };
++
++uint32_t multi_opcode_217[1] = {
++0 };
++
++uint32_t multi_opcode_218[1] = {
++0 };
++
++uint32_t multi_opcode_219[1] = {
++0 };
++
++uint32_t multi_opcode_220[1] = {
++0 };
++
++uint32_t multi_opcode_221[1] = {
++0 };
++
++uint32_t multi_opcode_222[1] = {
++0 };
++
++uint32_t multi_opcode_223[1] = {
++0 };
++
++uint32_t multi_opcode_224[6] = {
++ 0x08940003,
++ 0x089e000a,
++ 0x0894000a,
++ 0x08940009,
++ 0x089c5000,
++0 };
++
++uint32_t multi_opcode_225[6] = {
++ 0x0894000c,
++ 0x089c0006,
++ 0x0896000c,
++ 0x089c000c,
++ 0x08be000f,
++0 };
++
++uint32_t multi_opcode_226[8] = {
++ 0x089e0018,
++ 0x09940018,
++ 0x089c0018,
++ 0x089e0030,
++ 0x08940012,
++ 0x08940018,
++ 0x08960030,
++0 };
++
++uint32_t multi_opcode_227[1] = {
++0 };
++
++uint32_t multi_opcode_228[2] = {
++ 0x089e0060,
++0 };
++
++uint32_t multi_opcode_229[1] = {
++0 };
++
++uint32_t multi_opcode_230[1] = {
++0 };
++
++uint32_t multi_opcode_231[1] = {
++0 };
++
++uint32_t multi_opcode_232[3] = {
++ 0x099c0180,
++ 0x089c0300,
++0 };
++
++uint32_t multi_opcode_233[1] = {
++0 };
++
++uint32_t multi_opcode_234[1] = {
++0 };
++
++uint32_t multi_opcode_235[1] = {
++0 };
++
++uint32_t multi_opcode_236[1] = {
++0 };
++
++uint32_t multi_opcode_237[1] = {
++0 };
++
++uint32_t multi_opcode_238[1] = {
++0 };
++
++uint32_t multi_opcode_239[1] = {
++0 };
++
++uint32_t multi_opcode_240[7] = {
++ 0x08bd8000,
++ 0x08bd8001,
++ 0x08950003,
++ 0x08bd0400,
++ 0x08970600,
++ 0x08bd8400,
++0 };
++
++uint32_t multi_opcode_241[3] = {
++ 0x08950006,
++ 0x08970006,
++0 };
++
++uint32_t multi_opcode_242[8] = {
++ 0x08bd8010,
++ 0x08bd8030,
++ 0x08bd0030,
++ 0x08bd0010,
++ 0x08bd4010,
++ 0x08950030,
++ 0x08970030,
++0 };
++
++uint32_t multi_opcode_243[2] = {
++ 0x08bd4c1f,
++0 };
++
++uint32_t multi_opcode_244[3] = {
++ 0x08971040,
++ 0x08950060,
++0 };
++
++uint32_t multi_opcode_245[1] = {
++0 };
++
++uint32_t multi_opcode_246[6] = {
++ 0x08bd8070,
++ 0x08bd40f0,
++ 0x08bd80f0,
++ 0x08bd0070,
++ 0x08bd00f0,
++0 };
++
++uint32_t multi_opcode_247[1] = {
++0 };
++
++uint32_t multi_opcode_248[3] = {
++ 0x08970300,
++ 0x08970180,
++0 };
++
++uint32_t multi_opcode_249[1] = {
++0 };
++
++uint32_t multi_opcode_250[1] = {
++0 };
++
++uint32_t multi_opcode_251[1] = {
++0 };
++
++uint32_t multi_opcode_252[1] = {
++0 };
++
++uint32_t multi_opcode_253[1] = {
++0 };
++
++uint32_t multi_opcode_254[6] = {
++ 0x08bd81f0,
++ 0x08bd0ff0,
++ 0x08bd87f0,
++ 0x08bd85f0,
++ 0x08bd41f0,
++0 };
++
++uint32_t multi_opcode_255[1] = {
++0 };
++void (*multi_opcode_f_0[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08020003__eq,
++ arm_instr_multi_0x08020003__ne,
++ arm_instr_multi_0x08020003__cs,
++ arm_instr_multi_0x08020003__cc,
++ arm_instr_multi_0x08020003__mi,
++ arm_instr_multi_0x08020003__pl,
++ arm_instr_multi_0x08020003__vs,
++ arm_instr_multi_0x08020003__vc,
++ arm_instr_multi_0x08020003__hi,
++ arm_instr_multi_0x08020003__ls,
++ arm_instr_multi_0x08020003__ge,
++ arm_instr_multi_0x08020003__lt,
++ arm_instr_multi_0x08020003__gt,
++ arm_instr_multi_0x08020003__le,
++ arm_instr_multi_0x08020003,
++ arm_instr_nop,
++ arm_instr_multi_0x09201008__eq,
++ arm_instr_multi_0x09201008__ne,
++ arm_instr_multi_0x09201008__cs,
++ arm_instr_multi_0x09201008__cc,
++ arm_instr_multi_0x09201008__mi,
++ arm_instr_multi_0x09201008__pl,
++ arm_instr_multi_0x09201008__vs,
++ arm_instr_multi_0x09201008__vc,
++ arm_instr_multi_0x09201008__hi,
++ arm_instr_multi_0x09201008__ls,
++ arm_instr_multi_0x09201008__ge,
++ arm_instr_multi_0x09201008__lt,
++ arm_instr_multi_0x09201008__gt,
++ arm_instr_multi_0x09201008__le,
++ arm_instr_multi_0x09201008,
++ arm_instr_nop,
++ arm_instr_multi_0x09205008__eq,
++ arm_instr_multi_0x09205008__ne,
++ arm_instr_multi_0x09205008__cs,
++ arm_instr_multi_0x09205008__cc,
++ arm_instr_multi_0x09205008__mi,
++ arm_instr_multi_0x09205008__pl,
++ arm_instr_multi_0x09205008__vs,
++ arm_instr_multi_0x09205008__vc,
++ arm_instr_multi_0x09205008__hi,
++ arm_instr_multi_0x09205008__ls,
++ arm_instr_multi_0x09205008__ge,
++ arm_instr_multi_0x09205008__lt,
++ arm_instr_multi_0x09205008__gt,
++ arm_instr_multi_0x09205008__le,
++ arm_instr_multi_0x09205008,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_2[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09205018__eq,
++ arm_instr_multi_0x09205018__ne,
++ arm_instr_multi_0x09205018__cs,
++ arm_instr_multi_0x09205018__cc,
++ arm_instr_multi_0x09205018__mi,
++ arm_instr_multi_0x09205018__pl,
++ arm_instr_multi_0x09205018__vs,
++ arm_instr_multi_0x09205018__vc,
++ arm_instr_multi_0x09205018__hi,
++ arm_instr_multi_0x09205018__ls,
++ arm_instr_multi_0x09205018__ge,
++ arm_instr_multi_0x09205018__lt,
++ arm_instr_multi_0x09205018__gt,
++ arm_instr_multi_0x09205018__le,
++ arm_instr_multi_0x09205018,
++ arm_instr_nop,
++ arm_instr_multi_0x09205030__eq,
++ arm_instr_multi_0x09205030__ne,
++ arm_instr_multi_0x09205030__cs,
++ arm_instr_multi_0x09205030__cc,
++ arm_instr_multi_0x09205030__mi,
++ arm_instr_multi_0x09205030__pl,
++ arm_instr_multi_0x09205030__vs,
++ arm_instr_multi_0x09205030__vc,
++ arm_instr_multi_0x09205030__hi,
++ arm_instr_multi_0x09205030__ls,
++ arm_instr_multi_0x09205030__ge,
++ arm_instr_multi_0x09205030__lt,
++ arm_instr_multi_0x09205030__gt,
++ arm_instr_multi_0x09205030__le,
++ arm_instr_multi_0x09205030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_8[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x090a0300__eq,
++ arm_instr_multi_0x090a0300__ne,
++ arm_instr_multi_0x090a0300__cs,
++ arm_instr_multi_0x090a0300__cc,
++ arm_instr_multi_0x090a0300__mi,
++ arm_instr_multi_0x090a0300__pl,
++ arm_instr_multi_0x090a0300__vs,
++ arm_instr_multi_0x090a0300__vc,
++ arm_instr_multi_0x090a0300__hi,
++ arm_instr_multi_0x090a0300__ls,
++ arm_instr_multi_0x090a0300__ge,
++ arm_instr_multi_0x090a0300__lt,
++ arm_instr_multi_0x090a0300__gt,
++ arm_instr_multi_0x090a0300__le,
++ arm_instr_multi_0x090a0300,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_18[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09010018__eq,
++ arm_instr_multi_0x09010018__ne,
++ arm_instr_multi_0x09010018__cs,
++ arm_instr_multi_0x09010018__cc,
++ arm_instr_multi_0x09010018__mi,
++ arm_instr_multi_0x09010018__pl,
++ arm_instr_multi_0x09010018__vs,
++ arm_instr_multi_0x09010018__vc,
++ arm_instr_multi_0x09010018__hi,
++ arm_instr_multi_0x09010018__ls,
++ arm_instr_multi_0x09010018__ge,
++ arm_instr_multi_0x09010018__lt,
++ arm_instr_multi_0x09010018__gt,
++ arm_instr_multi_0x09010018__le,
++ arm_instr_multi_0x09010018,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_32[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09040003__eq,
++ arm_instr_multi_0x09040003__ne,
++ arm_instr_multi_0x09040003__cs,
++ arm_instr_multi_0x09040003__cc,
++ arm_instr_multi_0x09040003__mi,
++ arm_instr_multi_0x09040003__pl,
++ arm_instr_multi_0x09040003__vs,
++ arm_instr_multi_0x09040003__vc,
++ arm_instr_multi_0x09040003__hi,
++ arm_instr_multi_0x09040003__ls,
++ arm_instr_multi_0x09040003__ge,
++ arm_instr_multi_0x09040003__lt,
++ arm_instr_multi_0x09040003__gt,
++ arm_instr_multi_0x09040003__le,
++ arm_instr_multi_0x09040003,
++ arm_instr_nop,
++ arm_instr_multi_0x080c0003__eq,
++ arm_instr_multi_0x080c0003__ne,
++ arm_instr_multi_0x080c0003__cs,
++ arm_instr_multi_0x080c0003__cc,
++ arm_instr_multi_0x080c0003__mi,
++ arm_instr_multi_0x080c0003__pl,
++ arm_instr_multi_0x080c0003__vs,
++ arm_instr_multi_0x080c0003__vc,
++ arm_instr_multi_0x080c0003__hi,
++ arm_instr_multi_0x080c0003__ls,
++ arm_instr_multi_0x080c0003__ge,
++ arm_instr_multi_0x080c0003__lt,
++ arm_instr_multi_0x080c0003__gt,
++ arm_instr_multi_0x080c0003__le,
++ arm_instr_multi_0x080c0003,
++ arm_instr_nop,
++ arm_instr_multi_0x080c0600__eq,
++ arm_instr_multi_0x080c0600__ne,
++ arm_instr_multi_0x080c0600__cs,
++ arm_instr_multi_0x080c0600__cc,
++ arm_instr_multi_0x080c0600__mi,
++ arm_instr_multi_0x080c0600__pl,
++ arm_instr_multi_0x080c0600__vs,
++ arm_instr_multi_0x080c0600__vc,
++ arm_instr_multi_0x080c0600__hi,
++ arm_instr_multi_0x080c0600__ls,
++ arm_instr_multi_0x080c0600__ge,
++ arm_instr_multi_0x080c0600__lt,
++ arm_instr_multi_0x080c0600__gt,
++ arm_instr_multi_0x080c0600__le,
++ arm_instr_multi_0x080c0600,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_33[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08040006__eq,
++ arm_instr_multi_0x08040006__ne,
++ arm_instr_multi_0x08040006__cs,
++ arm_instr_multi_0x08040006__cc,
++ arm_instr_multi_0x08040006__mi,
++ arm_instr_multi_0x08040006__pl,
++ arm_instr_multi_0x08040006__vs,
++ arm_instr_multi_0x08040006__vc,
++ arm_instr_multi_0x08040006__hi,
++ arm_instr_multi_0x08040006__ls,
++ arm_instr_multi_0x08040006__ge,
++ arm_instr_multi_0x08040006__lt,
++ arm_instr_multi_0x08040006__gt,
++ arm_instr_multi_0x08040006__le,
++ arm_instr_multi_0x08040006,
++ arm_instr_nop,
++ arm_instr_multi_0x0804000c__eq,
++ arm_instr_multi_0x0804000c__ne,
++ arm_instr_multi_0x0804000c__cs,
++ arm_instr_multi_0x0804000c__cc,
++ arm_instr_multi_0x0804000c__mi,
++ arm_instr_multi_0x0804000c__pl,
++ arm_instr_multi_0x0804000c__vs,
++ arm_instr_multi_0x0804000c__vc,
++ arm_instr_multi_0x0804000c__hi,
++ arm_instr_multi_0x0804000c__ls,
++ arm_instr_multi_0x0804000c__ge,
++ arm_instr_multi_0x0804000c__lt,
++ arm_instr_multi_0x0804000c__gt,
++ arm_instr_multi_0x0804000c__le,
++ arm_instr_multi_0x0804000c,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_34[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x080c0030__eq,
++ arm_instr_multi_0x080c0030__ne,
++ arm_instr_multi_0x080c0030__cs,
++ arm_instr_multi_0x080c0030__cc,
++ arm_instr_multi_0x080c0030__mi,
++ arm_instr_multi_0x080c0030__pl,
++ arm_instr_multi_0x080c0030__vs,
++ arm_instr_multi_0x080c0030__vc,
++ arm_instr_multi_0x080c0030__hi,
++ arm_instr_multi_0x080c0030__ls,
++ arm_instr_multi_0x080c0030__ge,
++ arm_instr_multi_0x080c0030__lt,
++ arm_instr_multi_0x080c0030__gt,
++ arm_instr_multi_0x080c0030__le,
++ arm_instr_multi_0x080c0030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_48[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x092d4000__eq,
++ arm_instr_multi_0x092d4000__ne,
++ arm_instr_multi_0x092d4000__cs,
++ arm_instr_multi_0x092d4000__cc,
++ arm_instr_multi_0x092d4000__mi,
++ arm_instr_multi_0x092d4000__pl,
++ arm_instr_multi_0x092d4000__vs,
++ arm_instr_multi_0x092d4000__vc,
++ arm_instr_multi_0x092d4000__hi,
++ arm_instr_multi_0x092d4000__ls,
++ arm_instr_multi_0x092d4000__ge,
++ arm_instr_multi_0x092d4000__lt,
++ arm_instr_multi_0x092d4000__gt,
++ arm_instr_multi_0x092d4000__le,
++ arm_instr_multi_0x092d4000,
++ arm_instr_nop,
++ arm_instr_multi_0x092dd800__eq,
++ arm_instr_multi_0x092dd800__ne,
++ arm_instr_multi_0x092dd800__cs,
++ arm_instr_multi_0x092dd800__cc,
++ arm_instr_multi_0x092dd800__mi,
++ arm_instr_multi_0x092dd800__pl,
++ arm_instr_multi_0x092dd800__vs,
++ arm_instr_multi_0x092dd800__vc,
++ arm_instr_multi_0x092dd800__hi,
++ arm_instr_multi_0x092dd800__ls,
++ arm_instr_multi_0x092dd800__ge,
++ arm_instr_multi_0x092dd800__lt,
++ arm_instr_multi_0x092dd800__gt,
++ arm_instr_multi_0x092dd800__le,
++ arm_instr_multi_0x092dd800,
++ arm_instr_nop,
++ arm_instr_multi_0x092d4001__eq,
++ arm_instr_multi_0x092d4001__ne,
++ arm_instr_multi_0x092d4001__cs,
++ arm_instr_multi_0x092d4001__cc,
++ arm_instr_multi_0x092d4001__mi,
++ arm_instr_multi_0x092d4001__pl,
++ arm_instr_multi_0x092d4001__vs,
++ arm_instr_multi_0x092d4001__vc,
++ arm_instr_multi_0x092d4001__hi,
++ arm_instr_multi_0x092d4001__ls,
++ arm_instr_multi_0x092d4001__ge,
++ arm_instr_multi_0x092d4001__lt,
++ arm_instr_multi_0x092d4001__gt,
++ arm_instr_multi_0x092d4001__le,
++ arm_instr_multi_0x092d4001,
++ arm_instr_nop,
++ arm_instr_multi_0x092ddc00__eq,
++ arm_instr_multi_0x092ddc00__ne,
++ arm_instr_multi_0x092ddc00__cs,
++ arm_instr_multi_0x092ddc00__cc,
++ arm_instr_multi_0x092ddc00__mi,
++ arm_instr_multi_0x092ddc00__pl,
++ arm_instr_multi_0x092ddc00__vs,
++ arm_instr_multi_0x092ddc00__vc,
++ arm_instr_multi_0x092ddc00__hi,
++ arm_instr_multi_0x092ddc00__ls,
++ arm_instr_multi_0x092ddc00__ge,
++ arm_instr_multi_0x092ddc00__lt,
++ arm_instr_multi_0x092ddc00__gt,
++ arm_instr_multi_0x092ddc00__le,
++ arm_instr_multi_0x092ddc00,
++ arm_instr_nop,
++ arm_instr_multi_0x092d4400__eq,
++ arm_instr_multi_0x092d4400__ne,
++ arm_instr_multi_0x092d4400__cs,
++ arm_instr_multi_0x092d4400__cc,
++ arm_instr_multi_0x092d4400__mi,
++ arm_instr_multi_0x092d4400__pl,
++ arm_instr_multi_0x092d4400__vs,
++ arm_instr_multi_0x092d4400__vc,
++ arm_instr_multi_0x092d4400__hi,
++ arm_instr_multi_0x092d4400__ls,
++ arm_instr_multi_0x092d4400__ge,
++ arm_instr_multi_0x092d4400__lt,
++ arm_instr_multi_0x092d4400__gt,
++ arm_instr_multi_0x092d4400__le,
++ arm_instr_multi_0x092d4400,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_49[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x090d000f__eq,
++ arm_instr_multi_0x090d000f__ne,
++ arm_instr_multi_0x090d000f__cs,
++ arm_instr_multi_0x090d000f__cc,
++ arm_instr_multi_0x090d000f__mi,
++ arm_instr_multi_0x090d000f__pl,
++ arm_instr_multi_0x090d000f__vs,
++ arm_instr_multi_0x090d000f__vc,
++ arm_instr_multi_0x090d000f__hi,
++ arm_instr_multi_0x090d000f__ls,
++ arm_instr_multi_0x090d000f__ge,
++ arm_instr_multi_0x090d000f__lt,
++ arm_instr_multi_0x090d000f__gt,
++ arm_instr_multi_0x090d000f__le,
++ arm_instr_multi_0x090d000f,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_50[112])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x092dd830__eq,
++ arm_instr_multi_0x092dd830__ne,
++ arm_instr_multi_0x092dd830__cs,
++ arm_instr_multi_0x092dd830__cc,
++ arm_instr_multi_0x092dd830__mi,
++ arm_instr_multi_0x092dd830__pl,
++ arm_instr_multi_0x092dd830__vs,
++ arm_instr_multi_0x092dd830__vc,
++ arm_instr_multi_0x092dd830__hi,
++ arm_instr_multi_0x092dd830__ls,
++ arm_instr_multi_0x092dd830__ge,
++ arm_instr_multi_0x092dd830__lt,
++ arm_instr_multi_0x092dd830__gt,
++ arm_instr_multi_0x092dd830__le,
++ arm_instr_multi_0x092dd830,
++ arm_instr_nop,
++ arm_instr_multi_0x092dd810__eq,
++ arm_instr_multi_0x092dd810__ne,
++ arm_instr_multi_0x092dd810__cs,
++ arm_instr_multi_0x092dd810__cc,
++ arm_instr_multi_0x092dd810__mi,
++ arm_instr_multi_0x092dd810__pl,
++ arm_instr_multi_0x092dd810__vs,
++ arm_instr_multi_0x092dd810__vc,
++ arm_instr_multi_0x092dd810__hi,
++ arm_instr_multi_0x092dd810__ls,
++ arm_instr_multi_0x092dd810__ge,
++ arm_instr_multi_0x092dd810__lt,
++ arm_instr_multi_0x092dd810__gt,
++ arm_instr_multi_0x092dd810__le,
++ arm_instr_multi_0x092dd810,
++ arm_instr_nop,
++ arm_instr_multi_0x092d4010__eq,
++ arm_instr_multi_0x092d4010__ne,
++ arm_instr_multi_0x092d4010__cs,
++ arm_instr_multi_0x092d4010__cc,
++ arm_instr_multi_0x092d4010__mi,
++ arm_instr_multi_0x092d4010__pl,
++ arm_instr_multi_0x092d4010__vs,
++ arm_instr_multi_0x092d4010__vc,
++ arm_instr_multi_0x092d4010__hi,
++ arm_instr_multi_0x092d4010__ls,
++ arm_instr_multi_0x092d4010__ge,
++ arm_instr_multi_0x092d4010__lt,
++ arm_instr_multi_0x092d4010__gt,
++ arm_instr_multi_0x092d4010__le,
++ arm_instr_multi_0x092d4010,
++ arm_instr_nop,
++ arm_instr_multi_0x092d4030__eq,
++ arm_instr_multi_0x092d4030__ne,
++ arm_instr_multi_0x092d4030__cs,
++ arm_instr_multi_0x092d4030__cc,
++ arm_instr_multi_0x092d4030__mi,
++ arm_instr_multi_0x092d4030__pl,
++ arm_instr_multi_0x092d4030__vs,
++ arm_instr_multi_0x092d4030__vc,
++ arm_instr_multi_0x092d4030__hi,
++ arm_instr_multi_0x092d4030__ls,
++ arm_instr_multi_0x092d4030__ge,
++ arm_instr_multi_0x092d4030__lt,
++ arm_instr_multi_0x092d4030__gt,
++ arm_instr_multi_0x092d4030__le,
++ arm_instr_multi_0x092d4030,
++ arm_instr_nop,
++ arm_instr_multi_0x092ddc30__eq,
++ arm_instr_multi_0x092ddc30__ne,
++ arm_instr_multi_0x092ddc30__cs,
++ arm_instr_multi_0x092ddc30__cc,
++ arm_instr_multi_0x092ddc30__mi,
++ arm_instr_multi_0x092ddc30__pl,
++ arm_instr_multi_0x092ddc30__vs,
++ arm_instr_multi_0x092ddc30__vc,
++ arm_instr_multi_0x092ddc30__hi,
++ arm_instr_multi_0x092ddc30__ls,
++ arm_instr_multi_0x092ddc30__ge,
++ arm_instr_multi_0x092ddc30__lt,
++ arm_instr_multi_0x092ddc30__gt,
++ arm_instr_multi_0x092ddc30__le,
++ arm_instr_multi_0x092ddc30,
++ arm_instr_nop,
++ arm_instr_multi_0x092d0030__eq,
++ arm_instr_multi_0x092d0030__ne,
++ arm_instr_multi_0x092d0030__cs,
++ arm_instr_multi_0x092d0030__cc,
++ arm_instr_multi_0x092d0030__mi,
++ arm_instr_multi_0x092d0030__pl,
++ arm_instr_multi_0x092d0030__vs,
++ arm_instr_multi_0x092d0030__vc,
++ arm_instr_multi_0x092d0030__hi,
++ arm_instr_multi_0x092d0030__ls,
++ arm_instr_multi_0x092d0030__ge,
++ arm_instr_multi_0x092d0030__lt,
++ arm_instr_multi_0x092d0030__gt,
++ arm_instr_multi_0x092d0030__le,
++ arm_instr_multi_0x092d0030,
++ arm_instr_nop,
++ arm_instr_multi_0x092d0010__eq,
++ arm_instr_multi_0x092d0010__ne,
++ arm_instr_multi_0x092d0010__cs,
++ arm_instr_multi_0x092d0010__cc,
++ arm_instr_multi_0x092d0010__mi,
++ arm_instr_multi_0x092d0010__pl,
++ arm_instr_multi_0x092d0010__vs,
++ arm_instr_multi_0x092d0010__vc,
++ arm_instr_multi_0x092d0010__hi,
++ arm_instr_multi_0x092d0010__ls,
++ arm_instr_multi_0x092d0010__ge,
++ arm_instr_multi_0x092d0010__lt,
++ arm_instr_multi_0x092d0010__gt,
++ arm_instr_multi_0x092d0010__le,
++ arm_instr_multi_0x092d0010,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_51[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x092d0c1f__eq,
++ arm_instr_multi_0x092d0c1f__ne,
++ arm_instr_multi_0x092d0c1f__cs,
++ arm_instr_multi_0x092d0c1f__cc,
++ arm_instr_multi_0x092d0c1f__mi,
++ arm_instr_multi_0x092d0c1f__pl,
++ arm_instr_multi_0x092d0c1f__vs,
++ arm_instr_multi_0x092d0c1f__vc,
++ arm_instr_multi_0x092d0c1f__hi,
++ arm_instr_multi_0x092d0c1f__ls,
++ arm_instr_multi_0x092d0c1f__ge,
++ arm_instr_multi_0x092d0c1f__lt,
++ arm_instr_multi_0x092d0c1f__gt,
++ arm_instr_multi_0x092d0c1f__le,
++ arm_instr_multi_0x092d0c1f,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_54[128])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x092dd8f0__eq,
++ arm_instr_multi_0x092dd8f0__ne,
++ arm_instr_multi_0x092dd8f0__cs,
++ arm_instr_multi_0x092dd8f0__cc,
++ arm_instr_multi_0x092dd8f0__mi,
++ arm_instr_multi_0x092dd8f0__pl,
++ arm_instr_multi_0x092dd8f0__vs,
++ arm_instr_multi_0x092dd8f0__vc,
++ arm_instr_multi_0x092dd8f0__hi,
++ arm_instr_multi_0x092dd8f0__ls,
++ arm_instr_multi_0x092dd8f0__ge,
++ arm_instr_multi_0x092dd8f0__lt,
++ arm_instr_multi_0x092dd8f0__gt,
++ arm_instr_multi_0x092dd8f0__le,
++ arm_instr_multi_0x092dd8f0,
++ arm_instr_nop,
++ arm_instr_multi_0x092dd870__eq,
++ arm_instr_multi_0x092dd870__ne,
++ arm_instr_multi_0x092dd870__cs,
++ arm_instr_multi_0x092dd870__cc,
++ arm_instr_multi_0x092dd870__mi,
++ arm_instr_multi_0x092dd870__pl,
++ arm_instr_multi_0x092dd870__vs,
++ arm_instr_multi_0x092dd870__vc,
++ arm_instr_multi_0x092dd870__hi,
++ arm_instr_multi_0x092dd870__ls,
++ arm_instr_multi_0x092dd870__ge,
++ arm_instr_multi_0x092dd870__lt,
++ arm_instr_multi_0x092dd870__gt,
++ arm_instr_multi_0x092dd870__le,
++ arm_instr_multi_0x092dd870,
++ arm_instr_nop,
++ arm_instr_multi_0x092d4070__eq,
++ arm_instr_multi_0x092d4070__ne,
++ arm_instr_multi_0x092d4070__cs,
++ arm_instr_multi_0x092d4070__cc,
++ arm_instr_multi_0x092d4070__mi,
++ arm_instr_multi_0x092d4070__pl,
++ arm_instr_multi_0x092d4070__vs,
++ arm_instr_multi_0x092d4070__vc,
++ arm_instr_multi_0x092d4070__hi,
++ arm_instr_multi_0x092d4070__ls,
++ arm_instr_multi_0x092d4070__ge,
++ arm_instr_multi_0x092d4070__lt,
++ arm_instr_multi_0x092d4070__gt,
++ arm_instr_multi_0x092d4070__le,
++ arm_instr_multi_0x092d4070,
++ arm_instr_nop,
++ arm_instr_multi_0x092ddc70__eq,
++ arm_instr_multi_0x092ddc70__ne,
++ arm_instr_multi_0x092ddc70__cs,
++ arm_instr_multi_0x092ddc70__cc,
++ arm_instr_multi_0x092ddc70__mi,
++ arm_instr_multi_0x092ddc70__pl,
++ arm_instr_multi_0x092ddc70__vs,
++ arm_instr_multi_0x092ddc70__vc,
++ arm_instr_multi_0x092ddc70__hi,
++ arm_instr_multi_0x092ddc70__ls,
++ arm_instr_multi_0x092ddc70__ge,
++ arm_instr_multi_0x092ddc70__lt,
++ arm_instr_multi_0x092ddc70__gt,
++ arm_instr_multi_0x092ddc70__le,
++ arm_instr_multi_0x092ddc70,
++ arm_instr_nop,
++ arm_instr_multi_0x092ddcf0__eq,
++ arm_instr_multi_0x092ddcf0__ne,
++ arm_instr_multi_0x092ddcf0__cs,
++ arm_instr_multi_0x092ddcf0__cc,
++ arm_instr_multi_0x092ddcf0__mi,
++ arm_instr_multi_0x092ddcf0__pl,
++ arm_instr_multi_0x092ddcf0__vs,
++ arm_instr_multi_0x092ddcf0__vc,
++ arm_instr_multi_0x092ddcf0__hi,
++ arm_instr_multi_0x092ddcf0__ls,
++ arm_instr_multi_0x092ddcf0__ge,
++ arm_instr_multi_0x092ddcf0__lt,
++ arm_instr_multi_0x092ddcf0__gt,
++ arm_instr_multi_0x092ddcf0__le,
++ arm_instr_multi_0x092ddcf0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d40f0__eq,
++ arm_instr_multi_0x092d40f0__ne,
++ arm_instr_multi_0x092d40f0__cs,
++ arm_instr_multi_0x092d40f0__cc,
++ arm_instr_multi_0x092d40f0__mi,
++ arm_instr_multi_0x092d40f0__pl,
++ arm_instr_multi_0x092d40f0__vs,
++ arm_instr_multi_0x092d40f0__vc,
++ arm_instr_multi_0x092d40f0__hi,
++ arm_instr_multi_0x092d40f0__ls,
++ arm_instr_multi_0x092d40f0__ge,
++ arm_instr_multi_0x092d40f0__lt,
++ arm_instr_multi_0x092d40f0__gt,
++ arm_instr_multi_0x092d40f0__le,
++ arm_instr_multi_0x092d40f0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d0070__eq,
++ arm_instr_multi_0x092d0070__ne,
++ arm_instr_multi_0x092d0070__cs,
++ arm_instr_multi_0x092d0070__cc,
++ arm_instr_multi_0x092d0070__mi,
++ arm_instr_multi_0x092d0070__pl,
++ arm_instr_multi_0x092d0070__vs,
++ arm_instr_multi_0x092d0070__vc,
++ arm_instr_multi_0x092d0070__hi,
++ arm_instr_multi_0x092d0070__ls,
++ arm_instr_multi_0x092d0070__ge,
++ arm_instr_multi_0x092d0070__lt,
++ arm_instr_multi_0x092d0070__gt,
++ arm_instr_multi_0x092d0070__le,
++ arm_instr_multi_0x092d0070,
++ arm_instr_nop,
++ arm_instr_multi_0x092d00f0__eq,
++ arm_instr_multi_0x092d00f0__ne,
++ arm_instr_multi_0x092d00f0__cs,
++ arm_instr_multi_0x092d00f0__cc,
++ arm_instr_multi_0x092d00f0__mi,
++ arm_instr_multi_0x092d00f0__pl,
++ arm_instr_multi_0x092d00f0__vs,
++ arm_instr_multi_0x092d00f0__vc,
++ arm_instr_multi_0x092d00f0__hi,
++ arm_instr_multi_0x092d00f0__ls,
++ arm_instr_multi_0x092d00f0__ge,
++ arm_instr_multi_0x092d00f0__lt,
++ arm_instr_multi_0x092d00f0__gt,
++ arm_instr_multi_0x092d00f0__le,
++ arm_instr_multi_0x092d00f0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_62[128])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x092ddff0__eq,
++ arm_instr_multi_0x092ddff0__ne,
++ arm_instr_multi_0x092ddff0__cs,
++ arm_instr_multi_0x092ddff0__cc,
++ arm_instr_multi_0x092ddff0__mi,
++ arm_instr_multi_0x092ddff0__pl,
++ arm_instr_multi_0x092ddff0__vs,
++ arm_instr_multi_0x092ddff0__vc,
++ arm_instr_multi_0x092ddff0__hi,
++ arm_instr_multi_0x092ddff0__ls,
++ arm_instr_multi_0x092ddff0__ge,
++ arm_instr_multi_0x092ddff0__lt,
++ arm_instr_multi_0x092ddff0__gt,
++ arm_instr_multi_0x092ddff0__le,
++ arm_instr_multi_0x092ddff0,
++ arm_instr_nop,
++ arm_instr_multi_0x092dddf0__eq,
++ arm_instr_multi_0x092dddf0__ne,
++ arm_instr_multi_0x092dddf0__cs,
++ arm_instr_multi_0x092dddf0__cc,
++ arm_instr_multi_0x092dddf0__mi,
++ arm_instr_multi_0x092dddf0__pl,
++ arm_instr_multi_0x092dddf0__vs,
++ arm_instr_multi_0x092dddf0__vc,
++ arm_instr_multi_0x092dddf0__hi,
++ arm_instr_multi_0x092dddf0__ls,
++ arm_instr_multi_0x092dddf0__ge,
++ arm_instr_multi_0x092dddf0__lt,
++ arm_instr_multi_0x092dddf0__gt,
++ arm_instr_multi_0x092dddf0__le,
++ arm_instr_multi_0x092dddf0,
++ arm_instr_nop,
++ arm_instr_multi_0x092dd9f0__eq,
++ arm_instr_multi_0x092dd9f0__ne,
++ arm_instr_multi_0x092dd9f0__cs,
++ arm_instr_multi_0x092dd9f0__cc,
++ arm_instr_multi_0x092dd9f0__mi,
++ arm_instr_multi_0x092dd9f0__pl,
++ arm_instr_multi_0x092dd9f0__vs,
++ arm_instr_multi_0x092dd9f0__vc,
++ arm_instr_multi_0x092dd9f0__hi,
++ arm_instr_multi_0x092dd9f0__ls,
++ arm_instr_multi_0x092dd9f0__ge,
++ arm_instr_multi_0x092dd9f0__lt,
++ arm_instr_multi_0x092dd9f0__gt,
++ arm_instr_multi_0x092dd9f0__le,
++ arm_instr_multi_0x092dd9f0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d41f0__eq,
++ arm_instr_multi_0x092d41f0__ne,
++ arm_instr_multi_0x092d41f0__cs,
++ arm_instr_multi_0x092d41f0__cc,
++ arm_instr_multi_0x092d41f0__mi,
++ arm_instr_multi_0x092d41f0__pl,
++ arm_instr_multi_0x092d41f0__vs,
++ arm_instr_multi_0x092d41f0__vc,
++ arm_instr_multi_0x092d41f0__hi,
++ arm_instr_multi_0x092d41f0__ls,
++ arm_instr_multi_0x092d41f0__ge,
++ arm_instr_multi_0x092d41f0__lt,
++ arm_instr_multi_0x092d41f0__gt,
++ arm_instr_multi_0x092d41f0__le,
++ arm_instr_multi_0x092d41f0,
++ arm_instr_nop,
++ arm_instr_multi_0x092ddbf0__eq,
++ arm_instr_multi_0x092ddbf0__ne,
++ arm_instr_multi_0x092ddbf0__cs,
++ arm_instr_multi_0x092ddbf0__cc,
++ arm_instr_multi_0x092ddbf0__mi,
++ arm_instr_multi_0x092ddbf0__pl,
++ arm_instr_multi_0x092ddbf0__vs,
++ arm_instr_multi_0x092ddbf0__vc,
++ arm_instr_multi_0x092ddbf0__hi,
++ arm_instr_multi_0x092ddbf0__ls,
++ arm_instr_multi_0x092ddbf0__ge,
++ arm_instr_multi_0x092ddbf0__lt,
++ arm_instr_multi_0x092ddbf0__gt,
++ arm_instr_multi_0x092ddbf0__le,
++ arm_instr_multi_0x092ddbf0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d0ff0__eq,
++ arm_instr_multi_0x092d0ff0__ne,
++ arm_instr_multi_0x092d0ff0__cs,
++ arm_instr_multi_0x092d0ff0__cc,
++ arm_instr_multi_0x092d0ff0__mi,
++ arm_instr_multi_0x092d0ff0__pl,
++ arm_instr_multi_0x092d0ff0__vs,
++ arm_instr_multi_0x092d0ff0__vc,
++ arm_instr_multi_0x092d0ff0__hi,
++ arm_instr_multi_0x092d0ff0__ls,
++ arm_instr_multi_0x092d0ff0__ge,
++ arm_instr_multi_0x092d0ff0__lt,
++ arm_instr_multi_0x092d0ff0__gt,
++ arm_instr_multi_0x092d0ff0__le,
++ arm_instr_multi_0x092d0ff0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d47f0__eq,
++ arm_instr_multi_0x092d47f0__ne,
++ arm_instr_multi_0x092d47f0__cs,
++ arm_instr_multi_0x092d47f0__cc,
++ arm_instr_multi_0x092d47f0__mi,
++ arm_instr_multi_0x092d47f0__pl,
++ arm_instr_multi_0x092d47f0__vs,
++ arm_instr_multi_0x092d47f0__vc,
++ arm_instr_multi_0x092d47f0__hi,
++ arm_instr_multi_0x092d47f0__ls,
++ arm_instr_multi_0x092d47f0__ge,
++ arm_instr_multi_0x092d47f0__lt,
++ arm_instr_multi_0x092d47f0__gt,
++ arm_instr_multi_0x092d47f0__le,
++ arm_instr_multi_0x092d47f0,
++ arm_instr_nop,
++ arm_instr_multi_0x092d45f0__eq,
++ arm_instr_multi_0x092d45f0__ne,
++ arm_instr_multi_0x092d45f0__cs,
++ arm_instr_multi_0x092d45f0__cc,
++ arm_instr_multi_0x092d45f0__mi,
++ arm_instr_multi_0x092d45f0__pl,
++ arm_instr_multi_0x092d45f0__vs,
++ arm_instr_multi_0x092d45f0__vc,
++ arm_instr_multi_0x092d45f0__hi,
++ arm_instr_multi_0x092d45f0__ls,
++ arm_instr_multi_0x092d45f0__ge,
++ arm_instr_multi_0x092d45f0__lt,
++ arm_instr_multi_0x092d45f0__gt,
++ arm_instr_multi_0x092d45f0__le,
++ arm_instr_multi_0x092d45f0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_64[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08100009__eq,
++ arm_instr_multi_0x08100009__ne,
++ arm_instr_multi_0x08100009__cs,
++ arm_instr_multi_0x08100009__cc,
++ arm_instr_multi_0x08100009__mi,
++ arm_instr_multi_0x08100009__pl,
++ arm_instr_multi_0x08100009__vs,
++ arm_instr_multi_0x08100009__vc,
++ arm_instr_multi_0x08100009__hi,
++ arm_instr_multi_0x08100009__ls,
++ arm_instr_multi_0x08100009__ge,
++ arm_instr_multi_0x08100009__lt,
++ arm_instr_multi_0x08100009__gt,
++ arm_instr_multi_0x08100009__le,
++ arm_instr_multi_0x08100009,
++ arm_instr_nop,
++ arm_instr_multi_0x091a0600__eq,
++ arm_instr_multi_0x091a0600__ne,
++ arm_instr_multi_0x091a0600__cs,
++ arm_instr_multi_0x091a0600__cc,
++ arm_instr_multi_0x091a0600__mi,
++ arm_instr_multi_0x091a0600__pl,
++ arm_instr_multi_0x091a0600__vs,
++ arm_instr_multi_0x091a0600__vc,
++ arm_instr_multi_0x091a0600__hi,
++ arm_instr_multi_0x091a0600__ls,
++ arm_instr_multi_0x091a0600__ge,
++ arm_instr_multi_0x091a0600__lt,
++ arm_instr_multi_0x091a0600__gt,
++ arm_instr_multi_0x091a0600__le,
++ arm_instr_multi_0x091a0600,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_65[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09120006__eq,
++ arm_instr_multi_0x09120006__ne,
++ arm_instr_multi_0x09120006__cs,
++ arm_instr_multi_0x09120006__cc,
++ arm_instr_multi_0x09120006__mi,
++ arm_instr_multi_0x09120006__pl,
++ arm_instr_multi_0x09120006__vs,
++ arm_instr_multi_0x09120006__vc,
++ arm_instr_multi_0x09120006__hi,
++ arm_instr_multi_0x09120006__ls,
++ arm_instr_multi_0x09120006__ge,
++ arm_instr_multi_0x09120006__lt,
++ arm_instr_multi_0x09120006__gt,
++ arm_instr_multi_0x09120006__le,
++ arm_instr_multi_0x09120006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_80[128])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08110003__eq,
++ arm_instr_multi_0x08110003__ne,
++ arm_instr_multi_0x08110003__cs,
++ arm_instr_multi_0x08110003__cc,
++ arm_instr_multi_0x08110003__mi,
++ arm_instr_multi_0x08110003__pl,
++ arm_instr_multi_0x08110003__vs,
++ arm_instr_multi_0x08110003__vc,
++ arm_instr_multi_0x08110003__hi,
++ arm_instr_multi_0x08110003__ls,
++ arm_instr_multi_0x08110003__ge,
++ arm_instr_multi_0x08110003__lt,
++ arm_instr_multi_0x08110003__gt,
++ arm_instr_multi_0x08110003__le,
++ arm_instr_multi_0x08110003,
++ arm_instr_nop,
++ arm_instr_multi_0x091ba800__eq,
++ arm_instr_multi_0x091ba800__ne,
++ arm_instr_multi_0x091ba800__cs,
++ arm_instr_multi_0x091ba800__cc,
++ arm_instr_multi_0x091ba800__mi,
++ arm_instr_multi_0x091ba800__pl,
++ arm_instr_multi_0x091ba800__vs,
++ arm_instr_multi_0x091ba800__vc,
++ arm_instr_multi_0x091ba800__hi,
++ arm_instr_multi_0x091ba800__ls,
++ arm_instr_multi_0x091ba800__ge,
++ arm_instr_multi_0x091ba800__lt,
++ arm_instr_multi_0x091ba800__gt,
++ arm_instr_multi_0x091ba800__le,
++ arm_instr_multi_0x091ba800,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6800__eq,
++ arm_instr_multi_0x091b6800__ne,
++ arm_instr_multi_0x091b6800__cs,
++ arm_instr_multi_0x091b6800__cc,
++ arm_instr_multi_0x091b6800__mi,
++ arm_instr_multi_0x091b6800__pl,
++ arm_instr_multi_0x091b6800__vs,
++ arm_instr_multi_0x091b6800__vc,
++ arm_instr_multi_0x091b6800__hi,
++ arm_instr_multi_0x091b6800__ls,
++ arm_instr_multi_0x091b6800__ge,
++ arm_instr_multi_0x091b6800__lt,
++ arm_instr_multi_0x091b6800__gt,
++ arm_instr_multi_0x091b6800__le,
++ arm_instr_multi_0x091b6800,
++ arm_instr_nop,
++ arm_instr_multi_0x08130003__eq,
++ arm_instr_multi_0x08130003__ne,
++ arm_instr_multi_0x08130003__cs,
++ arm_instr_multi_0x08130003__cc,
++ arm_instr_multi_0x08130003__mi,
++ arm_instr_multi_0x08130003__pl,
++ arm_instr_multi_0x08130003__vs,
++ arm_instr_multi_0x08130003__vc,
++ arm_instr_multi_0x08130003__hi,
++ arm_instr_multi_0x08130003__ls,
++ arm_instr_multi_0x08130003__ge,
++ arm_instr_multi_0x08130003__lt,
++ arm_instr_multi_0x08130003__gt,
++ arm_instr_multi_0x08130003__le,
++ arm_instr_multi_0x08130003,
++ arm_instr_nop,
++ arm_instr_multi_0x091bac00__eq,
++ arm_instr_multi_0x091bac00__ne,
++ arm_instr_multi_0x091bac00__cs,
++ arm_instr_multi_0x091bac00__cc,
++ arm_instr_multi_0x091bac00__mi,
++ arm_instr_multi_0x091bac00__pl,
++ arm_instr_multi_0x091bac00__vs,
++ arm_instr_multi_0x091bac00__vc,
++ arm_instr_multi_0x091bac00__hi,
++ arm_instr_multi_0x091bac00__ls,
++ arm_instr_multi_0x091bac00__ge,
++ arm_instr_multi_0x091bac00__lt,
++ arm_instr_multi_0x091bac00__gt,
++ arm_instr_multi_0x091bac00__le,
++ arm_instr_multi_0x091bac00,
++ arm_instr_nop,
++ arm_instr_multi_0x09311008__eq,
++ arm_instr_multi_0x09311008__ne,
++ arm_instr_multi_0x09311008__cs,
++ arm_instr_multi_0x09311008__cc,
++ arm_instr_multi_0x09311008__mi,
++ arm_instr_multi_0x09311008__pl,
++ arm_instr_multi_0x09311008__vs,
++ arm_instr_multi_0x09311008__vc,
++ arm_instr_multi_0x09311008__hi,
++ arm_instr_multi_0x09311008__ls,
++ arm_instr_multi_0x09311008__ge,
++ arm_instr_multi_0x09311008__lt,
++ arm_instr_multi_0x09311008__gt,
++ arm_instr_multi_0x09311008__le,
++ arm_instr_multi_0x09311008,
++ arm_instr_nop,
++ arm_instr_multi_0x09315008__eq,
++ arm_instr_multi_0x09315008__ne,
++ arm_instr_multi_0x09315008__cs,
++ arm_instr_multi_0x09315008__cc,
++ arm_instr_multi_0x09315008__mi,
++ arm_instr_multi_0x09315008__pl,
++ arm_instr_multi_0x09315008__vs,
++ arm_instr_multi_0x09315008__vc,
++ arm_instr_multi_0x09315008__hi,
++ arm_instr_multi_0x09315008__ls,
++ arm_instr_multi_0x09315008__ge,
++ arm_instr_multi_0x09315008__lt,
++ arm_instr_multi_0x09315008__gt,
++ arm_instr_multi_0x09315008__le,
++ arm_instr_multi_0x09315008,
++ arm_instr_nop,
++ arm_instr_multi_0x09110003__eq,
++ arm_instr_multi_0x09110003__ne,
++ arm_instr_multi_0x09110003__cs,
++ arm_instr_multi_0x09110003__cc,
++ arm_instr_multi_0x09110003__mi,
++ arm_instr_multi_0x09110003__pl,
++ arm_instr_multi_0x09110003__vs,
++ arm_instr_multi_0x09110003__vc,
++ arm_instr_multi_0x09110003__hi,
++ arm_instr_multi_0x09110003__ls,
++ arm_instr_multi_0x09110003__ge,
++ arm_instr_multi_0x09110003__lt,
++ arm_instr_multi_0x09110003__gt,
++ arm_instr_multi_0x09110003__le,
++ arm_instr_multi_0x09110003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_81[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x0911000f__eq,
++ arm_instr_multi_0x0911000f__ne,
++ arm_instr_multi_0x0911000f__cs,
++ arm_instr_multi_0x0911000f__cc,
++ arm_instr_multi_0x0911000f__mi,
++ arm_instr_multi_0x0911000f__pl,
++ arm_instr_multi_0x0911000f__vs,
++ arm_instr_multi_0x0911000f__vc,
++ arm_instr_multi_0x0911000f__hi,
++ arm_instr_multi_0x0911000f__ls,
++ arm_instr_multi_0x0911000f__ge,
++ arm_instr_multi_0x0911000f__lt,
++ arm_instr_multi_0x0911000f__gt,
++ arm_instr_multi_0x0911000f__le,
++ arm_instr_multi_0x0911000f,
++ arm_instr_nop,
++ arm_instr_multi_0x0813000c__eq,
++ arm_instr_multi_0x0813000c__ne,
++ arm_instr_multi_0x0813000c__cs,
++ arm_instr_multi_0x0813000c__cc,
++ arm_instr_multi_0x0813000c__mi,
++ arm_instr_multi_0x0813000c__pl,
++ arm_instr_multi_0x0813000c__vs,
++ arm_instr_multi_0x0813000c__vc,
++ arm_instr_multi_0x0813000c__hi,
++ arm_instr_multi_0x0813000c__ls,
++ arm_instr_multi_0x0813000c__ge,
++ arm_instr_multi_0x0813000c__lt,
++ arm_instr_multi_0x0813000c__gt,
++ arm_instr_multi_0x0813000c__le,
++ arm_instr_multi_0x0813000c,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_82[128])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x091ba830__eq,
++ arm_instr_multi_0x091ba830__ne,
++ arm_instr_multi_0x091ba830__cs,
++ arm_instr_multi_0x091ba830__cc,
++ arm_instr_multi_0x091ba830__mi,
++ arm_instr_multi_0x091ba830__pl,
++ arm_instr_multi_0x091ba830__vs,
++ arm_instr_multi_0x091ba830__vc,
++ arm_instr_multi_0x091ba830__hi,
++ arm_instr_multi_0x091ba830__ls,
++ arm_instr_multi_0x091ba830__ge,
++ arm_instr_multi_0x091ba830__lt,
++ arm_instr_multi_0x091ba830__gt,
++ arm_instr_multi_0x091ba830__le,
++ arm_instr_multi_0x091ba830,
++ arm_instr_nop,
++ arm_instr_multi_0x091ba810__eq,
++ arm_instr_multi_0x091ba810__ne,
++ arm_instr_multi_0x091ba810__cs,
++ arm_instr_multi_0x091ba810__cc,
++ arm_instr_multi_0x091ba810__mi,
++ arm_instr_multi_0x091ba810__pl,
++ arm_instr_multi_0x091ba810__vs,
++ arm_instr_multi_0x091ba810__vc,
++ arm_instr_multi_0x091ba810__hi,
++ arm_instr_multi_0x091ba810__ls,
++ arm_instr_multi_0x091ba810__ge,
++ arm_instr_multi_0x091ba810__lt,
++ arm_instr_multi_0x091ba810__gt,
++ arm_instr_multi_0x091ba810__le,
++ arm_instr_multi_0x091ba810,
++ arm_instr_nop,
++ arm_instr_multi_0x08130018__eq,
++ arm_instr_multi_0x08130018__ne,
++ arm_instr_multi_0x08130018__cs,
++ arm_instr_multi_0x08130018__cc,
++ arm_instr_multi_0x08130018__mi,
++ arm_instr_multi_0x08130018__pl,
++ arm_instr_multi_0x08130018__vs,
++ arm_instr_multi_0x08130018__vc,
++ arm_instr_multi_0x08130018__hi,
++ arm_instr_multi_0x08130018__ls,
++ arm_instr_multi_0x08130018__ge,
++ arm_instr_multi_0x08130018__lt,
++ arm_instr_multi_0x08130018__gt,
++ arm_instr_multi_0x08130018__le,
++ arm_instr_multi_0x08130018,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6830__eq,
++ arm_instr_multi_0x091b6830__ne,
++ arm_instr_multi_0x091b6830__cs,
++ arm_instr_multi_0x091b6830__cc,
++ arm_instr_multi_0x091b6830__mi,
++ arm_instr_multi_0x091b6830__pl,
++ arm_instr_multi_0x091b6830__vs,
++ arm_instr_multi_0x091b6830__vc,
++ arm_instr_multi_0x091b6830__hi,
++ arm_instr_multi_0x091b6830__ls,
++ arm_instr_multi_0x091b6830__ge,
++ arm_instr_multi_0x091b6830__lt,
++ arm_instr_multi_0x091b6830__gt,
++ arm_instr_multi_0x091b6830__le,
++ arm_instr_multi_0x091b6830,
++ arm_instr_nop,
++ arm_instr_multi_0x091bac30__eq,
++ arm_instr_multi_0x091bac30__ne,
++ arm_instr_multi_0x091bac30__cs,
++ arm_instr_multi_0x091bac30__cc,
++ arm_instr_multi_0x091bac30__mi,
++ arm_instr_multi_0x091bac30__pl,
++ arm_instr_multi_0x091bac30__vs,
++ arm_instr_multi_0x091bac30__vc,
++ arm_instr_multi_0x091bac30__hi,
++ arm_instr_multi_0x091bac30__ls,
++ arm_instr_multi_0x091bac30__ge,
++ arm_instr_multi_0x091bac30__lt,
++ arm_instr_multi_0x091bac30__gt,
++ arm_instr_multi_0x091bac30__le,
++ arm_instr_multi_0x091bac30,
++ arm_instr_nop,
++ arm_instr_multi_0x09315018__eq,
++ arm_instr_multi_0x09315018__ne,
++ arm_instr_multi_0x09315018__cs,
++ arm_instr_multi_0x09315018__cc,
++ arm_instr_multi_0x09315018__mi,
++ arm_instr_multi_0x09315018__pl,
++ arm_instr_multi_0x09315018__vs,
++ arm_instr_multi_0x09315018__vc,
++ arm_instr_multi_0x09315018__hi,
++ arm_instr_multi_0x09315018__ls,
++ arm_instr_multi_0x09315018__ge,
++ arm_instr_multi_0x09315018__lt,
++ arm_instr_multi_0x09315018__gt,
++ arm_instr_multi_0x09315018__le,
++ arm_instr_multi_0x09315018,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6810__eq,
++ arm_instr_multi_0x091b6810__ne,
++ arm_instr_multi_0x091b6810__cs,
++ arm_instr_multi_0x091b6810__cc,
++ arm_instr_multi_0x091b6810__mi,
++ arm_instr_multi_0x091b6810__pl,
++ arm_instr_multi_0x091b6810__vs,
++ arm_instr_multi_0x091b6810__vc,
++ arm_instr_multi_0x091b6810__hi,
++ arm_instr_multi_0x091b6810__ls,
++ arm_instr_multi_0x091b6810__ge,
++ arm_instr_multi_0x091b6810__lt,
++ arm_instr_multi_0x091b6810__gt,
++ arm_instr_multi_0x091b6810__le,
++ arm_instr_multi_0x091b6810,
++ arm_instr_nop,
++ arm_instr_multi_0x09311038__eq,
++ arm_instr_multi_0x09311038__ne,
++ arm_instr_multi_0x09311038__cs,
++ arm_instr_multi_0x09311038__cc,
++ arm_instr_multi_0x09311038__mi,
++ arm_instr_multi_0x09311038__pl,
++ arm_instr_multi_0x09311038__vs,
++ arm_instr_multi_0x09311038__vc,
++ arm_instr_multi_0x09311038__hi,
++ arm_instr_multi_0x09311038__ls,
++ arm_instr_multi_0x09311038__ge,
++ arm_instr_multi_0x09311038__lt,
++ arm_instr_multi_0x09311038__gt,
++ arm_instr_multi_0x09311038__le,
++ arm_instr_multi_0x09311038,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_86[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x091ba8f0__eq,
++ arm_instr_multi_0x091ba8f0__ne,
++ arm_instr_multi_0x091ba8f0__cs,
++ arm_instr_multi_0x091ba8f0__cc,
++ arm_instr_multi_0x091ba8f0__mi,
++ arm_instr_multi_0x091ba8f0__pl,
++ arm_instr_multi_0x091ba8f0__vs,
++ arm_instr_multi_0x091ba8f0__vc,
++ arm_instr_multi_0x091ba8f0__hi,
++ arm_instr_multi_0x091ba8f0__ls,
++ arm_instr_multi_0x091ba8f0__ge,
++ arm_instr_multi_0x091ba8f0__lt,
++ arm_instr_multi_0x091ba8f0__gt,
++ arm_instr_multi_0x091ba8f0__le,
++ arm_instr_multi_0x091ba8f0,
++ arm_instr_nop,
++ arm_instr_multi_0x091ba870__eq,
++ arm_instr_multi_0x091ba870__ne,
++ arm_instr_multi_0x091ba870__cs,
++ arm_instr_multi_0x091ba870__cc,
++ arm_instr_multi_0x091ba870__mi,
++ arm_instr_multi_0x091ba870__pl,
++ arm_instr_multi_0x091ba870__vs,
++ arm_instr_multi_0x091ba870__vc,
++ arm_instr_multi_0x091ba870__hi,
++ arm_instr_multi_0x091ba870__ls,
++ arm_instr_multi_0x091ba870__ge,
++ arm_instr_multi_0x091ba870__lt,
++ arm_instr_multi_0x091ba870__gt,
++ arm_instr_multi_0x091ba870__le,
++ arm_instr_multi_0x091ba870,
++ arm_instr_nop,
++ arm_instr_multi_0x091bac70__eq,
++ arm_instr_multi_0x091bac70__ne,
++ arm_instr_multi_0x091bac70__cs,
++ arm_instr_multi_0x091bac70__cc,
++ arm_instr_multi_0x091bac70__mi,
++ arm_instr_multi_0x091bac70__pl,
++ arm_instr_multi_0x091bac70__vs,
++ arm_instr_multi_0x091bac70__vc,
++ arm_instr_multi_0x091bac70__hi,
++ arm_instr_multi_0x091bac70__ls,
++ arm_instr_multi_0x091bac70__ge,
++ arm_instr_multi_0x091bac70__lt,
++ arm_instr_multi_0x091bac70__gt,
++ arm_instr_multi_0x091bac70__le,
++ arm_instr_multi_0x091bac70,
++ arm_instr_nop,
++ arm_instr_multi_0x091bacf0__eq,
++ arm_instr_multi_0x091bacf0__ne,
++ arm_instr_multi_0x091bacf0__cs,
++ arm_instr_multi_0x091bacf0__cc,
++ arm_instr_multi_0x091bacf0__mi,
++ arm_instr_multi_0x091bacf0__pl,
++ arm_instr_multi_0x091bacf0__vs,
++ arm_instr_multi_0x091bacf0__vc,
++ arm_instr_multi_0x091bacf0__hi,
++ arm_instr_multi_0x091bacf0__ls,
++ arm_instr_multi_0x091bacf0__ge,
++ arm_instr_multi_0x091bacf0__lt,
++ arm_instr_multi_0x091bacf0__gt,
++ arm_instr_multi_0x091bacf0__le,
++ arm_instr_multi_0x091bacf0,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6870__eq,
++ arm_instr_multi_0x091b6870__ne,
++ arm_instr_multi_0x091b6870__cs,
++ arm_instr_multi_0x091b6870__cc,
++ arm_instr_multi_0x091b6870__mi,
++ arm_instr_multi_0x091b6870__pl,
++ arm_instr_multi_0x091b6870__vs,
++ arm_instr_multi_0x091b6870__vc,
++ arm_instr_multi_0x091b6870__hi,
++ arm_instr_multi_0x091b6870__ls,
++ arm_instr_multi_0x091b6870__ge,
++ arm_instr_multi_0x091b6870__lt,
++ arm_instr_multi_0x091b6870__gt,
++ arm_instr_multi_0x091b6870__le,
++ arm_instr_multi_0x091b6870,
++ arm_instr_nop,
++ arm_instr_multi_0x091b68f0__eq,
++ arm_instr_multi_0x091b68f0__ne,
++ arm_instr_multi_0x091b68f0__cs,
++ arm_instr_multi_0x091b68f0__cc,
++ arm_instr_multi_0x091b68f0__mi,
++ arm_instr_multi_0x091b68f0__pl,
++ arm_instr_multi_0x091b68f0__vs,
++ arm_instr_multi_0x091b68f0__vc,
++ arm_instr_multi_0x091b68f0__hi,
++ arm_instr_multi_0x091b68f0__ls,
++ arm_instr_multi_0x091b68f0__ge,
++ arm_instr_multi_0x091b68f0__lt,
++ arm_instr_multi_0x091b68f0__gt,
++ arm_instr_multi_0x091b68f0__le,
++ arm_instr_multi_0x091b68f0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_88[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09190300__eq,
++ arm_instr_multi_0x09190300__ne,
++ arm_instr_multi_0x09190300__cs,
++ arm_instr_multi_0x09190300__cc,
++ arm_instr_multi_0x09190300__mi,
++ arm_instr_multi_0x09190300__pl,
++ arm_instr_multi_0x09190300__vs,
++ arm_instr_multi_0x09190300__vc,
++ arm_instr_multi_0x09190300__hi,
++ arm_instr_multi_0x09190300__ls,
++ arm_instr_multi_0x09190300__ge,
++ arm_instr_multi_0x09190300__lt,
++ arm_instr_multi_0x09190300__gt,
++ arm_instr_multi_0x09190300__le,
++ arm_instr_multi_0x09190300,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_94[112])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x091baff0__eq,
++ arm_instr_multi_0x091baff0__ne,
++ arm_instr_multi_0x091baff0__cs,
++ arm_instr_multi_0x091baff0__cc,
++ arm_instr_multi_0x091baff0__mi,
++ arm_instr_multi_0x091baff0__pl,
++ arm_instr_multi_0x091baff0__vs,
++ arm_instr_multi_0x091baff0__vc,
++ arm_instr_multi_0x091baff0__hi,
++ arm_instr_multi_0x091baff0__ls,
++ arm_instr_multi_0x091baff0__ge,
++ arm_instr_multi_0x091baff0__lt,
++ arm_instr_multi_0x091baff0__gt,
++ arm_instr_multi_0x091baff0__le,
++ arm_instr_multi_0x091baff0,
++ arm_instr_nop,
++ arm_instr_multi_0x091badf0__eq,
++ arm_instr_multi_0x091badf0__ne,
++ arm_instr_multi_0x091badf0__cs,
++ arm_instr_multi_0x091badf0__cc,
++ arm_instr_multi_0x091badf0__mi,
++ arm_instr_multi_0x091badf0__pl,
++ arm_instr_multi_0x091badf0__vs,
++ arm_instr_multi_0x091badf0__vc,
++ arm_instr_multi_0x091badf0__hi,
++ arm_instr_multi_0x091badf0__ls,
++ arm_instr_multi_0x091badf0__ge,
++ arm_instr_multi_0x091badf0__lt,
++ arm_instr_multi_0x091badf0__gt,
++ arm_instr_multi_0x091badf0__le,
++ arm_instr_multi_0x091badf0,
++ arm_instr_nop,
++ arm_instr_multi_0x091ba9f0__eq,
++ arm_instr_multi_0x091ba9f0__ne,
++ arm_instr_multi_0x091ba9f0__cs,
++ arm_instr_multi_0x091ba9f0__cc,
++ arm_instr_multi_0x091ba9f0__mi,
++ arm_instr_multi_0x091ba9f0__pl,
++ arm_instr_multi_0x091ba9f0__vs,
++ arm_instr_multi_0x091ba9f0__vc,
++ arm_instr_multi_0x091ba9f0__hi,
++ arm_instr_multi_0x091ba9f0__ls,
++ arm_instr_multi_0x091ba9f0__ge,
++ arm_instr_multi_0x091ba9f0__lt,
++ arm_instr_multi_0x091ba9f0__gt,
++ arm_instr_multi_0x091ba9f0__le,
++ arm_instr_multi_0x091ba9f0,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6ff0__eq,
++ arm_instr_multi_0x091b6ff0__ne,
++ arm_instr_multi_0x091b6ff0__cs,
++ arm_instr_multi_0x091b6ff0__cc,
++ arm_instr_multi_0x091b6ff0__mi,
++ arm_instr_multi_0x091b6ff0__pl,
++ arm_instr_multi_0x091b6ff0__vs,
++ arm_instr_multi_0x091b6ff0__vc,
++ arm_instr_multi_0x091b6ff0__hi,
++ arm_instr_multi_0x091b6ff0__ls,
++ arm_instr_multi_0x091b6ff0__ge,
++ arm_instr_multi_0x091b6ff0__lt,
++ arm_instr_multi_0x091b6ff0__gt,
++ arm_instr_multi_0x091b6ff0__le,
++ arm_instr_multi_0x091b6ff0,
++ arm_instr_nop,
++ arm_instr_multi_0x091babf0__eq,
++ arm_instr_multi_0x091babf0__ne,
++ arm_instr_multi_0x091babf0__cs,
++ arm_instr_multi_0x091babf0__cc,
++ arm_instr_multi_0x091babf0__mi,
++ arm_instr_multi_0x091babf0__pl,
++ arm_instr_multi_0x091babf0__vs,
++ arm_instr_multi_0x091babf0__vc,
++ arm_instr_multi_0x091babf0__hi,
++ arm_instr_multi_0x091babf0__ls,
++ arm_instr_multi_0x091babf0__ge,
++ arm_instr_multi_0x091babf0__lt,
++ arm_instr_multi_0x091babf0__gt,
++ arm_instr_multi_0x091babf0__le,
++ arm_instr_multi_0x091babf0,
++ arm_instr_nop,
++ arm_instr_multi_0x091b69f0__eq,
++ arm_instr_multi_0x091b69f0__ne,
++ arm_instr_multi_0x091b69f0__cs,
++ arm_instr_multi_0x091b69f0__cc,
++ arm_instr_multi_0x091b69f0__mi,
++ arm_instr_multi_0x091b69f0__pl,
++ arm_instr_multi_0x091b69f0__vs,
++ arm_instr_multi_0x091b69f0__vc,
++ arm_instr_multi_0x091b69f0__hi,
++ arm_instr_multi_0x091b69f0__ls,
++ arm_instr_multi_0x091b69f0__ge,
++ arm_instr_multi_0x091b69f0__lt,
++ arm_instr_multi_0x091b69f0__gt,
++ arm_instr_multi_0x091b69f0__le,
++ arm_instr_multi_0x091b69f0,
++ arm_instr_nop,
++ arm_instr_multi_0x091b6df0__eq,
++ arm_instr_multi_0x091b6df0__ne,
++ arm_instr_multi_0x091b6df0__cs,
++ arm_instr_multi_0x091b6df0__cc,
++ arm_instr_multi_0x091b6df0__mi,
++ arm_instr_multi_0x091b6df0__pl,
++ arm_instr_multi_0x091b6df0__vs,
++ arm_instr_multi_0x091b6df0__vc,
++ arm_instr_multi_0x091b6df0__hi,
++ arm_instr_multi_0x091b6df0__ls,
++ arm_instr_multi_0x091b6df0__ge,
++ arm_instr_multi_0x091b6df0__lt,
++ arm_instr_multi_0x091b6df0__gt,
++ arm_instr_multi_0x091b6df0__le,
++ arm_instr_multi_0x091b6df0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_97[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09160006__eq,
++ arm_instr_multi_0x09160006__ne,
++ arm_instr_multi_0x09160006__cs,
++ arm_instr_multi_0x09160006__cc,
++ arm_instr_multi_0x09160006__mi,
++ arm_instr_multi_0x09160006__pl,
++ arm_instr_multi_0x09160006__vs,
++ arm_instr_multi_0x09160006__vc,
++ arm_instr_multi_0x09160006__hi,
++ arm_instr_multi_0x09160006__ls,
++ arm_instr_multi_0x09160006__ge,
++ arm_instr_multi_0x09160006__lt,
++ arm_instr_multi_0x09160006__gt,
++ arm_instr_multi_0x09160006__le,
++ arm_instr_multi_0x09160006,
++ arm_instr_nop,
++ arm_instr_multi_0x091c0006__eq,
++ arm_instr_multi_0x091c0006__ne,
++ arm_instr_multi_0x091c0006__cs,
++ arm_instr_multi_0x091c0006__cc,
++ arm_instr_multi_0x091c0006__mi,
++ arm_instr_multi_0x091c0006__pl,
++ arm_instr_multi_0x091c0006__vs,
++ arm_instr_multi_0x091c0006__vc,
++ arm_instr_multi_0x091c0006__hi,
++ arm_instr_multi_0x091c0006__ls,
++ arm_instr_multi_0x091c0006__ge,
++ arm_instr_multi_0x091c0006__lt,
++ arm_instr_multi_0x091c0006__gt,
++ arm_instr_multi_0x091c0006__le,
++ arm_instr_multi_0x091c0006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_98[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09140018__eq,
++ arm_instr_multi_0x09140018__ne,
++ arm_instr_multi_0x09140018__cs,
++ arm_instr_multi_0x09140018__cc,
++ arm_instr_multi_0x09140018__mi,
++ arm_instr_multi_0x09140018__pl,
++ arm_instr_multi_0x09140018__vs,
++ arm_instr_multi_0x09140018__vc,
++ arm_instr_multi_0x09140018__hi,
++ arm_instr_multi_0x09140018__ls,
++ arm_instr_multi_0x09140018__ge,
++ arm_instr_multi_0x09140018__lt,
++ arm_instr_multi_0x09140018__gt,
++ arm_instr_multi_0x09140018__le,
++ arm_instr_multi_0x09140018,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_100[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09160060__eq,
++ arm_instr_multi_0x09160060__ne,
++ arm_instr_multi_0x09160060__cs,
++ arm_instr_multi_0x09160060__cc,
++ arm_instr_multi_0x09160060__mi,
++ arm_instr_multi_0x09160060__pl,
++ arm_instr_multi_0x09160060__vs,
++ arm_instr_multi_0x09160060__vc,
++ arm_instr_multi_0x09160060__hi,
++ arm_instr_multi_0x09160060__ls,
++ arm_instr_multi_0x09160060__ge,
++ arm_instr_multi_0x09160060__lt,
++ arm_instr_multi_0x09160060__gt,
++ arm_instr_multi_0x09160060__le,
++ arm_instr_multi_0x09160060,
++ arm_instr_nop,
++ arm_instr_multi_0x08160060__eq,
++ arm_instr_multi_0x08160060__ne,
++ arm_instr_multi_0x08160060__cs,
++ arm_instr_multi_0x08160060__cc,
++ arm_instr_multi_0x08160060__mi,
++ arm_instr_multi_0x08160060__pl,
++ arm_instr_multi_0x08160060__vs,
++ arm_instr_multi_0x08160060__vc,
++ arm_instr_multi_0x08160060__hi,
++ arm_instr_multi_0x08160060__ls,
++ arm_instr_multi_0x08160060__ge,
++ arm_instr_multi_0x08160060__lt,
++ arm_instr_multi_0x08160060__gt,
++ arm_instr_multi_0x08160060__le,
++ arm_instr_multi_0x08160060,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_112[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08150003__eq,
++ arm_instr_multi_0x08150003__ne,
++ arm_instr_multi_0x08150003__cs,
++ arm_instr_multi_0x08150003__cc,
++ arm_instr_multi_0x08150003__mi,
++ arm_instr_multi_0x08150003__pl,
++ arm_instr_multi_0x08150003__vs,
++ arm_instr_multi_0x08150003__vc,
++ arm_instr_multi_0x08150003__hi,
++ arm_instr_multi_0x08150003__ls,
++ arm_instr_multi_0x08150003__ge,
++ arm_instr_multi_0x08150003__lt,
++ arm_instr_multi_0x08150003__gt,
++ arm_instr_multi_0x08150003__le,
++ arm_instr_multi_0x08150003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_113[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x0817000c__eq,
++ arm_instr_multi_0x0817000c__ne,
++ arm_instr_multi_0x0817000c__cs,
++ arm_instr_multi_0x0817000c__cc,
++ arm_instr_multi_0x0817000c__mi,
++ arm_instr_multi_0x0817000c__pl,
++ arm_instr_multi_0x0817000c__vs,
++ arm_instr_multi_0x0817000c__vc,
++ arm_instr_multi_0x0817000c__hi,
++ arm_instr_multi_0x0817000c__ls,
++ arm_instr_multi_0x0817000c__ge,
++ arm_instr_multi_0x0817000c__lt,
++ arm_instr_multi_0x0817000c__gt,
++ arm_instr_multi_0x0817000c__le,
++ arm_instr_multi_0x0817000c,
++ arm_instr_nop,
++ arm_instr_multi_0x09150006__eq,
++ arm_instr_multi_0x09150006__ne,
++ arm_instr_multi_0x09150006__cs,
++ arm_instr_multi_0x09150006__cc,
++ arm_instr_multi_0x09150006__mi,
++ arm_instr_multi_0x09150006__pl,
++ arm_instr_multi_0x09150006__vs,
++ arm_instr_multi_0x09150006__vc,
++ arm_instr_multi_0x09150006__hi,
++ arm_instr_multi_0x09150006__ls,
++ arm_instr_multi_0x09150006__ge,
++ arm_instr_multi_0x09150006__lt,
++ arm_instr_multi_0x09150006__gt,
++ arm_instr_multi_0x09150006__le,
++ arm_instr_multi_0x09150006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_114[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09150018__eq,
++ arm_instr_multi_0x09150018__ne,
++ arm_instr_multi_0x09150018__cs,
++ arm_instr_multi_0x09150018__cc,
++ arm_instr_multi_0x09150018__mi,
++ arm_instr_multi_0x09150018__pl,
++ arm_instr_multi_0x09150018__vs,
++ arm_instr_multi_0x09150018__vc,
++ arm_instr_multi_0x09150018__hi,
++ arm_instr_multi_0x09150018__ls,
++ arm_instr_multi_0x09150018__ge,
++ arm_instr_multi_0x09150018__lt,
++ arm_instr_multi_0x09150018__gt,
++ arm_instr_multi_0x09150018__le,
++ arm_instr_multi_0x09150018,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_128[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08820003__eq,
++ arm_instr_multi_0x08820003__ne,
++ arm_instr_multi_0x08820003__cs,
++ arm_instr_multi_0x08820003__cc,
++ arm_instr_multi_0x08820003__mi,
++ arm_instr_multi_0x08820003__pl,
++ arm_instr_multi_0x08820003__vs,
++ arm_instr_multi_0x08820003__vc,
++ arm_instr_multi_0x08820003__hi,
++ arm_instr_multi_0x08820003__ls,
++ arm_instr_multi_0x08820003__ge,
++ arm_instr_multi_0x08820003__lt,
++ arm_instr_multi_0x08820003__gt,
++ arm_instr_multi_0x08820003__le,
++ arm_instr_multi_0x08820003,
++ arm_instr_nop,
++ arm_instr_multi_0x08a01008__eq,
++ arm_instr_multi_0x08a01008__ne,
++ arm_instr_multi_0x08a01008__cs,
++ arm_instr_multi_0x08a01008__cc,
++ arm_instr_multi_0x08a01008__mi,
++ arm_instr_multi_0x08a01008__pl,
++ arm_instr_multi_0x08a01008__vs,
++ arm_instr_multi_0x08a01008__vc,
++ arm_instr_multi_0x08a01008__hi,
++ arm_instr_multi_0x08a01008__ls,
++ arm_instr_multi_0x08a01008__ge,
++ arm_instr_multi_0x08a01008__lt,
++ arm_instr_multi_0x08a01008__gt,
++ arm_instr_multi_0x08a01008__le,
++ arm_instr_multi_0x08a01008,
++ arm_instr_nop,
++ arm_instr_multi_0x08a05008__eq,
++ arm_instr_multi_0x08a05008__ne,
++ arm_instr_multi_0x08a05008__cs,
++ arm_instr_multi_0x08a05008__cc,
++ arm_instr_multi_0x08a05008__mi,
++ arm_instr_multi_0x08a05008__pl,
++ arm_instr_multi_0x08a05008__vs,
++ arm_instr_multi_0x08a05008__vc,
++ arm_instr_multi_0x08a05008__hi,
++ arm_instr_multi_0x08a05008__ls,
++ arm_instr_multi_0x08a05008__ge,
++ arm_instr_multi_0x08a05008__lt,
++ arm_instr_multi_0x08a05008__gt,
++ arm_instr_multi_0x08a05008__le,
++ arm_instr_multi_0x08a05008,
++ arm_instr_nop,
++ arm_instr_multi_0x08a20600__eq,
++ arm_instr_multi_0x08a20600__ne,
++ arm_instr_multi_0x08a20600__cs,
++ arm_instr_multi_0x08a20600__cc,
++ arm_instr_multi_0x08a20600__mi,
++ arm_instr_multi_0x08a20600__pl,
++ arm_instr_multi_0x08a20600__vs,
++ arm_instr_multi_0x08a20600__vc,
++ arm_instr_multi_0x08a20600__hi,
++ arm_instr_multi_0x08a20600__ls,
++ arm_instr_multi_0x08a20600__ge,
++ arm_instr_multi_0x08a20600__lt,
++ arm_instr_multi_0x08a20600__gt,
++ arm_instr_multi_0x08a20600__le,
++ arm_instr_multi_0x08a20600,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_129[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08800006__eq,
++ arm_instr_multi_0x08800006__ne,
++ arm_instr_multi_0x08800006__cs,
++ arm_instr_multi_0x08800006__cc,
++ arm_instr_multi_0x08800006__mi,
++ arm_instr_multi_0x08800006__pl,
++ arm_instr_multi_0x08800006__vs,
++ arm_instr_multi_0x08800006__vc,
++ arm_instr_multi_0x08800006__hi,
++ arm_instr_multi_0x08800006__ls,
++ arm_instr_multi_0x08800006__ge,
++ arm_instr_multi_0x08800006__lt,
++ arm_instr_multi_0x08800006__gt,
++ arm_instr_multi_0x08800006__le,
++ arm_instr_multi_0x08800006,
++ arm_instr_nop,
++ arm_instr_multi_0x08880006__eq,
++ arm_instr_multi_0x08880006__ne,
++ arm_instr_multi_0x08880006__cs,
++ arm_instr_multi_0x08880006__cc,
++ arm_instr_multi_0x08880006__mi,
++ arm_instr_multi_0x08880006__pl,
++ arm_instr_multi_0x08880006__vs,
++ arm_instr_multi_0x08880006__vc,
++ arm_instr_multi_0x08880006__hi,
++ arm_instr_multi_0x08880006__ls,
++ arm_instr_multi_0x08880006__ge,
++ arm_instr_multi_0x08880006__lt,
++ arm_instr_multi_0x08880006__gt,
++ arm_instr_multi_0x08880006__le,
++ arm_instr_multi_0x08880006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_130[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08820018__eq,
++ arm_instr_multi_0x08820018__ne,
++ arm_instr_multi_0x08820018__cs,
++ arm_instr_multi_0x08820018__cc,
++ arm_instr_multi_0x08820018__mi,
++ arm_instr_multi_0x08820018__pl,
++ arm_instr_multi_0x08820018__vs,
++ arm_instr_multi_0x08820018__vc,
++ arm_instr_multi_0x08820018__hi,
++ arm_instr_multi_0x08820018__ls,
++ arm_instr_multi_0x08820018__ge,
++ arm_instr_multi_0x08820018__lt,
++ arm_instr_multi_0x08820018__gt,
++ arm_instr_multi_0x08820018__le,
++ arm_instr_multi_0x08820018,
++ arm_instr_nop,
++ arm_instr_multi_0x08a05018__eq,
++ arm_instr_multi_0x08a05018__ne,
++ arm_instr_multi_0x08a05018__cs,
++ arm_instr_multi_0x08a05018__cc,
++ arm_instr_multi_0x08a05018__mi,
++ arm_instr_multi_0x08a05018__pl,
++ arm_instr_multi_0x08a05018__vs,
++ arm_instr_multi_0x08a05018__vc,
++ arm_instr_multi_0x08a05018__hi,
++ arm_instr_multi_0x08a05018__ls,
++ arm_instr_multi_0x08a05018__ge,
++ arm_instr_multi_0x08a05018__lt,
++ arm_instr_multi_0x08a05018__gt,
++ arm_instr_multi_0x08a05018__le,
++ arm_instr_multi_0x08a05018,
++ arm_instr_nop,
++ arm_instr_multi_0x08880018__eq,
++ arm_instr_multi_0x08880018__ne,
++ arm_instr_multi_0x08880018__cs,
++ arm_instr_multi_0x08880018__cc,
++ arm_instr_multi_0x08880018__mi,
++ arm_instr_multi_0x08880018__pl,
++ arm_instr_multi_0x08880018__vs,
++ arm_instr_multi_0x08880018__vc,
++ arm_instr_multi_0x08880018__hi,
++ arm_instr_multi_0x08880018__ls,
++ arm_instr_multi_0x08880018__ge,
++ arm_instr_multi_0x08880018__lt,
++ arm_instr_multi_0x08880018__gt,
++ arm_instr_multi_0x08880018__le,
++ arm_instr_multi_0x08880018,
++ arm_instr_nop,
++ arm_instr_multi_0x08820030__eq,
++ arm_instr_multi_0x08820030__ne,
++ arm_instr_multi_0x08820030__cs,
++ arm_instr_multi_0x08820030__cc,
++ arm_instr_multi_0x08820030__mi,
++ arm_instr_multi_0x08820030__pl,
++ arm_instr_multi_0x08820030__vs,
++ arm_instr_multi_0x08820030__vc,
++ arm_instr_multi_0x08820030__hi,
++ arm_instr_multi_0x08820030__ls,
++ arm_instr_multi_0x08820030__ge,
++ arm_instr_multi_0x08820030__lt,
++ arm_instr_multi_0x08820030__gt,
++ arm_instr_multi_0x08820030__le,
++ arm_instr_multi_0x08820030,
++ arm_instr_nop,
++ arm_instr_multi_0x08800018__eq,
++ arm_instr_multi_0x08800018__ne,
++ arm_instr_multi_0x08800018__cs,
++ arm_instr_multi_0x08800018__cc,
++ arm_instr_multi_0x08800018__mi,
++ arm_instr_multi_0x08800018__pl,
++ arm_instr_multi_0x08800018__vs,
++ arm_instr_multi_0x08800018__vc,
++ arm_instr_multi_0x08800018__hi,
++ arm_instr_multi_0x08800018__ls,
++ arm_instr_multi_0x08800018__ge,
++ arm_instr_multi_0x08800018__lt,
++ arm_instr_multi_0x08800018__gt,
++ arm_instr_multi_0x08800018__le,
++ arm_instr_multi_0x08800018,
++ arm_instr_nop,
++ arm_instr_multi_0x08800030__eq,
++ arm_instr_multi_0x08800030__ne,
++ arm_instr_multi_0x08800030__cs,
++ arm_instr_multi_0x08800030__cc,
++ arm_instr_multi_0x08800030__mi,
++ arm_instr_multi_0x08800030__pl,
++ arm_instr_multi_0x08800030__vs,
++ arm_instr_multi_0x08800030__vc,
++ arm_instr_multi_0x08800030__hi,
++ arm_instr_multi_0x08800030__ls,
++ arm_instr_multi_0x08800030__ge,
++ arm_instr_multi_0x08800030__lt,
++ arm_instr_multi_0x08800030__gt,
++ arm_instr_multi_0x08800030__le,
++ arm_instr_multi_0x08800030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_132[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x088200c0__eq,
++ arm_instr_multi_0x088200c0__ne,
++ arm_instr_multi_0x088200c0__cs,
++ arm_instr_multi_0x088200c0__cc,
++ arm_instr_multi_0x088200c0__mi,
++ arm_instr_multi_0x088200c0__pl,
++ arm_instr_multi_0x088200c0__vs,
++ arm_instr_multi_0x088200c0__vc,
++ arm_instr_multi_0x088200c0__hi,
++ arm_instr_multi_0x088200c0__ls,
++ arm_instr_multi_0x088200c0__ge,
++ arm_instr_multi_0x088200c0__lt,
++ arm_instr_multi_0x088200c0__gt,
++ arm_instr_multi_0x088200c0__le,
++ arm_instr_multi_0x088200c0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_136[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08820180__eq,
++ arm_instr_multi_0x08820180__ne,
++ arm_instr_multi_0x08820180__cs,
++ arm_instr_multi_0x08820180__cc,
++ arm_instr_multi_0x08820180__mi,
++ arm_instr_multi_0x08820180__pl,
++ arm_instr_multi_0x08820180__vs,
++ arm_instr_multi_0x08820180__vc,
++ arm_instr_multi_0x08820180__hi,
++ arm_instr_multi_0x08820180__ls,
++ arm_instr_multi_0x08820180__ge,
++ arm_instr_multi_0x08820180__lt,
++ arm_instr_multi_0x08820180__gt,
++ arm_instr_multi_0x08820180__le,
++ arm_instr_multi_0x08820180,
++ arm_instr_nop,
++ arm_instr_multi_0x08800180__eq,
++ arm_instr_multi_0x08800180__ne,
++ arm_instr_multi_0x08800180__cs,
++ arm_instr_multi_0x08800180__cc,
++ arm_instr_multi_0x08800180__mi,
++ arm_instr_multi_0x08800180__pl,
++ arm_instr_multi_0x08800180__vs,
++ arm_instr_multi_0x08800180__vc,
++ arm_instr_multi_0x08800180__hi,
++ arm_instr_multi_0x08800180__ls,
++ arm_instr_multi_0x08800180__ge,
++ arm_instr_multi_0x08800180__lt,
++ arm_instr_multi_0x08800180__gt,
++ arm_instr_multi_0x08800180__le,
++ arm_instr_multi_0x08800180,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_142[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08a051f8__eq,
++ arm_instr_multi_0x08a051f8__ne,
++ arm_instr_multi_0x08a051f8__cs,
++ arm_instr_multi_0x08a051f8__cc,
++ arm_instr_multi_0x08a051f8__mi,
++ arm_instr_multi_0x08a051f8__pl,
++ arm_instr_multi_0x08a051f8__vs,
++ arm_instr_multi_0x08a051f8__vc,
++ arm_instr_multi_0x08a051f8__hi,
++ arm_instr_multi_0x08a051f8__ls,
++ arm_instr_multi_0x08a051f8__ge,
++ arm_instr_multi_0x08a051f8__lt,
++ arm_instr_multi_0x08a051f8__gt,
++ arm_instr_multi_0x08a051f8__le,
++ arm_instr_multi_0x08a051f8,
++ arm_instr_nop,
++ arm_instr_multi_0x08807ff0__eq,
++ arm_instr_multi_0x08807ff0__ne,
++ arm_instr_multi_0x08807ff0__cs,
++ arm_instr_multi_0x08807ff0__cc,
++ arm_instr_multi_0x08807ff0__mi,
++ arm_instr_multi_0x08807ff0__pl,
++ arm_instr_multi_0x08807ff0__vs,
++ arm_instr_multi_0x08807ff0__vc,
++ arm_instr_multi_0x08807ff0__hi,
++ arm_instr_multi_0x08807ff0__ls,
++ arm_instr_multi_0x08807ff0__ge,
++ arm_instr_multi_0x08807ff0__lt,
++ arm_instr_multi_0x08807ff0__gt,
++ arm_instr_multi_0x08807ff0__le,
++ arm_instr_multi_0x08807ff0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_144[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08830600__eq,
++ arm_instr_multi_0x08830600__ne,
++ arm_instr_multi_0x08830600__cs,
++ arm_instr_multi_0x08830600__cc,
++ arm_instr_multi_0x08830600__mi,
++ arm_instr_multi_0x08830600__pl,
++ arm_instr_multi_0x08830600__vs,
++ arm_instr_multi_0x08830600__vc,
++ arm_instr_multi_0x08830600__hi,
++ arm_instr_multi_0x08830600__ls,
++ arm_instr_multi_0x08830600__ge,
++ arm_instr_multi_0x08830600__lt,
++ arm_instr_multi_0x08830600__gt,
++ arm_instr_multi_0x08830600__le,
++ arm_instr_multi_0x08830600,
++ arm_instr_nop,
++ arm_instr_multi_0x08810600__eq,
++ arm_instr_multi_0x08810600__ne,
++ arm_instr_multi_0x08810600__cs,
++ arm_instr_multi_0x08810600__cc,
++ arm_instr_multi_0x08810600__mi,
++ arm_instr_multi_0x08810600__pl,
++ arm_instr_multi_0x08810600__vs,
++ arm_instr_multi_0x08810600__vc,
++ arm_instr_multi_0x08810600__hi,
++ arm_instr_multi_0x08810600__ls,
++ arm_instr_multi_0x08810600__ge,
++ arm_instr_multi_0x08810600__lt,
++ arm_instr_multi_0x08810600__gt,
++ arm_instr_multi_0x08810600__le,
++ arm_instr_multi_0x08810600,
++ arm_instr_nop,
++ arm_instr_multi_0x098b0003__eq,
++ arm_instr_multi_0x098b0003__ne,
++ arm_instr_multi_0x098b0003__cs,
++ arm_instr_multi_0x098b0003__cc,
++ arm_instr_multi_0x098b0003__mi,
++ arm_instr_multi_0x098b0003__pl,
++ arm_instr_multi_0x098b0003__vs,
++ arm_instr_multi_0x098b0003__vc,
++ arm_instr_multi_0x098b0003__hi,
++ arm_instr_multi_0x098b0003__ls,
++ arm_instr_multi_0x098b0003__ge,
++ arm_instr_multi_0x098b0003__lt,
++ arm_instr_multi_0x098b0003__gt,
++ arm_instr_multi_0x098b0003__le,
++ arm_instr_multi_0x098b0003,
++ arm_instr_nop,
++ arm_instr_multi_0x08830003__eq,
++ arm_instr_multi_0x08830003__ne,
++ arm_instr_multi_0x08830003__cs,
++ arm_instr_multi_0x08830003__cc,
++ arm_instr_multi_0x08830003__mi,
++ arm_instr_multi_0x08830003__pl,
++ arm_instr_multi_0x08830003__vs,
++ arm_instr_multi_0x08830003__vc,
++ arm_instr_multi_0x08830003__hi,
++ arm_instr_multi_0x08830003__ls,
++ arm_instr_multi_0x08830003__ge,
++ arm_instr_multi_0x08830003__lt,
++ arm_instr_multi_0x08830003__gt,
++ arm_instr_multi_0x08830003__le,
++ arm_instr_multi_0x08830003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_145[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08830006__eq,
++ arm_instr_multi_0x08830006__ne,
++ arm_instr_multi_0x08830006__cs,
++ arm_instr_multi_0x08830006__cc,
++ arm_instr_multi_0x08830006__mi,
++ arm_instr_multi_0x08830006__pl,
++ arm_instr_multi_0x08830006__vs,
++ arm_instr_multi_0x08830006__vc,
++ arm_instr_multi_0x08830006__hi,
++ arm_instr_multi_0x08830006__ls,
++ arm_instr_multi_0x08830006__ge,
++ arm_instr_multi_0x08830006__lt,
++ arm_instr_multi_0x08830006__gt,
++ arm_instr_multi_0x08830006__le,
++ arm_instr_multi_0x08830006,
++ arm_instr_nop,
++ arm_instr_multi_0x08890006__eq,
++ arm_instr_multi_0x08890006__ne,
++ arm_instr_multi_0x08890006__cs,
++ arm_instr_multi_0x08890006__cc,
++ arm_instr_multi_0x08890006__mi,
++ arm_instr_multi_0x08890006__pl,
++ arm_instr_multi_0x08890006__vs,
++ arm_instr_multi_0x08890006__vc,
++ arm_instr_multi_0x08890006__hi,
++ arm_instr_multi_0x08890006__ls,
++ arm_instr_multi_0x08890006__ge,
++ arm_instr_multi_0x08890006__lt,
++ arm_instr_multi_0x08890006__gt,
++ arm_instr_multi_0x08890006__le,
++ arm_instr_multi_0x08890006,
++ arm_instr_nop,
++ arm_instr_multi_0x09830006__eq,
++ arm_instr_multi_0x09830006__ne,
++ arm_instr_multi_0x09830006__cs,
++ arm_instr_multi_0x09830006__cc,
++ arm_instr_multi_0x09830006__mi,
++ arm_instr_multi_0x09830006__pl,
++ arm_instr_multi_0x09830006__vs,
++ arm_instr_multi_0x09830006__vc,
++ arm_instr_multi_0x09830006__hi,
++ arm_instr_multi_0x09830006__ls,
++ arm_instr_multi_0x09830006__ge,
++ arm_instr_multi_0x09830006__lt,
++ arm_instr_multi_0x09830006__gt,
++ arm_instr_multi_0x09830006__le,
++ arm_instr_multi_0x09830006,
++ arm_instr_nop,
++ arm_instr_multi_0x0989000c__eq,
++ arm_instr_multi_0x0989000c__ne,
++ arm_instr_multi_0x0989000c__cs,
++ arm_instr_multi_0x0989000c__cc,
++ arm_instr_multi_0x0989000c__mi,
++ arm_instr_multi_0x0989000c__pl,
++ arm_instr_multi_0x0989000c__vs,
++ arm_instr_multi_0x0989000c__vc,
++ arm_instr_multi_0x0989000c__hi,
++ arm_instr_multi_0x0989000c__ls,
++ arm_instr_multi_0x0989000c__ge,
++ arm_instr_multi_0x0989000c__lt,
++ arm_instr_multi_0x0989000c__gt,
++ arm_instr_multi_0x0989000c__le,
++ arm_instr_multi_0x0989000c,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_146[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08810018__eq,
++ arm_instr_multi_0x08810018__ne,
++ arm_instr_multi_0x08810018__cs,
++ arm_instr_multi_0x08810018__cc,
++ arm_instr_multi_0x08810018__mi,
++ arm_instr_multi_0x08810018__pl,
++ arm_instr_multi_0x08810018__vs,
++ arm_instr_multi_0x08810018__vc,
++ arm_instr_multi_0x08810018__hi,
++ arm_instr_multi_0x08810018__ls,
++ arm_instr_multi_0x08810018__ge,
++ arm_instr_multi_0x08810018__lt,
++ arm_instr_multi_0x08810018__gt,
++ arm_instr_multi_0x08810018__le,
++ arm_instr_multi_0x08810018,
++ arm_instr_nop,
++ arm_instr_multi_0x08830030__eq,
++ arm_instr_multi_0x08830030__ne,
++ arm_instr_multi_0x08830030__cs,
++ arm_instr_multi_0x08830030__cc,
++ arm_instr_multi_0x08830030__mi,
++ arm_instr_multi_0x08830030__pl,
++ arm_instr_multi_0x08830030__vs,
++ arm_instr_multi_0x08830030__vc,
++ arm_instr_multi_0x08830030__hi,
++ arm_instr_multi_0x08830030__ls,
++ arm_instr_multi_0x08830030__ge,
++ arm_instr_multi_0x08830030__lt,
++ arm_instr_multi_0x08830030__gt,
++ arm_instr_multi_0x08830030__le,
++ arm_instr_multi_0x08830030,
++ arm_instr_nop,
++ arm_instr_multi_0x08890030__eq,
++ arm_instr_multi_0x08890030__ne,
++ arm_instr_multi_0x08890030__cs,
++ arm_instr_multi_0x08890030__cc,
++ arm_instr_multi_0x08890030__mi,
++ arm_instr_multi_0x08890030__pl,
++ arm_instr_multi_0x08890030__vs,
++ arm_instr_multi_0x08890030__vc,
++ arm_instr_multi_0x08890030__hi,
++ arm_instr_multi_0x08890030__ls,
++ arm_instr_multi_0x08890030__ge,
++ arm_instr_multi_0x08890030__lt,
++ arm_instr_multi_0x08890030__gt,
++ arm_instr_multi_0x08890030__le,
++ arm_instr_multi_0x08890030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_148[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08830060__eq,
++ arm_instr_multi_0x08830060__ne,
++ arm_instr_multi_0x08830060__cs,
++ arm_instr_multi_0x08830060__cc,
++ arm_instr_multi_0x08830060__mi,
++ arm_instr_multi_0x08830060__pl,
++ arm_instr_multi_0x08830060__vs,
++ arm_instr_multi_0x08830060__vc,
++ arm_instr_multi_0x08830060__hi,
++ arm_instr_multi_0x08830060__ls,
++ arm_instr_multi_0x08830060__ge,
++ arm_instr_multi_0x08830060__lt,
++ arm_instr_multi_0x08830060__gt,
++ arm_instr_multi_0x08830060__le,
++ arm_instr_multi_0x08830060,
++ arm_instr_nop,
++ arm_instr_multi_0x08a100c0__eq,
++ arm_instr_multi_0x08a100c0__ne,
++ arm_instr_multi_0x08a100c0__cs,
++ arm_instr_multi_0x08a100c0__cc,
++ arm_instr_multi_0x08a100c0__mi,
++ arm_instr_multi_0x08a100c0__pl,
++ arm_instr_multi_0x08a100c0__vs,
++ arm_instr_multi_0x08a100c0__vc,
++ arm_instr_multi_0x08a100c0__hi,
++ arm_instr_multi_0x08a100c0__ls,
++ arm_instr_multi_0x08a100c0__ge,
++ arm_instr_multi_0x08a100c0__lt,
++ arm_instr_multi_0x08a100c0__gt,
++ arm_instr_multi_0x08a100c0__le,
++ arm_instr_multi_0x08a100c0,
++ arm_instr_nop,
++ arm_instr_multi_0x088900c0__eq,
++ arm_instr_multi_0x088900c0__ne,
++ arm_instr_multi_0x088900c0__cs,
++ arm_instr_multi_0x088900c0__cc,
++ arm_instr_multi_0x088900c0__mi,
++ arm_instr_multi_0x088900c0__pl,
++ arm_instr_multi_0x088900c0__vs,
++ arm_instr_multi_0x088900c0__vc,
++ arm_instr_multi_0x088900c0__hi,
++ arm_instr_multi_0x088900c0__ls,
++ arm_instr_multi_0x088900c0__ge,
++ arm_instr_multi_0x088900c0__lt,
++ arm_instr_multi_0x088900c0__gt,
++ arm_instr_multi_0x088900c0__le,
++ arm_instr_multi_0x088900c0,
++ arm_instr_nop,
++ arm_instr_multi_0x088300c0__eq,
++ arm_instr_multi_0x088300c0__ne,
++ arm_instr_multi_0x088300c0__cs,
++ arm_instr_multi_0x088300c0__cc,
++ arm_instr_multi_0x088300c0__mi,
++ arm_instr_multi_0x088300c0__pl,
++ arm_instr_multi_0x088300c0__vs,
++ arm_instr_multi_0x088300c0__vc,
++ arm_instr_multi_0x088300c0__hi,
++ arm_instr_multi_0x088300c0__ls,
++ arm_instr_multi_0x088300c0__ge,
++ arm_instr_multi_0x088300c0__lt,
++ arm_instr_multi_0x088300c0__gt,
++ arm_instr_multi_0x088300c0__le,
++ arm_instr_multi_0x088300c0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_152[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08a10300__eq,
++ arm_instr_multi_0x08a10300__ne,
++ arm_instr_multi_0x08a10300__cs,
++ arm_instr_multi_0x08a10300__cc,
++ arm_instr_multi_0x08a10300__mi,
++ arm_instr_multi_0x08a10300__pl,
++ arm_instr_multi_0x08a10300__vs,
++ arm_instr_multi_0x08a10300__vc,
++ arm_instr_multi_0x08a10300__hi,
++ arm_instr_multi_0x08a10300__ls,
++ arm_instr_multi_0x08a10300__ge,
++ arm_instr_multi_0x08a10300__lt,
++ arm_instr_multi_0x08a10300__gt,
++ arm_instr_multi_0x08a10300__le,
++ arm_instr_multi_0x08a10300,
++ arm_instr_nop,
++ arm_instr_multi_0x08a10f00__eq,
++ arm_instr_multi_0x08a10f00__ne,
++ arm_instr_multi_0x08a10f00__cs,
++ arm_instr_multi_0x08a10f00__cc,
++ arm_instr_multi_0x08a10f00__mi,
++ arm_instr_multi_0x08a10f00__pl,
++ arm_instr_multi_0x08a10f00__vs,
++ arm_instr_multi_0x08a10f00__vc,
++ arm_instr_multi_0x08a10f00__hi,
++ arm_instr_multi_0x08a10f00__ls,
++ arm_instr_multi_0x08a10f00__ge,
++ arm_instr_multi_0x08a10f00__lt,
++ arm_instr_multi_0x08a10f00__gt,
++ arm_instr_multi_0x08a10f00__le,
++ arm_instr_multi_0x08a10f00,
++ arm_instr_nop,
++ arm_instr_multi_0x08830300__eq,
++ arm_instr_multi_0x08830300__ne,
++ arm_instr_multi_0x08830300__cs,
++ arm_instr_multi_0x08830300__cc,
++ arm_instr_multi_0x08830300__mi,
++ arm_instr_multi_0x08830300__pl,
++ arm_instr_multi_0x08830300__vs,
++ arm_instr_multi_0x08830300__vc,
++ arm_instr_multi_0x08830300__hi,
++ arm_instr_multi_0x08830300__ls,
++ arm_instr_multi_0x08830300__ge,
++ arm_instr_multi_0x08830300__lt,
++ arm_instr_multi_0x08830300__gt,
++ arm_instr_multi_0x08830300__le,
++ arm_instr_multi_0x08830300,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_158[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08a151f8__eq,
++ arm_instr_multi_0x08a151f8__ne,
++ arm_instr_multi_0x08a151f8__cs,
++ arm_instr_multi_0x08a151f8__cc,
++ arm_instr_multi_0x08a151f8__mi,
++ arm_instr_multi_0x08a151f8__pl,
++ arm_instr_multi_0x08a151f8__vs,
++ arm_instr_multi_0x08a151f8__vc,
++ arm_instr_multi_0x08a151f8__hi,
++ arm_instr_multi_0x08a151f8__ls,
++ arm_instr_multi_0x08a151f8__ge,
++ arm_instr_multi_0x08a151f8__lt,
++ arm_instr_multi_0x08a151f8__gt,
++ arm_instr_multi_0x08a151f8__le,
++ arm_instr_multi_0x08a151f8,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_160[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08840003__eq,
++ arm_instr_multi_0x08840003__ne,
++ arm_instr_multi_0x08840003__cs,
++ arm_instr_multi_0x08840003__cc,
++ arm_instr_multi_0x08840003__mi,
++ arm_instr_multi_0x08840003__pl,
++ arm_instr_multi_0x08840003__vs,
++ arm_instr_multi_0x08840003__vc,
++ arm_instr_multi_0x08840003__hi,
++ arm_instr_multi_0x08840003__ls,
++ arm_instr_multi_0x08840003__ge,
++ arm_instr_multi_0x08840003__lt,
++ arm_instr_multi_0x08840003__gt,
++ arm_instr_multi_0x08840003__le,
++ arm_instr_multi_0x08840003,
++ arm_instr_nop,
++ arm_instr_multi_0x088e1002__eq,
++ arm_instr_multi_0x088e1002__ne,
++ arm_instr_multi_0x088e1002__cs,
++ arm_instr_multi_0x088e1002__cc,
++ arm_instr_multi_0x088e1002__mi,
++ arm_instr_multi_0x088e1002__pl,
++ arm_instr_multi_0x088e1002__vs,
++ arm_instr_multi_0x088e1002__vc,
++ arm_instr_multi_0x088e1002__hi,
++ arm_instr_multi_0x088e1002__ls,
++ arm_instr_multi_0x088e1002__ge,
++ arm_instr_multi_0x088e1002__lt,
++ arm_instr_multi_0x088e1002__gt,
++ arm_instr_multi_0x088e1002__le,
++ arm_instr_multi_0x088e1002,
++ arm_instr_nop,
++ arm_instr_multi_0x08840600__eq,
++ arm_instr_multi_0x08840600__ne,
++ arm_instr_multi_0x08840600__cs,
++ arm_instr_multi_0x08840600__cc,
++ arm_instr_multi_0x08840600__mi,
++ arm_instr_multi_0x08840600__pl,
++ arm_instr_multi_0x08840600__vs,
++ arm_instr_multi_0x08840600__vc,
++ arm_instr_multi_0x08840600__hi,
++ arm_instr_multi_0x08840600__ls,
++ arm_instr_multi_0x08840600__ge,
++ arm_instr_multi_0x08840600__lt,
++ arm_instr_multi_0x08840600__gt,
++ arm_instr_multi_0x08840600__le,
++ arm_instr_multi_0x08840600,
++ arm_instr_nop,
++ arm_instr_multi_0x088c0003__eq,
++ arm_instr_multi_0x088c0003__ne,
++ arm_instr_multi_0x088c0003__cs,
++ arm_instr_multi_0x088c0003__cc,
++ arm_instr_multi_0x088c0003__mi,
++ arm_instr_multi_0x088c0003__pl,
++ arm_instr_multi_0x088c0003__vs,
++ arm_instr_multi_0x088c0003__vc,
++ arm_instr_multi_0x088c0003__hi,
++ arm_instr_multi_0x088c0003__ls,
++ arm_instr_multi_0x088c0003__ge,
++ arm_instr_multi_0x088c0003__lt,
++ arm_instr_multi_0x088c0003__gt,
++ arm_instr_multi_0x088c0003__le,
++ arm_instr_multi_0x088c0003,
++ arm_instr_nop,
++ arm_instr_multi_0x098c0003__eq,
++ arm_instr_multi_0x098c0003__ne,
++ arm_instr_multi_0x098c0003__cs,
++ arm_instr_multi_0x098c0003__cc,
++ arm_instr_multi_0x098c0003__mi,
++ arm_instr_multi_0x098c0003__pl,
++ arm_instr_multi_0x098c0003__vs,
++ arm_instr_multi_0x098c0003__vc,
++ arm_instr_multi_0x098c0003__hi,
++ arm_instr_multi_0x098c0003__ls,
++ arm_instr_multi_0x098c0003__ge,
++ arm_instr_multi_0x098c0003__lt,
++ arm_instr_multi_0x098c0003__gt,
++ arm_instr_multi_0x098c0003__le,
++ arm_instr_multi_0x098c0003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_161[112])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08ac000c__eq,
++ arm_instr_multi_0x08ac000c__ne,
++ arm_instr_multi_0x08ac000c__cs,
++ arm_instr_multi_0x08ac000c__cc,
++ arm_instr_multi_0x08ac000c__mi,
++ arm_instr_multi_0x08ac000c__pl,
++ arm_instr_multi_0x08ac000c__vs,
++ arm_instr_multi_0x08ac000c__vc,
++ arm_instr_multi_0x08ac000c__hi,
++ arm_instr_multi_0x08ac000c__ls,
++ arm_instr_multi_0x08ac000c__ge,
++ arm_instr_multi_0x08ac000c__lt,
++ arm_instr_multi_0x08ac000c__gt,
++ arm_instr_multi_0x08ac000c__le,
++ arm_instr_multi_0x08ac000c,
++ arm_instr_nop,
++ arm_instr_multi_0x088c0006__eq,
++ arm_instr_multi_0x088c0006__ne,
++ arm_instr_multi_0x088c0006__cs,
++ arm_instr_multi_0x088c0006__cc,
++ arm_instr_multi_0x088c0006__mi,
++ arm_instr_multi_0x088c0006__pl,
++ arm_instr_multi_0x088c0006__vs,
++ arm_instr_multi_0x088c0006__vc,
++ arm_instr_multi_0x088c0006__hi,
++ arm_instr_multi_0x088c0006__ls,
++ arm_instr_multi_0x088c0006__ge,
++ arm_instr_multi_0x088c0006__lt,
++ arm_instr_multi_0x088c0006__gt,
++ arm_instr_multi_0x088c0006__le,
++ arm_instr_multi_0x088c0006,
++ arm_instr_nop,
++ arm_instr_multi_0x08860006__eq,
++ arm_instr_multi_0x08860006__ne,
++ arm_instr_multi_0x08860006__cs,
++ arm_instr_multi_0x08860006__cc,
++ arm_instr_multi_0x08860006__mi,
++ arm_instr_multi_0x08860006__pl,
++ arm_instr_multi_0x08860006__vs,
++ arm_instr_multi_0x08860006__vc,
++ arm_instr_multi_0x08860006__hi,
++ arm_instr_multi_0x08860006__ls,
++ arm_instr_multi_0x08860006__ge,
++ arm_instr_multi_0x08860006__lt,
++ arm_instr_multi_0x08860006__gt,
++ arm_instr_multi_0x08860006__le,
++ arm_instr_multi_0x08860006,
++ arm_instr_nop,
++ arm_instr_multi_0x088e000c__eq,
++ arm_instr_multi_0x088e000c__ne,
++ arm_instr_multi_0x088e000c__cs,
++ arm_instr_multi_0x088e000c__cc,
++ arm_instr_multi_0x088e000c__mi,
++ arm_instr_multi_0x088e000c__pl,
++ arm_instr_multi_0x088e000c__vs,
++ arm_instr_multi_0x088e000c__vc,
++ arm_instr_multi_0x088e000c__hi,
++ arm_instr_multi_0x088e000c__ls,
++ arm_instr_multi_0x088e000c__ge,
++ arm_instr_multi_0x088e000c__lt,
++ arm_instr_multi_0x088e000c__gt,
++ arm_instr_multi_0x088e000c__le,
++ arm_instr_multi_0x088e000c,
++ arm_instr_nop,
++ arm_instr_multi_0x09860006__eq,
++ arm_instr_multi_0x09860006__ne,
++ arm_instr_multi_0x09860006__cs,
++ arm_instr_multi_0x09860006__cc,
++ arm_instr_multi_0x09860006__mi,
++ arm_instr_multi_0x09860006__pl,
++ arm_instr_multi_0x09860006__vs,
++ arm_instr_multi_0x09860006__vc,
++ arm_instr_multi_0x09860006__hi,
++ arm_instr_multi_0x09860006__ls,
++ arm_instr_multi_0x09860006__ge,
++ arm_instr_multi_0x09860006__lt,
++ arm_instr_multi_0x09860006__gt,
++ arm_instr_multi_0x09860006__le,
++ arm_instr_multi_0x09860006,
++ arm_instr_nop,
++ arm_instr_multi_0x098c0006__eq,
++ arm_instr_multi_0x098c0006__ne,
++ arm_instr_multi_0x098c0006__cs,
++ arm_instr_multi_0x098c0006__cc,
++ arm_instr_multi_0x098c0006__mi,
++ arm_instr_multi_0x098c0006__pl,
++ arm_instr_multi_0x098c0006__vs,
++ arm_instr_multi_0x098c0006__vc,
++ arm_instr_multi_0x098c0006__hi,
++ arm_instr_multi_0x098c0006__ls,
++ arm_instr_multi_0x098c0006__ge,
++ arm_instr_multi_0x098c0006__lt,
++ arm_instr_multi_0x098c0006__gt,
++ arm_instr_multi_0x098c0006__le,
++ arm_instr_multi_0x098c0006,
++ arm_instr_nop,
++ arm_instr_multi_0x08ac000f__eq,
++ arm_instr_multi_0x08ac000f__ne,
++ arm_instr_multi_0x08ac000f__cs,
++ arm_instr_multi_0x08ac000f__cc,
++ arm_instr_multi_0x08ac000f__mi,
++ arm_instr_multi_0x08ac000f__pl,
++ arm_instr_multi_0x08ac000f__vs,
++ arm_instr_multi_0x08ac000f__vc,
++ arm_instr_multi_0x08ac000f__hi,
++ arm_instr_multi_0x08ac000f__ls,
++ arm_instr_multi_0x08ac000f__ge,
++ arm_instr_multi_0x08ac000f__lt,
++ arm_instr_multi_0x08ac000f__gt,
++ arm_instr_multi_0x08ac000f__le,
++ arm_instr_multi_0x08ac000f,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_162[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x088e0018__eq,
++ arm_instr_multi_0x088e0018__ne,
++ arm_instr_multi_0x088e0018__cs,
++ arm_instr_multi_0x088e0018__cc,
++ arm_instr_multi_0x088e0018__mi,
++ arm_instr_multi_0x088e0018__pl,
++ arm_instr_multi_0x088e0018__vs,
++ arm_instr_multi_0x088e0018__vc,
++ arm_instr_multi_0x088e0018__hi,
++ arm_instr_multi_0x088e0018__ls,
++ arm_instr_multi_0x088e0018__ge,
++ arm_instr_multi_0x088e0018__lt,
++ arm_instr_multi_0x088e0018__gt,
++ arm_instr_multi_0x088e0018__le,
++ arm_instr_multi_0x088e0018,
++ arm_instr_nop,
++ arm_instr_multi_0x088c0018__eq,
++ arm_instr_multi_0x088c0018__ne,
++ arm_instr_multi_0x088c0018__cs,
++ arm_instr_multi_0x088c0018__cc,
++ arm_instr_multi_0x088c0018__mi,
++ arm_instr_multi_0x088c0018__pl,
++ arm_instr_multi_0x088c0018__vs,
++ arm_instr_multi_0x088c0018__vc,
++ arm_instr_multi_0x088c0018__hi,
++ arm_instr_multi_0x088c0018__ls,
++ arm_instr_multi_0x088c0018__ge,
++ arm_instr_multi_0x088c0018__lt,
++ arm_instr_multi_0x088c0018__gt,
++ arm_instr_multi_0x088c0018__le,
++ arm_instr_multi_0x088c0018,
++ arm_instr_nop,
++ arm_instr_multi_0x09860030__eq,
++ arm_instr_multi_0x09860030__ne,
++ arm_instr_multi_0x09860030__cs,
++ arm_instr_multi_0x09860030__cc,
++ arm_instr_multi_0x09860030__mi,
++ arm_instr_multi_0x09860030__pl,
++ arm_instr_multi_0x09860030__vs,
++ arm_instr_multi_0x09860030__vc,
++ arm_instr_multi_0x09860030__hi,
++ arm_instr_multi_0x09860030__ls,
++ arm_instr_multi_0x09860030__ge,
++ arm_instr_multi_0x09860030__lt,
++ arm_instr_multi_0x09860030__gt,
++ arm_instr_multi_0x09860030__le,
++ arm_instr_multi_0x09860030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_164[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x088c0060__eq,
++ arm_instr_multi_0x088c0060__ne,
++ arm_instr_multi_0x088c0060__cs,
++ arm_instr_multi_0x088c0060__cc,
++ arm_instr_multi_0x088c0060__mi,
++ arm_instr_multi_0x088c0060__pl,
++ arm_instr_multi_0x088c0060__vs,
++ arm_instr_multi_0x088c0060__vc,
++ arm_instr_multi_0x088c0060__hi,
++ arm_instr_multi_0x088c0060__ls,
++ arm_instr_multi_0x088c0060__ge,
++ arm_instr_multi_0x088c0060__lt,
++ arm_instr_multi_0x088c0060__gt,
++ arm_instr_multi_0x088c0060__le,
++ arm_instr_multi_0x088c0060,
++ arm_instr_nop,
++ arm_instr_multi_0x088e00c0__eq,
++ arm_instr_multi_0x088e00c0__ne,
++ arm_instr_multi_0x088e00c0__cs,
++ arm_instr_multi_0x088e00c0__cc,
++ arm_instr_multi_0x088e00c0__mi,
++ arm_instr_multi_0x088e00c0__pl,
++ arm_instr_multi_0x088e00c0__vs,
++ arm_instr_multi_0x088e00c0__vc,
++ arm_instr_multi_0x088e00c0__hi,
++ arm_instr_multi_0x088e00c0__ls,
++ arm_instr_multi_0x088e00c0__ge,
++ arm_instr_multi_0x088e00c0__lt,
++ arm_instr_multi_0x088e00c0__gt,
++ arm_instr_multi_0x088e00c0__le,
++ arm_instr_multi_0x088e00c0,
++ arm_instr_nop,
++ arm_instr_multi_0x088c00c8__eq,
++ arm_instr_multi_0x088c00c8__ne,
++ arm_instr_multi_0x088c00c8__cs,
++ arm_instr_multi_0x088c00c8__cc,
++ arm_instr_multi_0x088c00c8__mi,
++ arm_instr_multi_0x088c00c8__pl,
++ arm_instr_multi_0x088c00c8__vs,
++ arm_instr_multi_0x088c00c8__vc,
++ arm_instr_multi_0x088c00c8__hi,
++ arm_instr_multi_0x088c00c8__ls,
++ arm_instr_multi_0x088c00c8__ge,
++ arm_instr_multi_0x088c00c8__lt,
++ arm_instr_multi_0x088c00c8__gt,
++ arm_instr_multi_0x088c00c8__le,
++ arm_instr_multi_0x088c00c8,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_176[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08850003__eq,
++ arm_instr_multi_0x08850003__ne,
++ arm_instr_multi_0x08850003__cs,
++ arm_instr_multi_0x08850003__cc,
++ arm_instr_multi_0x08850003__mi,
++ arm_instr_multi_0x08850003__pl,
++ arm_instr_multi_0x08850003__vs,
++ arm_instr_multi_0x08850003__vc,
++ arm_instr_multi_0x08850003__hi,
++ arm_instr_multi_0x08850003__ls,
++ arm_instr_multi_0x08850003__ge,
++ arm_instr_multi_0x08850003__lt,
++ arm_instr_multi_0x08850003__gt,
++ arm_instr_multi_0x08850003__le,
++ arm_instr_multi_0x08850003,
++ arm_instr_nop,
++ arm_instr_multi_0x088d0088__eq,
++ arm_instr_multi_0x088d0088__ne,
++ arm_instr_multi_0x088d0088__cs,
++ arm_instr_multi_0x088d0088__cc,
++ arm_instr_multi_0x088d0088__mi,
++ arm_instr_multi_0x088d0088__pl,
++ arm_instr_multi_0x088d0088__vs,
++ arm_instr_multi_0x088d0088__vc,
++ arm_instr_multi_0x088d0088__hi,
++ arm_instr_multi_0x088d0088__ls,
++ arm_instr_multi_0x088d0088__ge,
++ arm_instr_multi_0x088d0088__lt,
++ arm_instr_multi_0x088d0088__gt,
++ arm_instr_multi_0x088d0088__le,
++ arm_instr_multi_0x088d0088,
++ arm_instr_nop,
++ arm_instr_multi_0x088d1020__eq,
++ arm_instr_multi_0x088d1020__ne,
++ arm_instr_multi_0x088d1020__cs,
++ arm_instr_multi_0x088d1020__cc,
++ arm_instr_multi_0x088d1020__mi,
++ arm_instr_multi_0x088d1020__pl,
++ arm_instr_multi_0x088d1020__vs,
++ arm_instr_multi_0x088d1020__vc,
++ arm_instr_multi_0x088d1020__hi,
++ arm_instr_multi_0x088d1020__ls,
++ arm_instr_multi_0x088d1020__ge,
++ arm_instr_multi_0x088d1020__lt,
++ arm_instr_multi_0x088d1020__gt,
++ arm_instr_multi_0x088d1020__le,
++ arm_instr_multi_0x088d1020,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_177[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08850006__eq,
++ arm_instr_multi_0x08850006__ne,
++ arm_instr_multi_0x08850006__cs,
++ arm_instr_multi_0x08850006__cc,
++ arm_instr_multi_0x08850006__mi,
++ arm_instr_multi_0x08850006__pl,
++ arm_instr_multi_0x08850006__vs,
++ arm_instr_multi_0x08850006__vc,
++ arm_instr_multi_0x08850006__hi,
++ arm_instr_multi_0x08850006__ls,
++ arm_instr_multi_0x08850006__ge,
++ arm_instr_multi_0x08850006__lt,
++ arm_instr_multi_0x08850006__gt,
++ arm_instr_multi_0x08850006__le,
++ arm_instr_multi_0x08850006,
++ arm_instr_nop,
++ arm_instr_multi_0x08870006__eq,
++ arm_instr_multi_0x08870006__ne,
++ arm_instr_multi_0x08870006__cs,
++ arm_instr_multi_0x08870006__cc,
++ arm_instr_multi_0x08870006__mi,
++ arm_instr_multi_0x08870006__pl,
++ arm_instr_multi_0x08870006__vs,
++ arm_instr_multi_0x08870006__vc,
++ arm_instr_multi_0x08870006__hi,
++ arm_instr_multi_0x08870006__ls,
++ arm_instr_multi_0x08870006__ge,
++ arm_instr_multi_0x08870006__lt,
++ arm_instr_multi_0x08870006__gt,
++ arm_instr_multi_0x08870006__le,
++ arm_instr_multi_0x08870006,
++ arm_instr_nop,
++ arm_instr_multi_0x0885000c__eq,
++ arm_instr_multi_0x0885000c__ne,
++ arm_instr_multi_0x0885000c__cs,
++ arm_instr_multi_0x0885000c__cc,
++ arm_instr_multi_0x0885000c__mi,
++ arm_instr_multi_0x0885000c__pl,
++ arm_instr_multi_0x0885000c__vs,
++ arm_instr_multi_0x0885000c__vc,
++ arm_instr_multi_0x0885000c__hi,
++ arm_instr_multi_0x0885000c__ls,
++ arm_instr_multi_0x0885000c__ge,
++ arm_instr_multi_0x0885000c__lt,
++ arm_instr_multi_0x0885000c__gt,
++ arm_instr_multi_0x0885000c__le,
++ arm_instr_multi_0x0885000c,
++ arm_instr_nop,
++ arm_instr_multi_0x098d000e__eq,
++ arm_instr_multi_0x098d000e__ne,
++ arm_instr_multi_0x098d000e__cs,
++ arm_instr_multi_0x098d000e__cc,
++ arm_instr_multi_0x098d000e__mi,
++ arm_instr_multi_0x098d000e__pl,
++ arm_instr_multi_0x098d000e__vs,
++ arm_instr_multi_0x098d000e__vc,
++ arm_instr_multi_0x098d000e__hi,
++ arm_instr_multi_0x098d000e__ls,
++ arm_instr_multi_0x098d000e__ge,
++ arm_instr_multi_0x098d000e__lt,
++ arm_instr_multi_0x098d000e__gt,
++ arm_instr_multi_0x098d000e__le,
++ arm_instr_multi_0x098d000e,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_178[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09870018__eq,
++ arm_instr_multi_0x09870018__ne,
++ arm_instr_multi_0x09870018__cs,
++ arm_instr_multi_0x09870018__cc,
++ arm_instr_multi_0x09870018__mi,
++ arm_instr_multi_0x09870018__pl,
++ arm_instr_multi_0x09870018__vs,
++ arm_instr_multi_0x09870018__vc,
++ arm_instr_multi_0x09870018__hi,
++ arm_instr_multi_0x09870018__ls,
++ arm_instr_multi_0x09870018__ge,
++ arm_instr_multi_0x09870018__lt,
++ arm_instr_multi_0x09870018__gt,
++ arm_instr_multi_0x09870018__le,
++ arm_instr_multi_0x09870018,
++ arm_instr_nop,
++ arm_instr_multi_0x098d0030__eq,
++ arm_instr_multi_0x098d0030__ne,
++ arm_instr_multi_0x098d0030__cs,
++ arm_instr_multi_0x098d0030__cc,
++ arm_instr_multi_0x098d0030__mi,
++ arm_instr_multi_0x098d0030__pl,
++ arm_instr_multi_0x098d0030__vs,
++ arm_instr_multi_0x098d0030__vc,
++ arm_instr_multi_0x098d0030__hi,
++ arm_instr_multi_0x098d0030__ls,
++ arm_instr_multi_0x098d0030__ge,
++ arm_instr_multi_0x098d0030__lt,
++ arm_instr_multi_0x098d0030__gt,
++ arm_instr_multi_0x098d0030__le,
++ arm_instr_multi_0x098d0030,
++ arm_instr_nop,
++ arm_instr_multi_0x088d1010__eq,
++ arm_instr_multi_0x088d1010__ne,
++ arm_instr_multi_0x088d1010__cs,
++ arm_instr_multi_0x088d1010__cc,
++ arm_instr_multi_0x088d1010__mi,
++ arm_instr_multi_0x088d1010__pl,
++ arm_instr_multi_0x088d1010__vs,
++ arm_instr_multi_0x088d1010__vc,
++ arm_instr_multi_0x088d1010__hi,
++ arm_instr_multi_0x088d1010__ls,
++ arm_instr_multi_0x088d1010__ge,
++ arm_instr_multi_0x088d1010__lt,
++ arm_instr_multi_0x088d1010__gt,
++ arm_instr_multi_0x088d1010__le,
++ arm_instr_multi_0x088d1010,
++ arm_instr_nop,
++ arm_instr_multi_0x088d0030__eq,
++ arm_instr_multi_0x088d0030__ne,
++ arm_instr_multi_0x088d0030__cs,
++ arm_instr_multi_0x088d0030__cc,
++ arm_instr_multi_0x088d0030__mi,
++ arm_instr_multi_0x088d0030__pl,
++ arm_instr_multi_0x088d0030__vs,
++ arm_instr_multi_0x088d0030__vc,
++ arm_instr_multi_0x088d0030__hi,
++ arm_instr_multi_0x088d0030__ls,
++ arm_instr_multi_0x088d0030__ge,
++ arm_instr_multi_0x088d0030__lt,
++ arm_instr_multi_0x088d0030__gt,
++ arm_instr_multi_0x088d0030__le,
++ arm_instr_multi_0x088d0030,
++ arm_instr_nop,
++ arm_instr_multi_0x088d4010__eq,
++ arm_instr_multi_0x088d4010__ne,
++ arm_instr_multi_0x088d4010__cs,
++ arm_instr_multi_0x088d4010__cc,
++ arm_instr_multi_0x088d4010__mi,
++ arm_instr_multi_0x088d4010__pl,
++ arm_instr_multi_0x088d4010__vs,
++ arm_instr_multi_0x088d4010__vc,
++ arm_instr_multi_0x088d4010__hi,
++ arm_instr_multi_0x088d4010__ls,
++ arm_instr_multi_0x088d4010__ge,
++ arm_instr_multi_0x088d4010__lt,
++ arm_instr_multi_0x088d4010__gt,
++ arm_instr_multi_0x088d4010__le,
++ arm_instr_multi_0x088d4010,
++ arm_instr_nop,
++ arm_instr_multi_0x08850018__eq,
++ arm_instr_multi_0x08850018__ne,
++ arm_instr_multi_0x08850018__cs,
++ arm_instr_multi_0x08850018__cc,
++ arm_instr_multi_0x08850018__mi,
++ arm_instr_multi_0x08850018__pl,
++ arm_instr_multi_0x08850018__vs,
++ arm_instr_multi_0x08850018__vc,
++ arm_instr_multi_0x08850018__hi,
++ arm_instr_multi_0x08850018__ls,
++ arm_instr_multi_0x08850018__ge,
++ arm_instr_multi_0x08850018__lt,
++ arm_instr_multi_0x08850018__gt,
++ arm_instr_multi_0x08850018__le,
++ arm_instr_multi_0x08850018,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_179[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x09850014__eq,
++ arm_instr_multi_0x09850014__ne,
++ arm_instr_multi_0x09850014__cs,
++ arm_instr_multi_0x09850014__cc,
++ arm_instr_multi_0x09850014__mi,
++ arm_instr_multi_0x09850014__pl,
++ arm_instr_multi_0x09850014__vs,
++ arm_instr_multi_0x09850014__vc,
++ arm_instr_multi_0x09850014__hi,
++ arm_instr_multi_0x09850014__ls,
++ arm_instr_multi_0x09850014__ge,
++ arm_instr_multi_0x09850014__lt,
++ arm_instr_multi_0x09850014__gt,
++ arm_instr_multi_0x09850014__le,
++ arm_instr_multi_0x09850014,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_184[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x088d1100__eq,
++ arm_instr_multi_0x088d1100__ne,
++ arm_instr_multi_0x088d1100__cs,
++ arm_instr_multi_0x088d1100__cc,
++ arm_instr_multi_0x088d1100__mi,
++ arm_instr_multi_0x088d1100__pl,
++ arm_instr_multi_0x088d1100__vs,
++ arm_instr_multi_0x088d1100__vc,
++ arm_instr_multi_0x088d1100__hi,
++ arm_instr_multi_0x088d1100__ls,
++ arm_instr_multi_0x088d1100__ge,
++ arm_instr_multi_0x088d1100__lt,
++ arm_instr_multi_0x088d1100__gt,
++ arm_instr_multi_0x088d1100__le,
++ arm_instr_multi_0x088d1100,
++ arm_instr_nop,
++ arm_instr_multi_0x088d0180__eq,
++ arm_instr_multi_0x088d0180__ne,
++ arm_instr_multi_0x088d0180__cs,
++ arm_instr_multi_0x088d0180__cc,
++ arm_instr_multi_0x088d0180__mi,
++ arm_instr_multi_0x088d0180__pl,
++ arm_instr_multi_0x088d0180__vs,
++ arm_instr_multi_0x088d0180__vc,
++ arm_instr_multi_0x088d0180__hi,
++ arm_instr_multi_0x088d0180__ls,
++ arm_instr_multi_0x088d0180__ge,
++ arm_instr_multi_0x088d0180__lt,
++ arm_instr_multi_0x088d0180__gt,
++ arm_instr_multi_0x088d0180__le,
++ arm_instr_multi_0x088d0180,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_191[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x088d1fff__eq,
++ arm_instr_multi_0x088d1fff__ne,
++ arm_instr_multi_0x088d1fff__cs,
++ arm_instr_multi_0x088d1fff__cc,
++ arm_instr_multi_0x088d1fff__mi,
++ arm_instr_multi_0x088d1fff__pl,
++ arm_instr_multi_0x088d1fff__vs,
++ arm_instr_multi_0x088d1fff__vc,
++ arm_instr_multi_0x088d1fff__hi,
++ arm_instr_multi_0x088d1fff__ls,
++ arm_instr_multi_0x088d1fff__ge,
++ arm_instr_multi_0x088d1fff__lt,
++ arm_instr_multi_0x088d1fff__gt,
++ arm_instr_multi_0x088d1fff__le,
++ arm_instr_multi_0x088d1fff,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_192[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08920003__eq,
++ arm_instr_multi_0x08920003__ne,
++ arm_instr_multi_0x08920003__cs,
++ arm_instr_multi_0x08920003__cc,
++ arm_instr_multi_0x08920003__mi,
++ arm_instr_multi_0x08920003__pl,
++ arm_instr_multi_0x08920003__vs,
++ arm_instr_multi_0x08920003__vc,
++ arm_instr_multi_0x08920003__hi,
++ arm_instr_multi_0x08920003__ls,
++ arm_instr_multi_0x08920003__ge,
++ arm_instr_multi_0x08920003__lt,
++ arm_instr_multi_0x08920003__gt,
++ arm_instr_multi_0x08920003__le,
++ arm_instr_multi_0x08920003,
++ arm_instr_nop,
++ arm_instr_multi_0x08900003__eq,
++ arm_instr_multi_0x08900003__ne,
++ arm_instr_multi_0x08900003__cs,
++ arm_instr_multi_0x08900003__cc,
++ arm_instr_multi_0x08900003__mi,
++ arm_instr_multi_0x08900003__pl,
++ arm_instr_multi_0x08900003__vs,
++ arm_instr_multi_0x08900003__vc,
++ arm_instr_multi_0x08900003__hi,
++ arm_instr_multi_0x08900003__ls,
++ arm_instr_multi_0x08900003__ge,
++ arm_instr_multi_0x08900003__lt,
++ arm_instr_multi_0x08900003__gt,
++ arm_instr_multi_0x08900003__le,
++ arm_instr_multi_0x08900003,
++ arm_instr_nop,
++ arm_instr_multi_0x09920003__eq,
++ arm_instr_multi_0x09920003__ne,
++ arm_instr_multi_0x09920003__cs,
++ arm_instr_multi_0x09920003__cc,
++ arm_instr_multi_0x09920003__mi,
++ arm_instr_multi_0x09920003__pl,
++ arm_instr_multi_0x09920003__vs,
++ arm_instr_multi_0x09920003__vc,
++ arm_instr_multi_0x09920003__hi,
++ arm_instr_multi_0x09920003__ls,
++ arm_instr_multi_0x09920003__ge,
++ arm_instr_multi_0x09920003__lt,
++ arm_instr_multi_0x09920003__gt,
++ arm_instr_multi_0x09920003__le,
++ arm_instr_multi_0x09920003,
++ arm_instr_nop,
++ arm_instr_multi_0x08980003__eq,
++ arm_instr_multi_0x08980003__ne,
++ arm_instr_multi_0x08980003__cs,
++ arm_instr_multi_0x08980003__cc,
++ arm_instr_multi_0x08980003__mi,
++ arm_instr_multi_0x08980003__pl,
++ arm_instr_multi_0x08980003__vs,
++ arm_instr_multi_0x08980003__vc,
++ arm_instr_multi_0x08980003__hi,
++ arm_instr_multi_0x08980003__ls,
++ arm_instr_multi_0x08980003__ge,
++ arm_instr_multi_0x08980003__lt,
++ arm_instr_multi_0x08980003__gt,
++ arm_instr_multi_0x08980003__le,
++ arm_instr_multi_0x08980003,
++ arm_instr_nop,
++ arm_instr_multi_0x09904008__eq,
++ arm_instr_multi_0x09904008__ne,
++ arm_instr_multi_0x09904008__cs,
++ arm_instr_multi_0x09904008__cc,
++ arm_instr_multi_0x09904008__mi,
++ arm_instr_multi_0x09904008__pl,
++ arm_instr_multi_0x09904008__vs,
++ arm_instr_multi_0x09904008__vc,
++ arm_instr_multi_0x09904008__hi,
++ arm_instr_multi_0x09904008__ls,
++ arm_instr_multi_0x09904008__ge,
++ arm_instr_multi_0x09904008__lt,
++ arm_instr_multi_0x09904008__gt,
++ arm_instr_multi_0x09904008__le,
++ arm_instr_multi_0x09904008,
++ arm_instr_nop,
++ arm_instr_multi_0x099a0003__eq,
++ arm_instr_multi_0x099a0003__ne,
++ arm_instr_multi_0x099a0003__cs,
++ arm_instr_multi_0x099a0003__cc,
++ arm_instr_multi_0x099a0003__mi,
++ arm_instr_multi_0x099a0003__pl,
++ arm_instr_multi_0x099a0003__vs,
++ arm_instr_multi_0x099a0003__vc,
++ arm_instr_multi_0x099a0003__hi,
++ arm_instr_multi_0x099a0003__ls,
++ arm_instr_multi_0x099a0003__ge,
++ arm_instr_multi_0x099a0003__lt,
++ arm_instr_multi_0x099a0003__gt,
++ arm_instr_multi_0x099a0003__le,
++ arm_instr_multi_0x099a0003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_193[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08900006__eq,
++ arm_instr_multi_0x08900006__ne,
++ arm_instr_multi_0x08900006__cs,
++ arm_instr_multi_0x08900006__cc,
++ arm_instr_multi_0x08900006__mi,
++ arm_instr_multi_0x08900006__pl,
++ arm_instr_multi_0x08900006__vs,
++ arm_instr_multi_0x08900006__vc,
++ arm_instr_multi_0x08900006__hi,
++ arm_instr_multi_0x08900006__ls,
++ arm_instr_multi_0x08900006__ge,
++ arm_instr_multi_0x08900006__lt,
++ arm_instr_multi_0x08900006__gt,
++ arm_instr_multi_0x08900006__le,
++ arm_instr_multi_0x08900006,
++ arm_instr_nop,
++ arm_instr_multi_0x0892000c__eq,
++ arm_instr_multi_0x0892000c__ne,
++ arm_instr_multi_0x0892000c__cs,
++ arm_instr_multi_0x0892000c__cc,
++ arm_instr_multi_0x0892000c__mi,
++ arm_instr_multi_0x0892000c__pl,
++ arm_instr_multi_0x0892000c__vs,
++ arm_instr_multi_0x0892000c__vc,
++ arm_instr_multi_0x0892000c__hi,
++ arm_instr_multi_0x0892000c__ls,
++ arm_instr_multi_0x0892000c__ge,
++ arm_instr_multi_0x0892000c__lt,
++ arm_instr_multi_0x0892000c__gt,
++ arm_instr_multi_0x0892000c__le,
++ arm_instr_multi_0x0892000c,
++ arm_instr_nop,
++ arm_instr_multi_0x08920006__eq,
++ arm_instr_multi_0x08920006__ne,
++ arm_instr_multi_0x08920006__cs,
++ arm_instr_multi_0x08920006__cc,
++ arm_instr_multi_0x08920006__mi,
++ arm_instr_multi_0x08920006__pl,
++ arm_instr_multi_0x08920006__vs,
++ arm_instr_multi_0x08920006__vc,
++ arm_instr_multi_0x08920006__hi,
++ arm_instr_multi_0x08920006__ls,
++ arm_instr_multi_0x08920006__ge,
++ arm_instr_multi_0x08920006__lt,
++ arm_instr_multi_0x08920006__gt,
++ arm_instr_multi_0x08920006__le,
++ arm_instr_multi_0x08920006,
++ arm_instr_nop,
++ arm_instr_multi_0x08980006__eq,
++ arm_instr_multi_0x08980006__ne,
++ arm_instr_multi_0x08980006__cs,
++ arm_instr_multi_0x08980006__cc,
++ arm_instr_multi_0x08980006__mi,
++ arm_instr_multi_0x08980006__pl,
++ arm_instr_multi_0x08980006__vs,
++ arm_instr_multi_0x08980006__vc,
++ arm_instr_multi_0x08980006__hi,
++ arm_instr_multi_0x08980006__ls,
++ arm_instr_multi_0x08980006__ge,
++ arm_instr_multi_0x08980006__lt,
++ arm_instr_multi_0x08980006__gt,
++ arm_instr_multi_0x08980006__le,
++ arm_instr_multi_0x08980006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_194[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08920018__eq,
++ arm_instr_multi_0x08920018__ne,
++ arm_instr_multi_0x08920018__cs,
++ arm_instr_multi_0x08920018__cc,
++ arm_instr_multi_0x08920018__mi,
++ arm_instr_multi_0x08920018__pl,
++ arm_instr_multi_0x08920018__vs,
++ arm_instr_multi_0x08920018__vc,
++ arm_instr_multi_0x08920018__hi,
++ arm_instr_multi_0x08920018__ls,
++ arm_instr_multi_0x08920018__ge,
++ arm_instr_multi_0x08920018__lt,
++ arm_instr_multi_0x08920018__gt,
++ arm_instr_multi_0x08920018__le,
++ arm_instr_multi_0x08920018,
++ arm_instr_nop,
++ arm_instr_multi_0x08980018__eq,
++ arm_instr_multi_0x08980018__ne,
++ arm_instr_multi_0x08980018__cs,
++ arm_instr_multi_0x08980018__cc,
++ arm_instr_multi_0x08980018__mi,
++ arm_instr_multi_0x08980018__pl,
++ arm_instr_multi_0x08980018__vs,
++ arm_instr_multi_0x08980018__vc,
++ arm_instr_multi_0x08980018__hi,
++ arm_instr_multi_0x08980018__ls,
++ arm_instr_multi_0x08980018__ge,
++ arm_instr_multi_0x08980018__lt,
++ arm_instr_multi_0x08980018__gt,
++ arm_instr_multi_0x08980018__le,
++ arm_instr_multi_0x08980018,
++ arm_instr_nop,
++ arm_instr_multi_0x08900018__eq,
++ arm_instr_multi_0x08900018__ne,
++ arm_instr_multi_0x08900018__cs,
++ arm_instr_multi_0x08900018__cc,
++ arm_instr_multi_0x08900018__mi,
++ arm_instr_multi_0x08900018__pl,
++ arm_instr_multi_0x08900018__vs,
++ arm_instr_multi_0x08900018__vc,
++ arm_instr_multi_0x08900018__hi,
++ arm_instr_multi_0x08900018__ls,
++ arm_instr_multi_0x08900018__ge,
++ arm_instr_multi_0x08900018__lt,
++ arm_instr_multi_0x08900018__gt,
++ arm_instr_multi_0x08900018__le,
++ arm_instr_multi_0x08900018,
++ arm_instr_nop,
++ arm_instr_multi_0x09900018__eq,
++ arm_instr_multi_0x09900018__ne,
++ arm_instr_multi_0x09900018__cs,
++ arm_instr_multi_0x09900018__cc,
++ arm_instr_multi_0x09900018__mi,
++ arm_instr_multi_0x09900018__pl,
++ arm_instr_multi_0x09900018__vs,
++ arm_instr_multi_0x09900018__vc,
++ arm_instr_multi_0x09900018__hi,
++ arm_instr_multi_0x09900018__ls,
++ arm_instr_multi_0x09900018__ge,
++ arm_instr_multi_0x09900018__lt,
++ arm_instr_multi_0x09900018__gt,
++ arm_instr_multi_0x09900018__le,
++ arm_instr_multi_0x09900018,
++ arm_instr_nop,
++ arm_instr_multi_0x08920030__eq,
++ arm_instr_multi_0x08920030__ne,
++ arm_instr_multi_0x08920030__cs,
++ arm_instr_multi_0x08920030__cc,
++ arm_instr_multi_0x08920030__mi,
++ arm_instr_multi_0x08920030__pl,
++ arm_instr_multi_0x08920030__vs,
++ arm_instr_multi_0x08920030__vc,
++ arm_instr_multi_0x08920030__hi,
++ arm_instr_multi_0x08920030__ls,
++ arm_instr_multi_0x08920030__ge,
++ arm_instr_multi_0x08920030__lt,
++ arm_instr_multi_0x08920030__gt,
++ arm_instr_multi_0x08920030__le,
++ arm_instr_multi_0x08920030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_196[64])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08b000c0__eq,
++ arm_instr_multi_0x08b000c0__ne,
++ arm_instr_multi_0x08b000c0__cs,
++ arm_instr_multi_0x08b000c0__cc,
++ arm_instr_multi_0x08b000c0__mi,
++ arm_instr_multi_0x08b000c0__pl,
++ arm_instr_multi_0x08b000c0__vs,
++ arm_instr_multi_0x08b000c0__vc,
++ arm_instr_multi_0x08b000c0__hi,
++ arm_instr_multi_0x08b000c0__ls,
++ arm_instr_multi_0x08b000c0__ge,
++ arm_instr_multi_0x08b000c0__lt,
++ arm_instr_multi_0x08b000c0__gt,
++ arm_instr_multi_0x08b000c0__le,
++ arm_instr_multi_0x08b000c0,
++ arm_instr_nop,
++ arm_instr_multi_0x08980060__eq,
++ arm_instr_multi_0x08980060__ne,
++ arm_instr_multi_0x08980060__cs,
++ arm_instr_multi_0x08980060__cc,
++ arm_instr_multi_0x08980060__mi,
++ arm_instr_multi_0x08980060__pl,
++ arm_instr_multi_0x08980060__vs,
++ arm_instr_multi_0x08980060__vc,
++ arm_instr_multi_0x08980060__hi,
++ arm_instr_multi_0x08980060__ls,
++ arm_instr_multi_0x08980060__ge,
++ arm_instr_multi_0x08980060__lt,
++ arm_instr_multi_0x08980060__gt,
++ arm_instr_multi_0x08980060__le,
++ arm_instr_multi_0x08980060,
++ arm_instr_nop,
++ arm_instr_multi_0x08900060__eq,
++ arm_instr_multi_0x08900060__ne,
++ arm_instr_multi_0x08900060__cs,
++ arm_instr_multi_0x08900060__cc,
++ arm_instr_multi_0x08900060__mi,
++ arm_instr_multi_0x08900060__pl,
++ arm_instr_multi_0x08900060__vs,
++ arm_instr_multi_0x08900060__vc,
++ arm_instr_multi_0x08900060__hi,
++ arm_instr_multi_0x08900060__ls,
++ arm_instr_multi_0x08900060__ge,
++ arm_instr_multi_0x08900060__lt,
++ arm_instr_multi_0x08900060__gt,
++ arm_instr_multi_0x08900060__le,
++ arm_instr_multi_0x08900060,
++ arm_instr_nop,
++ arm_instr_multi_0x089200c0__eq,
++ arm_instr_multi_0x089200c0__ne,
++ arm_instr_multi_0x089200c0__cs,
++ arm_instr_multi_0x089200c0__cc,
++ arm_instr_multi_0x089200c0__mi,
++ arm_instr_multi_0x089200c0__pl,
++ arm_instr_multi_0x089200c0__vs,
++ arm_instr_multi_0x089200c0__vc,
++ arm_instr_multi_0x089200c0__hi,
++ arm_instr_multi_0x089200c0__ls,
++ arm_instr_multi_0x089200c0__ge,
++ arm_instr_multi_0x089200c0__lt,
++ arm_instr_multi_0x089200c0__gt,
++ arm_instr_multi_0x089200c0__le,
++ arm_instr_multi_0x089200c0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_200[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08b00300__eq,
++ arm_instr_multi_0x08b00300__ne,
++ arm_instr_multi_0x08b00300__cs,
++ arm_instr_multi_0x08b00300__cc,
++ arm_instr_multi_0x08b00300__mi,
++ arm_instr_multi_0x08b00300__pl,
++ arm_instr_multi_0x08b00300__vs,
++ arm_instr_multi_0x08b00300__vc,
++ arm_instr_multi_0x08b00300__hi,
++ arm_instr_multi_0x08b00300__ls,
++ arm_instr_multi_0x08b00300__ge,
++ arm_instr_multi_0x08b00300__lt,
++ arm_instr_multi_0x08b00300__gt,
++ arm_instr_multi_0x08b00300__le,
++ arm_instr_multi_0x08b00300,
++ arm_instr_nop,
++ arm_instr_multi_0x09900120__eq,
++ arm_instr_multi_0x09900120__ne,
++ arm_instr_multi_0x09900120__cs,
++ arm_instr_multi_0x09900120__cc,
++ arm_instr_multi_0x09900120__mi,
++ arm_instr_multi_0x09900120__pl,
++ arm_instr_multi_0x09900120__vs,
++ arm_instr_multi_0x09900120__vc,
++ arm_instr_multi_0x09900120__hi,
++ arm_instr_multi_0x09900120__ls,
++ arm_instr_multi_0x09900120__ge,
++ arm_instr_multi_0x09900120__lt,
++ arm_instr_multi_0x09900120__gt,
++ arm_instr_multi_0x09900120__le,
++ arm_instr_multi_0x09900120,
++ arm_instr_nop,
++ arm_instr_multi_0x08980300__eq,
++ arm_instr_multi_0x08980300__ne,
++ arm_instr_multi_0x08980300__cs,
++ arm_instr_multi_0x08980300__cc,
++ arm_instr_multi_0x08980300__mi,
++ arm_instr_multi_0x08980300__pl,
++ arm_instr_multi_0x08980300__vs,
++ arm_instr_multi_0x08980300__vc,
++ arm_instr_multi_0x08980300__hi,
++ arm_instr_multi_0x08980300__ls,
++ arm_instr_multi_0x08980300__ge,
++ arm_instr_multi_0x08980300__lt,
++ arm_instr_multi_0x08980300__gt,
++ arm_instr_multi_0x08980300__le,
++ arm_instr_multi_0x08980300,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_204[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08b00fc0__eq,
++ arm_instr_multi_0x08b00fc0__ne,
++ arm_instr_multi_0x08b00fc0__cs,
++ arm_instr_multi_0x08b00fc0__cc,
++ arm_instr_multi_0x08b00fc0__mi,
++ arm_instr_multi_0x08b00fc0__pl,
++ arm_instr_multi_0x08b00fc0__vs,
++ arm_instr_multi_0x08b00fc0__vc,
++ arm_instr_multi_0x08b00fc0__hi,
++ arm_instr_multi_0x08b00fc0__ls,
++ arm_instr_multi_0x08b00fc0__ge,
++ arm_instr_multi_0x08b00fc0__lt,
++ arm_instr_multi_0x08b00fc0__gt,
++ arm_instr_multi_0x08b00fc0__le,
++ arm_instr_multi_0x08b00fc0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_206[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08b051f8__eq,
++ arm_instr_multi_0x08b051f8__ne,
++ arm_instr_multi_0x08b051f8__cs,
++ arm_instr_multi_0x08b051f8__cc,
++ arm_instr_multi_0x08b051f8__mi,
++ arm_instr_multi_0x08b051f8__pl,
++ arm_instr_multi_0x08b051f8__vs,
++ arm_instr_multi_0x08b051f8__vc,
++ arm_instr_multi_0x08b051f8__hi,
++ arm_instr_multi_0x08b051f8__ls,
++ arm_instr_multi_0x08b051f8__ge,
++ arm_instr_multi_0x08b051f8__lt,
++ arm_instr_multi_0x08b051f8__gt,
++ arm_instr_multi_0x08b051f8__le,
++ arm_instr_multi_0x08b051f8,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_208[128])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08930003__eq,
++ arm_instr_multi_0x08930003__ne,
++ arm_instr_multi_0x08930003__cs,
++ arm_instr_multi_0x08930003__cc,
++ arm_instr_multi_0x08930003__mi,
++ arm_instr_multi_0x08930003__pl,
++ arm_instr_multi_0x08930003__vs,
++ arm_instr_multi_0x08930003__vc,
++ arm_instr_multi_0x08930003__hi,
++ arm_instr_multi_0x08930003__ls,
++ arm_instr_multi_0x08930003__ge,
++ arm_instr_multi_0x08930003__lt,
++ arm_instr_multi_0x08930003__gt,
++ arm_instr_multi_0x08930003__le,
++ arm_instr_multi_0x08930003,
++ arm_instr_nop,
++ arm_instr_multi_0x08910003__eq,
++ arm_instr_multi_0x08910003__ne,
++ arm_instr_multi_0x08910003__cs,
++ arm_instr_multi_0x08910003__cc,
++ arm_instr_multi_0x08910003__mi,
++ arm_instr_multi_0x08910003__pl,
++ arm_instr_multi_0x08910003__vs,
++ arm_instr_multi_0x08910003__vc,
++ arm_instr_multi_0x08910003__hi,
++ arm_instr_multi_0x08910003__ls,
++ arm_instr_multi_0x08910003__ge,
++ arm_instr_multi_0x08910003__lt,
++ arm_instr_multi_0x08910003__gt,
++ arm_instr_multi_0x08910003__le,
++ arm_instr_multi_0x08910003,
++ arm_instr_nop,
++ arm_instr_multi_0x08930600__eq,
++ arm_instr_multi_0x08930600__ne,
++ arm_instr_multi_0x08930600__cs,
++ arm_instr_multi_0x08930600__cc,
++ arm_instr_multi_0x08930600__mi,
++ arm_instr_multi_0x08930600__pl,
++ arm_instr_multi_0x08930600__vs,
++ arm_instr_multi_0x08930600__vc,
++ arm_instr_multi_0x08930600__hi,
++ arm_instr_multi_0x08930600__ls,
++ arm_instr_multi_0x08930600__ge,
++ arm_instr_multi_0x08930600__lt,
++ arm_instr_multi_0x08930600__gt,
++ arm_instr_multi_0x08930600__le,
++ arm_instr_multi_0x08930600,
++ arm_instr_nop,
++ arm_instr_multi_0x08b11008__eq,
++ arm_instr_multi_0x08b11008__ne,
++ arm_instr_multi_0x08b11008__cs,
++ arm_instr_multi_0x08b11008__cc,
++ arm_instr_multi_0x08b11008__mi,
++ arm_instr_multi_0x08b11008__pl,
++ arm_instr_multi_0x08b11008__vs,
++ arm_instr_multi_0x08b11008__vc,
++ arm_instr_multi_0x08b11008__hi,
++ arm_instr_multi_0x08b11008__ls,
++ arm_instr_multi_0x08b11008__ge,
++ arm_instr_multi_0x08b11008__lt,
++ arm_instr_multi_0x08b11008__gt,
++ arm_instr_multi_0x08b11008__le,
++ arm_instr_multi_0x08b11008,
++ arm_instr_nop,
++ arm_instr_multi_0x08b15008__eq,
++ arm_instr_multi_0x08b15008__ne,
++ arm_instr_multi_0x08b15008__cs,
++ arm_instr_multi_0x08b15008__cc,
++ arm_instr_multi_0x08b15008__mi,
++ arm_instr_multi_0x08b15008__pl,
++ arm_instr_multi_0x08b15008__vs,
++ arm_instr_multi_0x08b15008__vc,
++ arm_instr_multi_0x08b15008__hi,
++ arm_instr_multi_0x08b15008__ls,
++ arm_instr_multi_0x08b15008__ge,
++ arm_instr_multi_0x08b15008__lt,
++ arm_instr_multi_0x08b15008__gt,
++ arm_instr_multi_0x08b15008__le,
++ arm_instr_multi_0x08b15008,
++ arm_instr_nop,
++ arm_instr_multi_0x08931008__eq,
++ arm_instr_multi_0x08931008__ne,
++ arm_instr_multi_0x08931008__cs,
++ arm_instr_multi_0x08931008__cc,
++ arm_instr_multi_0x08931008__mi,
++ arm_instr_multi_0x08931008__pl,
++ arm_instr_multi_0x08931008__vs,
++ arm_instr_multi_0x08931008__vc,
++ arm_instr_multi_0x08931008__hi,
++ arm_instr_multi_0x08931008__ls,
++ arm_instr_multi_0x08931008__ge,
++ arm_instr_multi_0x08931008__lt,
++ arm_instr_multi_0x08931008__gt,
++ arm_instr_multi_0x08931008__le,
++ arm_instr_multi_0x08931008,
++ arm_instr_nop,
++ arm_instr_multi_0x08990600__eq,
++ arm_instr_multi_0x08990600__ne,
++ arm_instr_multi_0x08990600__cs,
++ arm_instr_multi_0x08990600__cc,
++ arm_instr_multi_0x08990600__mi,
++ arm_instr_multi_0x08990600__pl,
++ arm_instr_multi_0x08990600__vs,
++ arm_instr_multi_0x08990600__vc,
++ arm_instr_multi_0x08990600__hi,
++ arm_instr_multi_0x08990600__ls,
++ arm_instr_multi_0x08990600__ge,
++ arm_instr_multi_0x08990600__lt,
++ arm_instr_multi_0x08990600__gt,
++ arm_instr_multi_0x08990600__le,
++ arm_instr_multi_0x08990600,
++ arm_instr_nop,
++ arm_instr_multi_0x08990003__eq,
++ arm_instr_multi_0x08990003__ne,
++ arm_instr_multi_0x08990003__cs,
++ arm_instr_multi_0x08990003__cc,
++ arm_instr_multi_0x08990003__mi,
++ arm_instr_multi_0x08990003__pl,
++ arm_instr_multi_0x08990003__vs,
++ arm_instr_multi_0x08990003__vc,
++ arm_instr_multi_0x08990003__hi,
++ arm_instr_multi_0x08990003__ls,
++ arm_instr_multi_0x08990003__ge,
++ arm_instr_multi_0x08990003__lt,
++ arm_instr_multi_0x08990003__gt,
++ arm_instr_multi_0x08990003__le,
++ arm_instr_multi_0x08990003,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_209[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08930006__eq,
++ arm_instr_multi_0x08930006__ne,
++ arm_instr_multi_0x08930006__cs,
++ arm_instr_multi_0x08930006__cc,
++ arm_instr_multi_0x08930006__mi,
++ arm_instr_multi_0x08930006__pl,
++ arm_instr_multi_0x08930006__vs,
++ arm_instr_multi_0x08930006__vc,
++ arm_instr_multi_0x08930006__hi,
++ arm_instr_multi_0x08930006__ls,
++ arm_instr_multi_0x08930006__ge,
++ arm_instr_multi_0x08930006__lt,
++ arm_instr_multi_0x08930006__gt,
++ arm_instr_multi_0x08930006__le,
++ arm_instr_multi_0x08930006,
++ arm_instr_nop,
++ arm_instr_multi_0x0891000e__eq,
++ arm_instr_multi_0x0891000e__ne,
++ arm_instr_multi_0x0891000e__cs,
++ arm_instr_multi_0x0891000e__cc,
++ arm_instr_multi_0x0891000e__mi,
++ arm_instr_multi_0x0891000e__pl,
++ arm_instr_multi_0x0891000e__vs,
++ arm_instr_multi_0x0891000e__vc,
++ arm_instr_multi_0x0891000e__hi,
++ arm_instr_multi_0x0891000e__ls,
++ arm_instr_multi_0x0891000e__ge,
++ arm_instr_multi_0x0891000e__lt,
++ arm_instr_multi_0x0891000e__gt,
++ arm_instr_multi_0x0891000e__le,
++ arm_instr_multi_0x0891000e,
++ arm_instr_nop,
++ arm_instr_multi_0x08910006__eq,
++ arm_instr_multi_0x08910006__ne,
++ arm_instr_multi_0x08910006__cs,
++ arm_instr_multi_0x08910006__cc,
++ arm_instr_multi_0x08910006__mi,
++ arm_instr_multi_0x08910006__pl,
++ arm_instr_multi_0x08910006__vs,
++ arm_instr_multi_0x08910006__vc,
++ arm_instr_multi_0x08910006__hi,
++ arm_instr_multi_0x08910006__ls,
++ arm_instr_multi_0x08910006__ge,
++ arm_instr_multi_0x08910006__lt,
++ arm_instr_multi_0x08910006__gt,
++ arm_instr_multi_0x08910006__le,
++ arm_instr_multi_0x08910006,
++ arm_instr_nop,
++ arm_instr_multi_0x09930006__eq,
++ arm_instr_multi_0x09930006__ne,
++ arm_instr_multi_0x09930006__cs,
++ arm_instr_multi_0x09930006__cc,
++ arm_instr_multi_0x09930006__mi,
++ arm_instr_multi_0x09930006__pl,
++ arm_instr_multi_0x09930006__vs,
++ arm_instr_multi_0x09930006__vc,
++ arm_instr_multi_0x09930006__hi,
++ arm_instr_multi_0x09930006__ls,
++ arm_instr_multi_0x09930006__ge,
++ arm_instr_multi_0x09930006__lt,
++ arm_instr_multi_0x09930006__gt,
++ arm_instr_multi_0x09930006__le,
++ arm_instr_multi_0x09930006,
++ arm_instr_nop,
++ arm_instr_multi_0x0893000c__eq,
++ arm_instr_multi_0x0893000c__ne,
++ arm_instr_multi_0x0893000c__cs,
++ arm_instr_multi_0x0893000c__cc,
++ arm_instr_multi_0x0893000c__mi,
++ arm_instr_multi_0x0893000c__pl,
++ arm_instr_multi_0x0893000c__vs,
++ arm_instr_multi_0x0893000c__vc,
++ arm_instr_multi_0x0893000c__hi,
++ arm_instr_multi_0x0893000c__ls,
++ arm_instr_multi_0x0893000c__ge,
++ arm_instr_multi_0x0893000c__lt,
++ arm_instr_multi_0x0893000c__gt,
++ arm_instr_multi_0x0893000c__le,
++ arm_instr_multi_0x0893000c,
++ arm_instr_nop,
++ arm_instr_multi_0x08990006__eq,
++ arm_instr_multi_0x08990006__ne,
++ arm_instr_multi_0x08990006__cs,
++ arm_instr_multi_0x08990006__cc,
++ arm_instr_multi_0x08990006__mi,
++ arm_instr_multi_0x08990006__pl,
++ arm_instr_multi_0x08990006__vs,
++ arm_instr_multi_0x08990006__vc,
++ arm_instr_multi_0x08990006__hi,
++ arm_instr_multi_0x08990006__ls,
++ arm_instr_multi_0x08990006__ge,
++ arm_instr_multi_0x08990006__lt,
++ arm_instr_multi_0x08990006__gt,
++ arm_instr_multi_0x08990006__le,
++ arm_instr_multi_0x08990006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_210[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08b15018__eq,
++ arm_instr_multi_0x08b15018__ne,
++ arm_instr_multi_0x08b15018__cs,
++ arm_instr_multi_0x08b15018__cc,
++ arm_instr_multi_0x08b15018__mi,
++ arm_instr_multi_0x08b15018__pl,
++ arm_instr_multi_0x08b15018__vs,
++ arm_instr_multi_0x08b15018__vc,
++ arm_instr_multi_0x08b15018__hi,
++ arm_instr_multi_0x08b15018__ls,
++ arm_instr_multi_0x08b15018__ge,
++ arm_instr_multi_0x08b15018__lt,
++ arm_instr_multi_0x08b15018__gt,
++ arm_instr_multi_0x08b15018__le,
++ arm_instr_multi_0x08b15018,
++ arm_instr_nop,
++ arm_instr_multi_0x08930018__eq,
++ arm_instr_multi_0x08930018__ne,
++ arm_instr_multi_0x08930018__cs,
++ arm_instr_multi_0x08930018__cc,
++ arm_instr_multi_0x08930018__mi,
++ arm_instr_multi_0x08930018__pl,
++ arm_instr_multi_0x08930018__vs,
++ arm_instr_multi_0x08930018__vc,
++ arm_instr_multi_0x08930018__hi,
++ arm_instr_multi_0x08930018__ls,
++ arm_instr_multi_0x08930018__ge,
++ arm_instr_multi_0x08930018__lt,
++ arm_instr_multi_0x08930018__gt,
++ arm_instr_multi_0x08930018__le,
++ arm_instr_multi_0x08930018,
++ arm_instr_nop,
++ arm_instr_multi_0x099b0030__eq,
++ arm_instr_multi_0x099b0030__ne,
++ arm_instr_multi_0x099b0030__cs,
++ arm_instr_multi_0x099b0030__cc,
++ arm_instr_multi_0x099b0030__mi,
++ arm_instr_multi_0x099b0030__pl,
++ arm_instr_multi_0x099b0030__vs,
++ arm_instr_multi_0x099b0030__vc,
++ arm_instr_multi_0x099b0030__hi,
++ arm_instr_multi_0x099b0030__ls,
++ arm_instr_multi_0x099b0030__ge,
++ arm_instr_multi_0x099b0030__lt,
++ arm_instr_multi_0x099b0030__gt,
++ arm_instr_multi_0x099b0030__le,
++ arm_instr_multi_0x099b0030,
++ arm_instr_nop,
++ arm_instr_multi_0x08910030__eq,
++ arm_instr_multi_0x08910030__ne,
++ arm_instr_multi_0x08910030__cs,
++ arm_instr_multi_0x08910030__cc,
++ arm_instr_multi_0x08910030__mi,
++ arm_instr_multi_0x08910030__pl,
++ arm_instr_multi_0x08910030__vs,
++ arm_instr_multi_0x08910030__vc,
++ arm_instr_multi_0x08910030__hi,
++ arm_instr_multi_0x08910030__ls,
++ arm_instr_multi_0x08910030__ge,
++ arm_instr_multi_0x08910030__lt,
++ arm_instr_multi_0x08910030__gt,
++ arm_instr_multi_0x08910030__le,
++ arm_instr_multi_0x08910030,
++ arm_instr_nop,
++ arm_instr_multi_0x08990018__eq,
++ arm_instr_multi_0x08990018__ne,
++ arm_instr_multi_0x08990018__cs,
++ arm_instr_multi_0x08990018__cc,
++ arm_instr_multi_0x08990018__mi,
++ arm_instr_multi_0x08990018__pl,
++ arm_instr_multi_0x08990018__vs,
++ arm_instr_multi_0x08990018__vc,
++ arm_instr_multi_0x08990018__hi,
++ arm_instr_multi_0x08990018__ls,
++ arm_instr_multi_0x08990018__ge,
++ arm_instr_multi_0x08990018__lt,
++ arm_instr_multi_0x08990018__gt,
++ arm_instr_multi_0x08990018__le,
++ arm_instr_multi_0x08990018,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_212[48])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08930060__eq,
++ arm_instr_multi_0x08930060__ne,
++ arm_instr_multi_0x08930060__cs,
++ arm_instr_multi_0x08930060__cc,
++ arm_instr_multi_0x08930060__mi,
++ arm_instr_multi_0x08930060__pl,
++ arm_instr_multi_0x08930060__vs,
++ arm_instr_multi_0x08930060__vc,
++ arm_instr_multi_0x08930060__hi,
++ arm_instr_multi_0x08930060__ls,
++ arm_instr_multi_0x08930060__ge,
++ arm_instr_multi_0x08930060__lt,
++ arm_instr_multi_0x08930060__gt,
++ arm_instr_multi_0x08930060__le,
++ arm_instr_multi_0x08930060,
++ arm_instr_nop,
++ arm_instr_multi_0x089100c0__eq,
++ arm_instr_multi_0x089100c0__ne,
++ arm_instr_multi_0x089100c0__cs,
++ arm_instr_multi_0x089100c0__cc,
++ arm_instr_multi_0x089100c0__mi,
++ arm_instr_multi_0x089100c0__pl,
++ arm_instr_multi_0x089100c0__vs,
++ arm_instr_multi_0x089100c0__vc,
++ arm_instr_multi_0x089100c0__hi,
++ arm_instr_multi_0x089100c0__ls,
++ arm_instr_multi_0x089100c0__ge,
++ arm_instr_multi_0x089100c0__lt,
++ arm_instr_multi_0x089100c0__gt,
++ arm_instr_multi_0x089100c0__le,
++ arm_instr_multi_0x089100c0,
++ arm_instr_nop,
++ arm_instr_multi_0x089300c0__eq,
++ arm_instr_multi_0x089300c0__ne,
++ arm_instr_multi_0x089300c0__cs,
++ arm_instr_multi_0x089300c0__cc,
++ arm_instr_multi_0x089300c0__mi,
++ arm_instr_multi_0x089300c0__pl,
++ arm_instr_multi_0x089300c0__vs,
++ arm_instr_multi_0x089300c0__vc,
++ arm_instr_multi_0x089300c0__hi,
++ arm_instr_multi_0x089300c0__ls,
++ arm_instr_multi_0x089300c0__ge,
++ arm_instr_multi_0x089300c0__lt,
++ arm_instr_multi_0x089300c0__gt,
++ arm_instr_multi_0x089300c0__le,
++ arm_instr_multi_0x089300c0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_216[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08930180__eq,
++ arm_instr_multi_0x08930180__ne,
++ arm_instr_multi_0x08930180__cs,
++ arm_instr_multi_0x08930180__cc,
++ arm_instr_multi_0x08930180__mi,
++ arm_instr_multi_0x08930180__pl,
++ arm_instr_multi_0x08930180__vs,
++ arm_instr_multi_0x08930180__vc,
++ arm_instr_multi_0x08930180__hi,
++ arm_instr_multi_0x08930180__ls,
++ arm_instr_multi_0x08930180__ge,
++ arm_instr_multi_0x08930180__lt,
++ arm_instr_multi_0x08930180__gt,
++ arm_instr_multi_0x08930180__le,
++ arm_instr_multi_0x08930180,
++ arm_instr_nop,
++ arm_instr_multi_0x099b0180__eq,
++ arm_instr_multi_0x099b0180__ne,
++ arm_instr_multi_0x099b0180__cs,
++ arm_instr_multi_0x099b0180__cc,
++ arm_instr_multi_0x099b0180__mi,
++ arm_instr_multi_0x099b0180__pl,
++ arm_instr_multi_0x099b0180__vs,
++ arm_instr_multi_0x099b0180__vc,
++ arm_instr_multi_0x099b0180__hi,
++ arm_instr_multi_0x099b0180__ls,
++ arm_instr_multi_0x099b0180__ge,
++ arm_instr_multi_0x099b0180__lt,
++ arm_instr_multi_0x099b0180__gt,
++ arm_instr_multi_0x099b0180__le,
++ arm_instr_multi_0x099b0180,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_224[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08940003__eq,
++ arm_instr_multi_0x08940003__ne,
++ arm_instr_multi_0x08940003__cs,
++ arm_instr_multi_0x08940003__cc,
++ arm_instr_multi_0x08940003__mi,
++ arm_instr_multi_0x08940003__pl,
++ arm_instr_multi_0x08940003__vs,
++ arm_instr_multi_0x08940003__vc,
++ arm_instr_multi_0x08940003__hi,
++ arm_instr_multi_0x08940003__ls,
++ arm_instr_multi_0x08940003__ge,
++ arm_instr_multi_0x08940003__lt,
++ arm_instr_multi_0x08940003__gt,
++ arm_instr_multi_0x08940003__le,
++ arm_instr_multi_0x08940003,
++ arm_instr_nop,
++ arm_instr_multi_0x089e000a__eq,
++ arm_instr_multi_0x089e000a__ne,
++ arm_instr_multi_0x089e000a__cs,
++ arm_instr_multi_0x089e000a__cc,
++ arm_instr_multi_0x089e000a__mi,
++ arm_instr_multi_0x089e000a__pl,
++ arm_instr_multi_0x089e000a__vs,
++ arm_instr_multi_0x089e000a__vc,
++ arm_instr_multi_0x089e000a__hi,
++ arm_instr_multi_0x089e000a__ls,
++ arm_instr_multi_0x089e000a__ge,
++ arm_instr_multi_0x089e000a__lt,
++ arm_instr_multi_0x089e000a__gt,
++ arm_instr_multi_0x089e000a__le,
++ arm_instr_multi_0x089e000a,
++ arm_instr_nop,
++ arm_instr_multi_0x0894000a__eq,
++ arm_instr_multi_0x0894000a__ne,
++ arm_instr_multi_0x0894000a__cs,
++ arm_instr_multi_0x0894000a__cc,
++ arm_instr_multi_0x0894000a__mi,
++ arm_instr_multi_0x0894000a__pl,
++ arm_instr_multi_0x0894000a__vs,
++ arm_instr_multi_0x0894000a__vc,
++ arm_instr_multi_0x0894000a__hi,
++ arm_instr_multi_0x0894000a__ls,
++ arm_instr_multi_0x0894000a__ge,
++ arm_instr_multi_0x0894000a__lt,
++ arm_instr_multi_0x0894000a__gt,
++ arm_instr_multi_0x0894000a__le,
++ arm_instr_multi_0x0894000a,
++ arm_instr_nop,
++ arm_instr_multi_0x08940009__eq,
++ arm_instr_multi_0x08940009__ne,
++ arm_instr_multi_0x08940009__cs,
++ arm_instr_multi_0x08940009__cc,
++ arm_instr_multi_0x08940009__mi,
++ arm_instr_multi_0x08940009__pl,
++ arm_instr_multi_0x08940009__vs,
++ arm_instr_multi_0x08940009__vc,
++ arm_instr_multi_0x08940009__hi,
++ arm_instr_multi_0x08940009__ls,
++ arm_instr_multi_0x08940009__ge,
++ arm_instr_multi_0x08940009__lt,
++ arm_instr_multi_0x08940009__gt,
++ arm_instr_multi_0x08940009__le,
++ arm_instr_multi_0x08940009,
++ arm_instr_nop,
++ arm_instr_multi_0x089c5000__eq,
++ arm_instr_multi_0x089c5000__ne,
++ arm_instr_multi_0x089c5000__cs,
++ arm_instr_multi_0x089c5000__cc,
++ arm_instr_multi_0x089c5000__mi,
++ arm_instr_multi_0x089c5000__pl,
++ arm_instr_multi_0x089c5000__vs,
++ arm_instr_multi_0x089c5000__vc,
++ arm_instr_multi_0x089c5000__hi,
++ arm_instr_multi_0x089c5000__ls,
++ arm_instr_multi_0x089c5000__ge,
++ arm_instr_multi_0x089c5000__lt,
++ arm_instr_multi_0x089c5000__gt,
++ arm_instr_multi_0x089c5000__le,
++ arm_instr_multi_0x089c5000,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_225[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x0894000c__eq,
++ arm_instr_multi_0x0894000c__ne,
++ arm_instr_multi_0x0894000c__cs,
++ arm_instr_multi_0x0894000c__cc,
++ arm_instr_multi_0x0894000c__mi,
++ arm_instr_multi_0x0894000c__pl,
++ arm_instr_multi_0x0894000c__vs,
++ arm_instr_multi_0x0894000c__vc,
++ arm_instr_multi_0x0894000c__hi,
++ arm_instr_multi_0x0894000c__ls,
++ arm_instr_multi_0x0894000c__ge,
++ arm_instr_multi_0x0894000c__lt,
++ arm_instr_multi_0x0894000c__gt,
++ arm_instr_multi_0x0894000c__le,
++ arm_instr_multi_0x0894000c,
++ arm_instr_nop,
++ arm_instr_multi_0x089c0006__eq,
++ arm_instr_multi_0x089c0006__ne,
++ arm_instr_multi_0x089c0006__cs,
++ arm_instr_multi_0x089c0006__cc,
++ arm_instr_multi_0x089c0006__mi,
++ arm_instr_multi_0x089c0006__pl,
++ arm_instr_multi_0x089c0006__vs,
++ arm_instr_multi_0x089c0006__vc,
++ arm_instr_multi_0x089c0006__hi,
++ arm_instr_multi_0x089c0006__ls,
++ arm_instr_multi_0x089c0006__ge,
++ arm_instr_multi_0x089c0006__lt,
++ arm_instr_multi_0x089c0006__gt,
++ arm_instr_multi_0x089c0006__le,
++ arm_instr_multi_0x089c0006,
++ arm_instr_nop,
++ arm_instr_multi_0x0896000c__eq,
++ arm_instr_multi_0x0896000c__ne,
++ arm_instr_multi_0x0896000c__cs,
++ arm_instr_multi_0x0896000c__cc,
++ arm_instr_multi_0x0896000c__mi,
++ arm_instr_multi_0x0896000c__pl,
++ arm_instr_multi_0x0896000c__vs,
++ arm_instr_multi_0x0896000c__vc,
++ arm_instr_multi_0x0896000c__hi,
++ arm_instr_multi_0x0896000c__ls,
++ arm_instr_multi_0x0896000c__ge,
++ arm_instr_multi_0x0896000c__lt,
++ arm_instr_multi_0x0896000c__gt,
++ arm_instr_multi_0x0896000c__le,
++ arm_instr_multi_0x0896000c,
++ arm_instr_nop,
++ arm_instr_multi_0x089c000c__eq,
++ arm_instr_multi_0x089c000c__ne,
++ arm_instr_multi_0x089c000c__cs,
++ arm_instr_multi_0x089c000c__cc,
++ arm_instr_multi_0x089c000c__mi,
++ arm_instr_multi_0x089c000c__pl,
++ arm_instr_multi_0x089c000c__vs,
++ arm_instr_multi_0x089c000c__vc,
++ arm_instr_multi_0x089c000c__hi,
++ arm_instr_multi_0x089c000c__ls,
++ arm_instr_multi_0x089c000c__ge,
++ arm_instr_multi_0x089c000c__lt,
++ arm_instr_multi_0x089c000c__gt,
++ arm_instr_multi_0x089c000c__le,
++ arm_instr_multi_0x089c000c,
++ arm_instr_nop,
++ arm_instr_multi_0x08be000f__eq,
++ arm_instr_multi_0x08be000f__ne,
++ arm_instr_multi_0x08be000f__cs,
++ arm_instr_multi_0x08be000f__cc,
++ arm_instr_multi_0x08be000f__mi,
++ arm_instr_multi_0x08be000f__pl,
++ arm_instr_multi_0x08be000f__vs,
++ arm_instr_multi_0x08be000f__vc,
++ arm_instr_multi_0x08be000f__hi,
++ arm_instr_multi_0x08be000f__ls,
++ arm_instr_multi_0x08be000f__ge,
++ arm_instr_multi_0x08be000f__lt,
++ arm_instr_multi_0x08be000f__gt,
++ arm_instr_multi_0x08be000f__le,
++ arm_instr_multi_0x08be000f,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_226[112])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x089e0018__eq,
++ arm_instr_multi_0x089e0018__ne,
++ arm_instr_multi_0x089e0018__cs,
++ arm_instr_multi_0x089e0018__cc,
++ arm_instr_multi_0x089e0018__mi,
++ arm_instr_multi_0x089e0018__pl,
++ arm_instr_multi_0x089e0018__vs,
++ arm_instr_multi_0x089e0018__vc,
++ arm_instr_multi_0x089e0018__hi,
++ arm_instr_multi_0x089e0018__ls,
++ arm_instr_multi_0x089e0018__ge,
++ arm_instr_multi_0x089e0018__lt,
++ arm_instr_multi_0x089e0018__gt,
++ arm_instr_multi_0x089e0018__le,
++ arm_instr_multi_0x089e0018,
++ arm_instr_nop,
++ arm_instr_multi_0x09940018__eq,
++ arm_instr_multi_0x09940018__ne,
++ arm_instr_multi_0x09940018__cs,
++ arm_instr_multi_0x09940018__cc,
++ arm_instr_multi_0x09940018__mi,
++ arm_instr_multi_0x09940018__pl,
++ arm_instr_multi_0x09940018__vs,
++ arm_instr_multi_0x09940018__vc,
++ arm_instr_multi_0x09940018__hi,
++ arm_instr_multi_0x09940018__ls,
++ arm_instr_multi_0x09940018__ge,
++ arm_instr_multi_0x09940018__lt,
++ arm_instr_multi_0x09940018__gt,
++ arm_instr_multi_0x09940018__le,
++ arm_instr_multi_0x09940018,
++ arm_instr_nop,
++ arm_instr_multi_0x089c0018__eq,
++ arm_instr_multi_0x089c0018__ne,
++ arm_instr_multi_0x089c0018__cs,
++ arm_instr_multi_0x089c0018__cc,
++ arm_instr_multi_0x089c0018__mi,
++ arm_instr_multi_0x089c0018__pl,
++ arm_instr_multi_0x089c0018__vs,
++ arm_instr_multi_0x089c0018__vc,
++ arm_instr_multi_0x089c0018__hi,
++ arm_instr_multi_0x089c0018__ls,
++ arm_instr_multi_0x089c0018__ge,
++ arm_instr_multi_0x089c0018__lt,
++ arm_instr_multi_0x089c0018__gt,
++ arm_instr_multi_0x089c0018__le,
++ arm_instr_multi_0x089c0018,
++ arm_instr_nop,
++ arm_instr_multi_0x089e0030__eq,
++ arm_instr_multi_0x089e0030__ne,
++ arm_instr_multi_0x089e0030__cs,
++ arm_instr_multi_0x089e0030__cc,
++ arm_instr_multi_0x089e0030__mi,
++ arm_instr_multi_0x089e0030__pl,
++ arm_instr_multi_0x089e0030__vs,
++ arm_instr_multi_0x089e0030__vc,
++ arm_instr_multi_0x089e0030__hi,
++ arm_instr_multi_0x089e0030__ls,
++ arm_instr_multi_0x089e0030__ge,
++ arm_instr_multi_0x089e0030__lt,
++ arm_instr_multi_0x089e0030__gt,
++ arm_instr_multi_0x089e0030__le,
++ arm_instr_multi_0x089e0030,
++ arm_instr_nop,
++ arm_instr_multi_0x08940012__eq,
++ arm_instr_multi_0x08940012__ne,
++ arm_instr_multi_0x08940012__cs,
++ arm_instr_multi_0x08940012__cc,
++ arm_instr_multi_0x08940012__mi,
++ arm_instr_multi_0x08940012__pl,
++ arm_instr_multi_0x08940012__vs,
++ arm_instr_multi_0x08940012__vc,
++ arm_instr_multi_0x08940012__hi,
++ arm_instr_multi_0x08940012__ls,
++ arm_instr_multi_0x08940012__ge,
++ arm_instr_multi_0x08940012__lt,
++ arm_instr_multi_0x08940012__gt,
++ arm_instr_multi_0x08940012__le,
++ arm_instr_multi_0x08940012,
++ arm_instr_nop,
++ arm_instr_multi_0x08940018__eq,
++ arm_instr_multi_0x08940018__ne,
++ arm_instr_multi_0x08940018__cs,
++ arm_instr_multi_0x08940018__cc,
++ arm_instr_multi_0x08940018__mi,
++ arm_instr_multi_0x08940018__pl,
++ arm_instr_multi_0x08940018__vs,
++ arm_instr_multi_0x08940018__vc,
++ arm_instr_multi_0x08940018__hi,
++ arm_instr_multi_0x08940018__ls,
++ arm_instr_multi_0x08940018__ge,
++ arm_instr_multi_0x08940018__lt,
++ arm_instr_multi_0x08940018__gt,
++ arm_instr_multi_0x08940018__le,
++ arm_instr_multi_0x08940018,
++ arm_instr_nop,
++ arm_instr_multi_0x08960030__eq,
++ arm_instr_multi_0x08960030__ne,
++ arm_instr_multi_0x08960030__cs,
++ arm_instr_multi_0x08960030__cc,
++ arm_instr_multi_0x08960030__mi,
++ arm_instr_multi_0x08960030__pl,
++ arm_instr_multi_0x08960030__vs,
++ arm_instr_multi_0x08960030__vc,
++ arm_instr_multi_0x08960030__hi,
++ arm_instr_multi_0x08960030__ls,
++ arm_instr_multi_0x08960030__ge,
++ arm_instr_multi_0x08960030__lt,
++ arm_instr_multi_0x08960030__gt,
++ arm_instr_multi_0x08960030__le,
++ arm_instr_multi_0x08960030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_228[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x089e0060__eq,
++ arm_instr_multi_0x089e0060__ne,
++ arm_instr_multi_0x089e0060__cs,
++ arm_instr_multi_0x089e0060__cc,
++ arm_instr_multi_0x089e0060__mi,
++ arm_instr_multi_0x089e0060__pl,
++ arm_instr_multi_0x089e0060__vs,
++ arm_instr_multi_0x089e0060__vc,
++ arm_instr_multi_0x089e0060__hi,
++ arm_instr_multi_0x089e0060__ls,
++ arm_instr_multi_0x089e0060__ge,
++ arm_instr_multi_0x089e0060__lt,
++ arm_instr_multi_0x089e0060__gt,
++ arm_instr_multi_0x089e0060__le,
++ arm_instr_multi_0x089e0060,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_232[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x099c0180__eq,
++ arm_instr_multi_0x099c0180__ne,
++ arm_instr_multi_0x099c0180__cs,
++ arm_instr_multi_0x099c0180__cc,
++ arm_instr_multi_0x099c0180__mi,
++ arm_instr_multi_0x099c0180__pl,
++ arm_instr_multi_0x099c0180__vs,
++ arm_instr_multi_0x099c0180__vc,
++ arm_instr_multi_0x099c0180__hi,
++ arm_instr_multi_0x099c0180__ls,
++ arm_instr_multi_0x099c0180__ge,
++ arm_instr_multi_0x099c0180__lt,
++ arm_instr_multi_0x099c0180__gt,
++ arm_instr_multi_0x099c0180__le,
++ arm_instr_multi_0x099c0180,
++ arm_instr_nop,
++ arm_instr_multi_0x089c0300__eq,
++ arm_instr_multi_0x089c0300__ne,
++ arm_instr_multi_0x089c0300__cs,
++ arm_instr_multi_0x089c0300__cc,
++ arm_instr_multi_0x089c0300__mi,
++ arm_instr_multi_0x089c0300__pl,
++ arm_instr_multi_0x089c0300__vs,
++ arm_instr_multi_0x089c0300__vc,
++ arm_instr_multi_0x089c0300__hi,
++ arm_instr_multi_0x089c0300__ls,
++ arm_instr_multi_0x089c0300__ge,
++ arm_instr_multi_0x089c0300__lt,
++ arm_instr_multi_0x089c0300__gt,
++ arm_instr_multi_0x089c0300__le,
++ arm_instr_multi_0x089c0300,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_240[96])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08bd8000__eq,
++ arm_instr_multi_0x08bd8000__ne,
++ arm_instr_multi_0x08bd8000__cs,
++ arm_instr_multi_0x08bd8000__cc,
++ arm_instr_multi_0x08bd8000__mi,
++ arm_instr_multi_0x08bd8000__pl,
++ arm_instr_multi_0x08bd8000__vs,
++ arm_instr_multi_0x08bd8000__vc,
++ arm_instr_multi_0x08bd8000__hi,
++ arm_instr_multi_0x08bd8000__ls,
++ arm_instr_multi_0x08bd8000__ge,
++ arm_instr_multi_0x08bd8000__lt,
++ arm_instr_multi_0x08bd8000__gt,
++ arm_instr_multi_0x08bd8000__le,
++ arm_instr_multi_0x08bd8000,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd8001__eq,
++ arm_instr_multi_0x08bd8001__ne,
++ arm_instr_multi_0x08bd8001__cs,
++ arm_instr_multi_0x08bd8001__cc,
++ arm_instr_multi_0x08bd8001__mi,
++ arm_instr_multi_0x08bd8001__pl,
++ arm_instr_multi_0x08bd8001__vs,
++ arm_instr_multi_0x08bd8001__vc,
++ arm_instr_multi_0x08bd8001__hi,
++ arm_instr_multi_0x08bd8001__ls,
++ arm_instr_multi_0x08bd8001__ge,
++ arm_instr_multi_0x08bd8001__lt,
++ arm_instr_multi_0x08bd8001__gt,
++ arm_instr_multi_0x08bd8001__le,
++ arm_instr_multi_0x08bd8001,
++ arm_instr_nop,
++ arm_instr_multi_0x08950003__eq,
++ arm_instr_multi_0x08950003__ne,
++ arm_instr_multi_0x08950003__cs,
++ arm_instr_multi_0x08950003__cc,
++ arm_instr_multi_0x08950003__mi,
++ arm_instr_multi_0x08950003__pl,
++ arm_instr_multi_0x08950003__vs,
++ arm_instr_multi_0x08950003__vc,
++ arm_instr_multi_0x08950003__hi,
++ arm_instr_multi_0x08950003__ls,
++ arm_instr_multi_0x08950003__ge,
++ arm_instr_multi_0x08950003__lt,
++ arm_instr_multi_0x08950003__gt,
++ arm_instr_multi_0x08950003__le,
++ arm_instr_multi_0x08950003,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd0400__eq,
++ arm_instr_multi_0x08bd0400__ne,
++ arm_instr_multi_0x08bd0400__cs,
++ arm_instr_multi_0x08bd0400__cc,
++ arm_instr_multi_0x08bd0400__mi,
++ arm_instr_multi_0x08bd0400__pl,
++ arm_instr_multi_0x08bd0400__vs,
++ arm_instr_multi_0x08bd0400__vc,
++ arm_instr_multi_0x08bd0400__hi,
++ arm_instr_multi_0x08bd0400__ls,
++ arm_instr_multi_0x08bd0400__ge,
++ arm_instr_multi_0x08bd0400__lt,
++ arm_instr_multi_0x08bd0400__gt,
++ arm_instr_multi_0x08bd0400__le,
++ arm_instr_multi_0x08bd0400,
++ arm_instr_nop,
++ arm_instr_multi_0x08970600__eq,
++ arm_instr_multi_0x08970600__ne,
++ arm_instr_multi_0x08970600__cs,
++ arm_instr_multi_0x08970600__cc,
++ arm_instr_multi_0x08970600__mi,
++ arm_instr_multi_0x08970600__pl,
++ arm_instr_multi_0x08970600__vs,
++ arm_instr_multi_0x08970600__vc,
++ arm_instr_multi_0x08970600__hi,
++ arm_instr_multi_0x08970600__ls,
++ arm_instr_multi_0x08970600__ge,
++ arm_instr_multi_0x08970600__lt,
++ arm_instr_multi_0x08970600__gt,
++ arm_instr_multi_0x08970600__le,
++ arm_instr_multi_0x08970600,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd8400__eq,
++ arm_instr_multi_0x08bd8400__ne,
++ arm_instr_multi_0x08bd8400__cs,
++ arm_instr_multi_0x08bd8400__cc,
++ arm_instr_multi_0x08bd8400__mi,
++ arm_instr_multi_0x08bd8400__pl,
++ arm_instr_multi_0x08bd8400__vs,
++ arm_instr_multi_0x08bd8400__vc,
++ arm_instr_multi_0x08bd8400__hi,
++ arm_instr_multi_0x08bd8400__ls,
++ arm_instr_multi_0x08bd8400__ge,
++ arm_instr_multi_0x08bd8400__lt,
++ arm_instr_multi_0x08bd8400__gt,
++ arm_instr_multi_0x08bd8400__le,
++ arm_instr_multi_0x08bd8400,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_241[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08950006__eq,
++ arm_instr_multi_0x08950006__ne,
++ arm_instr_multi_0x08950006__cs,
++ arm_instr_multi_0x08950006__cc,
++ arm_instr_multi_0x08950006__mi,
++ arm_instr_multi_0x08950006__pl,
++ arm_instr_multi_0x08950006__vs,
++ arm_instr_multi_0x08950006__vc,
++ arm_instr_multi_0x08950006__hi,
++ arm_instr_multi_0x08950006__ls,
++ arm_instr_multi_0x08950006__ge,
++ arm_instr_multi_0x08950006__lt,
++ arm_instr_multi_0x08950006__gt,
++ arm_instr_multi_0x08950006__le,
++ arm_instr_multi_0x08950006,
++ arm_instr_nop,
++ arm_instr_multi_0x08970006__eq,
++ arm_instr_multi_0x08970006__ne,
++ arm_instr_multi_0x08970006__cs,
++ arm_instr_multi_0x08970006__cc,
++ arm_instr_multi_0x08970006__mi,
++ arm_instr_multi_0x08970006__pl,
++ arm_instr_multi_0x08970006__vs,
++ arm_instr_multi_0x08970006__vc,
++ arm_instr_multi_0x08970006__hi,
++ arm_instr_multi_0x08970006__ls,
++ arm_instr_multi_0x08970006__ge,
++ arm_instr_multi_0x08970006__lt,
++ arm_instr_multi_0x08970006__gt,
++ arm_instr_multi_0x08970006__le,
++ arm_instr_multi_0x08970006,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_242[112])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08bd8010__eq,
++ arm_instr_multi_0x08bd8010__ne,
++ arm_instr_multi_0x08bd8010__cs,
++ arm_instr_multi_0x08bd8010__cc,
++ arm_instr_multi_0x08bd8010__mi,
++ arm_instr_multi_0x08bd8010__pl,
++ arm_instr_multi_0x08bd8010__vs,
++ arm_instr_multi_0x08bd8010__vc,
++ arm_instr_multi_0x08bd8010__hi,
++ arm_instr_multi_0x08bd8010__ls,
++ arm_instr_multi_0x08bd8010__ge,
++ arm_instr_multi_0x08bd8010__lt,
++ arm_instr_multi_0x08bd8010__gt,
++ arm_instr_multi_0x08bd8010__le,
++ arm_instr_multi_0x08bd8010,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd8030__eq,
++ arm_instr_multi_0x08bd8030__ne,
++ arm_instr_multi_0x08bd8030__cs,
++ arm_instr_multi_0x08bd8030__cc,
++ arm_instr_multi_0x08bd8030__mi,
++ arm_instr_multi_0x08bd8030__pl,
++ arm_instr_multi_0x08bd8030__vs,
++ arm_instr_multi_0x08bd8030__vc,
++ arm_instr_multi_0x08bd8030__hi,
++ arm_instr_multi_0x08bd8030__ls,
++ arm_instr_multi_0x08bd8030__ge,
++ arm_instr_multi_0x08bd8030__lt,
++ arm_instr_multi_0x08bd8030__gt,
++ arm_instr_multi_0x08bd8030__le,
++ arm_instr_multi_0x08bd8030,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd0030__eq,
++ arm_instr_multi_0x08bd0030__ne,
++ arm_instr_multi_0x08bd0030__cs,
++ arm_instr_multi_0x08bd0030__cc,
++ arm_instr_multi_0x08bd0030__mi,
++ arm_instr_multi_0x08bd0030__pl,
++ arm_instr_multi_0x08bd0030__vs,
++ arm_instr_multi_0x08bd0030__vc,
++ arm_instr_multi_0x08bd0030__hi,
++ arm_instr_multi_0x08bd0030__ls,
++ arm_instr_multi_0x08bd0030__ge,
++ arm_instr_multi_0x08bd0030__lt,
++ arm_instr_multi_0x08bd0030__gt,
++ arm_instr_multi_0x08bd0030__le,
++ arm_instr_multi_0x08bd0030,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd0010__eq,
++ arm_instr_multi_0x08bd0010__ne,
++ arm_instr_multi_0x08bd0010__cs,
++ arm_instr_multi_0x08bd0010__cc,
++ arm_instr_multi_0x08bd0010__mi,
++ arm_instr_multi_0x08bd0010__pl,
++ arm_instr_multi_0x08bd0010__vs,
++ arm_instr_multi_0x08bd0010__vc,
++ arm_instr_multi_0x08bd0010__hi,
++ arm_instr_multi_0x08bd0010__ls,
++ arm_instr_multi_0x08bd0010__ge,
++ arm_instr_multi_0x08bd0010__lt,
++ arm_instr_multi_0x08bd0010__gt,
++ arm_instr_multi_0x08bd0010__le,
++ arm_instr_multi_0x08bd0010,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd4010__eq,
++ arm_instr_multi_0x08bd4010__ne,
++ arm_instr_multi_0x08bd4010__cs,
++ arm_instr_multi_0x08bd4010__cc,
++ arm_instr_multi_0x08bd4010__mi,
++ arm_instr_multi_0x08bd4010__pl,
++ arm_instr_multi_0x08bd4010__vs,
++ arm_instr_multi_0x08bd4010__vc,
++ arm_instr_multi_0x08bd4010__hi,
++ arm_instr_multi_0x08bd4010__ls,
++ arm_instr_multi_0x08bd4010__ge,
++ arm_instr_multi_0x08bd4010__lt,
++ arm_instr_multi_0x08bd4010__gt,
++ arm_instr_multi_0x08bd4010__le,
++ arm_instr_multi_0x08bd4010,
++ arm_instr_nop,
++ arm_instr_multi_0x08950030__eq,
++ arm_instr_multi_0x08950030__ne,
++ arm_instr_multi_0x08950030__cs,
++ arm_instr_multi_0x08950030__cc,
++ arm_instr_multi_0x08950030__mi,
++ arm_instr_multi_0x08950030__pl,
++ arm_instr_multi_0x08950030__vs,
++ arm_instr_multi_0x08950030__vc,
++ arm_instr_multi_0x08950030__hi,
++ arm_instr_multi_0x08950030__ls,
++ arm_instr_multi_0x08950030__ge,
++ arm_instr_multi_0x08950030__lt,
++ arm_instr_multi_0x08950030__gt,
++ arm_instr_multi_0x08950030__le,
++ arm_instr_multi_0x08950030,
++ arm_instr_nop,
++ arm_instr_multi_0x08970030__eq,
++ arm_instr_multi_0x08970030__ne,
++ arm_instr_multi_0x08970030__cs,
++ arm_instr_multi_0x08970030__cc,
++ arm_instr_multi_0x08970030__mi,
++ arm_instr_multi_0x08970030__pl,
++ arm_instr_multi_0x08970030__vs,
++ arm_instr_multi_0x08970030__vc,
++ arm_instr_multi_0x08970030__hi,
++ arm_instr_multi_0x08970030__ls,
++ arm_instr_multi_0x08970030__ge,
++ arm_instr_multi_0x08970030__lt,
++ arm_instr_multi_0x08970030__gt,
++ arm_instr_multi_0x08970030__le,
++ arm_instr_multi_0x08970030,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_243[16])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08bd4c1f__eq,
++ arm_instr_multi_0x08bd4c1f__ne,
++ arm_instr_multi_0x08bd4c1f__cs,
++ arm_instr_multi_0x08bd4c1f__cc,
++ arm_instr_multi_0x08bd4c1f__mi,
++ arm_instr_multi_0x08bd4c1f__pl,
++ arm_instr_multi_0x08bd4c1f__vs,
++ arm_instr_multi_0x08bd4c1f__vc,
++ arm_instr_multi_0x08bd4c1f__hi,
++ arm_instr_multi_0x08bd4c1f__ls,
++ arm_instr_multi_0x08bd4c1f__ge,
++ arm_instr_multi_0x08bd4c1f__lt,
++ arm_instr_multi_0x08bd4c1f__gt,
++ arm_instr_multi_0x08bd4c1f__le,
++ arm_instr_multi_0x08bd4c1f,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_244[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08971040__eq,
++ arm_instr_multi_0x08971040__ne,
++ arm_instr_multi_0x08971040__cs,
++ arm_instr_multi_0x08971040__cc,
++ arm_instr_multi_0x08971040__mi,
++ arm_instr_multi_0x08971040__pl,
++ arm_instr_multi_0x08971040__vs,
++ arm_instr_multi_0x08971040__vc,
++ arm_instr_multi_0x08971040__hi,
++ arm_instr_multi_0x08971040__ls,
++ arm_instr_multi_0x08971040__ge,
++ arm_instr_multi_0x08971040__lt,
++ arm_instr_multi_0x08971040__gt,
++ arm_instr_multi_0x08971040__le,
++ arm_instr_multi_0x08971040,
++ arm_instr_nop,
++ arm_instr_multi_0x08950060__eq,
++ arm_instr_multi_0x08950060__ne,
++ arm_instr_multi_0x08950060__cs,
++ arm_instr_multi_0x08950060__cc,
++ arm_instr_multi_0x08950060__mi,
++ arm_instr_multi_0x08950060__pl,
++ arm_instr_multi_0x08950060__vs,
++ arm_instr_multi_0x08950060__vc,
++ arm_instr_multi_0x08950060__hi,
++ arm_instr_multi_0x08950060__ls,
++ arm_instr_multi_0x08950060__ge,
++ arm_instr_multi_0x08950060__lt,
++ arm_instr_multi_0x08950060__gt,
++ arm_instr_multi_0x08950060__le,
++ arm_instr_multi_0x08950060,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_246[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08bd8070__eq,
++ arm_instr_multi_0x08bd8070__ne,
++ arm_instr_multi_0x08bd8070__cs,
++ arm_instr_multi_0x08bd8070__cc,
++ arm_instr_multi_0x08bd8070__mi,
++ arm_instr_multi_0x08bd8070__pl,
++ arm_instr_multi_0x08bd8070__vs,
++ arm_instr_multi_0x08bd8070__vc,
++ arm_instr_multi_0x08bd8070__hi,
++ arm_instr_multi_0x08bd8070__ls,
++ arm_instr_multi_0x08bd8070__ge,
++ arm_instr_multi_0x08bd8070__lt,
++ arm_instr_multi_0x08bd8070__gt,
++ arm_instr_multi_0x08bd8070__le,
++ arm_instr_multi_0x08bd8070,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd40f0__eq,
++ arm_instr_multi_0x08bd40f0__ne,
++ arm_instr_multi_0x08bd40f0__cs,
++ arm_instr_multi_0x08bd40f0__cc,
++ arm_instr_multi_0x08bd40f0__mi,
++ arm_instr_multi_0x08bd40f0__pl,
++ arm_instr_multi_0x08bd40f0__vs,
++ arm_instr_multi_0x08bd40f0__vc,
++ arm_instr_multi_0x08bd40f0__hi,
++ arm_instr_multi_0x08bd40f0__ls,
++ arm_instr_multi_0x08bd40f0__ge,
++ arm_instr_multi_0x08bd40f0__lt,
++ arm_instr_multi_0x08bd40f0__gt,
++ arm_instr_multi_0x08bd40f0__le,
++ arm_instr_multi_0x08bd40f0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd80f0__eq,
++ arm_instr_multi_0x08bd80f0__ne,
++ arm_instr_multi_0x08bd80f0__cs,
++ arm_instr_multi_0x08bd80f0__cc,
++ arm_instr_multi_0x08bd80f0__mi,
++ arm_instr_multi_0x08bd80f0__pl,
++ arm_instr_multi_0x08bd80f0__vs,
++ arm_instr_multi_0x08bd80f0__vc,
++ arm_instr_multi_0x08bd80f0__hi,
++ arm_instr_multi_0x08bd80f0__ls,
++ arm_instr_multi_0x08bd80f0__ge,
++ arm_instr_multi_0x08bd80f0__lt,
++ arm_instr_multi_0x08bd80f0__gt,
++ arm_instr_multi_0x08bd80f0__le,
++ arm_instr_multi_0x08bd80f0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd0070__eq,
++ arm_instr_multi_0x08bd0070__ne,
++ arm_instr_multi_0x08bd0070__cs,
++ arm_instr_multi_0x08bd0070__cc,
++ arm_instr_multi_0x08bd0070__mi,
++ arm_instr_multi_0x08bd0070__pl,
++ arm_instr_multi_0x08bd0070__vs,
++ arm_instr_multi_0x08bd0070__vc,
++ arm_instr_multi_0x08bd0070__hi,
++ arm_instr_multi_0x08bd0070__ls,
++ arm_instr_multi_0x08bd0070__ge,
++ arm_instr_multi_0x08bd0070__lt,
++ arm_instr_multi_0x08bd0070__gt,
++ arm_instr_multi_0x08bd0070__le,
++ arm_instr_multi_0x08bd0070,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd00f0__eq,
++ arm_instr_multi_0x08bd00f0__ne,
++ arm_instr_multi_0x08bd00f0__cs,
++ arm_instr_multi_0x08bd00f0__cc,
++ arm_instr_multi_0x08bd00f0__mi,
++ arm_instr_multi_0x08bd00f0__pl,
++ arm_instr_multi_0x08bd00f0__vs,
++ arm_instr_multi_0x08bd00f0__vc,
++ arm_instr_multi_0x08bd00f0__hi,
++ arm_instr_multi_0x08bd00f0__ls,
++ arm_instr_multi_0x08bd00f0__ge,
++ arm_instr_multi_0x08bd00f0__lt,
++ arm_instr_multi_0x08bd00f0__gt,
++ arm_instr_multi_0x08bd00f0__le,
++ arm_instr_multi_0x08bd00f0,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_248[32])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08970300__eq,
++ arm_instr_multi_0x08970300__ne,
++ arm_instr_multi_0x08970300__cs,
++ arm_instr_multi_0x08970300__cc,
++ arm_instr_multi_0x08970300__mi,
++ arm_instr_multi_0x08970300__pl,
++ arm_instr_multi_0x08970300__vs,
++ arm_instr_multi_0x08970300__vc,
++ arm_instr_multi_0x08970300__hi,
++ arm_instr_multi_0x08970300__ls,
++ arm_instr_multi_0x08970300__ge,
++ arm_instr_multi_0x08970300__lt,
++ arm_instr_multi_0x08970300__gt,
++ arm_instr_multi_0x08970300__le,
++ arm_instr_multi_0x08970300,
++ arm_instr_nop,
++ arm_instr_multi_0x08970180__eq,
++ arm_instr_multi_0x08970180__ne,
++ arm_instr_multi_0x08970180__cs,
++ arm_instr_multi_0x08970180__cc,
++ arm_instr_multi_0x08970180__mi,
++ arm_instr_multi_0x08970180__pl,
++ arm_instr_multi_0x08970180__vs,
++ arm_instr_multi_0x08970180__vc,
++ arm_instr_multi_0x08970180__hi,
++ arm_instr_multi_0x08970180__ls,
++ arm_instr_multi_0x08970180__ge,
++ arm_instr_multi_0x08970180__lt,
++ arm_instr_multi_0x08970180__gt,
++ arm_instr_multi_0x08970180__le,
++ arm_instr_multi_0x08970180,
++ arm_instr_nop,
++};
++void (*multi_opcode_f_254[80])(struct cpu *, struct arm_instr_call *) = {
++ arm_instr_multi_0x08bd81f0__eq,
++ arm_instr_multi_0x08bd81f0__ne,
++ arm_instr_multi_0x08bd81f0__cs,
++ arm_instr_multi_0x08bd81f0__cc,
++ arm_instr_multi_0x08bd81f0__mi,
++ arm_instr_multi_0x08bd81f0__pl,
++ arm_instr_multi_0x08bd81f0__vs,
++ arm_instr_multi_0x08bd81f0__vc,
++ arm_instr_multi_0x08bd81f0__hi,
++ arm_instr_multi_0x08bd81f0__ls,
++ arm_instr_multi_0x08bd81f0__ge,
++ arm_instr_multi_0x08bd81f0__lt,
++ arm_instr_multi_0x08bd81f0__gt,
++ arm_instr_multi_0x08bd81f0__le,
++ arm_instr_multi_0x08bd81f0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd0ff0__eq,
++ arm_instr_multi_0x08bd0ff0__ne,
++ arm_instr_multi_0x08bd0ff0__cs,
++ arm_instr_multi_0x08bd0ff0__cc,
++ arm_instr_multi_0x08bd0ff0__mi,
++ arm_instr_multi_0x08bd0ff0__pl,
++ arm_instr_multi_0x08bd0ff0__vs,
++ arm_instr_multi_0x08bd0ff0__vc,
++ arm_instr_multi_0x08bd0ff0__hi,
++ arm_instr_multi_0x08bd0ff0__ls,
++ arm_instr_multi_0x08bd0ff0__ge,
++ arm_instr_multi_0x08bd0ff0__lt,
++ arm_instr_multi_0x08bd0ff0__gt,
++ arm_instr_multi_0x08bd0ff0__le,
++ arm_instr_multi_0x08bd0ff0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd87f0__eq,
++ arm_instr_multi_0x08bd87f0__ne,
++ arm_instr_multi_0x08bd87f0__cs,
++ arm_instr_multi_0x08bd87f0__cc,
++ arm_instr_multi_0x08bd87f0__mi,
++ arm_instr_multi_0x08bd87f0__pl,
++ arm_instr_multi_0x08bd87f0__vs,
++ arm_instr_multi_0x08bd87f0__vc,
++ arm_instr_multi_0x08bd87f0__hi,
++ arm_instr_multi_0x08bd87f0__ls,
++ arm_instr_multi_0x08bd87f0__ge,
++ arm_instr_multi_0x08bd87f0__lt,
++ arm_instr_multi_0x08bd87f0__gt,
++ arm_instr_multi_0x08bd87f0__le,
++ arm_instr_multi_0x08bd87f0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd85f0__eq,
++ arm_instr_multi_0x08bd85f0__ne,
++ arm_instr_multi_0x08bd85f0__cs,
++ arm_instr_multi_0x08bd85f0__cc,
++ arm_instr_multi_0x08bd85f0__mi,
++ arm_instr_multi_0x08bd85f0__pl,
++ arm_instr_multi_0x08bd85f0__vs,
++ arm_instr_multi_0x08bd85f0__vc,
++ arm_instr_multi_0x08bd85f0__hi,
++ arm_instr_multi_0x08bd85f0__ls,
++ arm_instr_multi_0x08bd85f0__ge,
++ arm_instr_multi_0x08bd85f0__lt,
++ arm_instr_multi_0x08bd85f0__gt,
++ arm_instr_multi_0x08bd85f0__le,
++ arm_instr_multi_0x08bd85f0,
++ arm_instr_nop,
++ arm_instr_multi_0x08bd41f0__eq,
++ arm_instr_multi_0x08bd41f0__ne,
++ arm_instr_multi_0x08bd41f0__cs,
++ arm_instr_multi_0x08bd41f0__cc,
++ arm_instr_multi_0x08bd41f0__mi,
++ arm_instr_multi_0x08bd41f0__pl,
++ arm_instr_multi_0x08bd41f0__vs,
++ arm_instr_multi_0x08bd41f0__vc,
++ arm_instr_multi_0x08bd41f0__hi,
++ arm_instr_multi_0x08bd41f0__ls,
++ arm_instr_multi_0x08bd41f0__ge,
++ arm_instr_multi_0x08bd41f0__lt,
++ arm_instr_multi_0x08bd41f0__gt,
++ arm_instr_multi_0x08bd41f0__le,
++ arm_instr_multi_0x08bd41f0,
++ arm_instr_nop,
++};
++
++uint32_t *multi_opcode[256] = {
++ multi_opcode_0,
++ multi_opcode_1, multi_opcode_2, multi_opcode_3, multi_opcode_4,
++ multi_opcode_5, multi_opcode_6, multi_opcode_7, multi_opcode_8,
++ multi_opcode_9, multi_opcode_10, multi_opcode_11, multi_opcode_12,
++ multi_opcode_13, multi_opcode_14, multi_opcode_15, multi_opcode_16,
++ multi_opcode_17, multi_opcode_18, multi_opcode_19, multi_opcode_20,
++ multi_opcode_21, multi_opcode_22, multi_opcode_23, multi_opcode_24,
++ multi_opcode_25, multi_opcode_26, multi_opcode_27, multi_opcode_28,
++ multi_opcode_29, multi_opcode_30, multi_opcode_31, multi_opcode_32,
++ multi_opcode_33, multi_opcode_34, multi_opcode_35, multi_opcode_36,
++ multi_opcode_37, multi_opcode_38, multi_opcode_39, multi_opcode_40,
++ multi_opcode_41, multi_opcode_42, multi_opcode_43, multi_opcode_44,
++ multi_opcode_45, multi_opcode_46, multi_opcode_47, multi_opcode_48,
++ multi_opcode_49, multi_opcode_50, multi_opcode_51, multi_opcode_52,
++ multi_opcode_53, multi_opcode_54, multi_opcode_55, multi_opcode_56,
++ multi_opcode_57, multi_opcode_58, multi_opcode_59, multi_opcode_60,
++ multi_opcode_61, multi_opcode_62, multi_opcode_63, multi_opcode_64,
++ multi_opcode_65, multi_opcode_66, multi_opcode_67, multi_opcode_68,
++ multi_opcode_69, multi_opcode_70, multi_opcode_71, multi_opcode_72,
++ multi_opcode_73, multi_opcode_74, multi_opcode_75, multi_opcode_76,
++ multi_opcode_77, multi_opcode_78, multi_opcode_79, multi_opcode_80,
++ multi_opcode_81, multi_opcode_82, multi_opcode_83, multi_opcode_84,
++ multi_opcode_85, multi_opcode_86, multi_opcode_87, multi_opcode_88,
++ multi_opcode_89, multi_opcode_90, multi_opcode_91, multi_opcode_92,
++ multi_opcode_93, multi_opcode_94, multi_opcode_95, multi_opcode_96,
++ multi_opcode_97, multi_opcode_98, multi_opcode_99, multi_opcode_100,
++ multi_opcode_101, multi_opcode_102, multi_opcode_103, multi_opcode_104,
++ multi_opcode_105, multi_opcode_106, multi_opcode_107, multi_opcode_108,
++ multi_opcode_109, multi_opcode_110, multi_opcode_111, multi_opcode_112,
++ multi_opcode_113, multi_opcode_114, multi_opcode_115, multi_opcode_116,
++ multi_opcode_117, multi_opcode_118, multi_opcode_119, multi_opcode_120,
++ multi_opcode_121, multi_opcode_122, multi_opcode_123, multi_opcode_124,
++ multi_opcode_125, multi_opcode_126, multi_opcode_127, multi_opcode_128,
++ multi_opcode_129, multi_opcode_130, multi_opcode_131, multi_opcode_132,
++ multi_opcode_133, multi_opcode_134, multi_opcode_135, multi_opcode_136,
++ multi_opcode_137, multi_opcode_138, multi_opcode_139, multi_opcode_140,
++ multi_opcode_141, multi_opcode_142, multi_opcode_143, multi_opcode_144,
++ multi_opcode_145, multi_opcode_146, multi_opcode_147, multi_opcode_148,
++ multi_opcode_149, multi_opcode_150, multi_opcode_151, multi_opcode_152,
++ multi_opcode_153, multi_opcode_154, multi_opcode_155, multi_opcode_156,
++ multi_opcode_157, multi_opcode_158, multi_opcode_159, multi_opcode_160,
++ multi_opcode_161, multi_opcode_162, multi_opcode_163, multi_opcode_164,
++ multi_opcode_165, multi_opcode_166, multi_opcode_167, multi_opcode_168,
++ multi_opcode_169, multi_opcode_170, multi_opcode_171, multi_opcode_172,
++ multi_opcode_173, multi_opcode_174, multi_opcode_175, multi_opcode_176,
++ multi_opcode_177, multi_opcode_178, multi_opcode_179, multi_opcode_180,
++ multi_opcode_181, multi_opcode_182, multi_opcode_183, multi_opcode_184,
++ multi_opcode_185, multi_opcode_186, multi_opcode_187, multi_opcode_188,
++ multi_opcode_189, multi_opcode_190, multi_opcode_191, multi_opcode_192,
++ multi_opcode_193, multi_opcode_194, multi_opcode_195, multi_opcode_196,
++ multi_opcode_197, multi_opcode_198, multi_opcode_199, multi_opcode_200,
++ multi_opcode_201, multi_opcode_202, multi_opcode_203, multi_opcode_204,
++ multi_opcode_205, multi_opcode_206, multi_opcode_207, multi_opcode_208,
++ multi_opcode_209, multi_opcode_210, multi_opcode_211, multi_opcode_212,
++ multi_opcode_213, multi_opcode_214, multi_opcode_215, multi_opcode_216,
++ multi_opcode_217, multi_opcode_218, multi_opcode_219, multi_opcode_220,
++ multi_opcode_221, multi_opcode_222, multi_opcode_223, multi_opcode_224,
++ multi_opcode_225, multi_opcode_226, multi_opcode_227, multi_opcode_228,
++ multi_opcode_229, multi_opcode_230, multi_opcode_231, multi_opcode_232,
++ multi_opcode_233, multi_opcode_234, multi_opcode_235, multi_opcode_236,
++ multi_opcode_237, multi_opcode_238, multi_opcode_239, multi_opcode_240,
++ multi_opcode_241, multi_opcode_242, multi_opcode_243, multi_opcode_244,
++ multi_opcode_245, multi_opcode_246, multi_opcode_247, multi_opcode_248,
++ multi_opcode_249, multi_opcode_250, multi_opcode_251, multi_opcode_252,
++ multi_opcode_253, multi_opcode_254, multi_opcode_255,};
++
++void (**multi_opcode_f[256])(struct cpu *, struct arm_instr_call *) = {
++ multi_opcode_f_0,
++ NULL, multi_opcode_f_2, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_8,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_18, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_32,
++ multi_opcode_f_33, multi_opcode_f_34, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_48,
++ multi_opcode_f_49, multi_opcode_f_50, multi_opcode_f_51, NULL,
++ NULL, multi_opcode_f_54, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_62, NULL, multi_opcode_f_64,
++ multi_opcode_f_65, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_80,
++ multi_opcode_f_81, multi_opcode_f_82, NULL, NULL,
++ NULL, multi_opcode_f_86, NULL, multi_opcode_f_88,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_94, NULL, NULL,
++ multi_opcode_f_97, multi_opcode_f_98, NULL, multi_opcode_f_100,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_112,
++ multi_opcode_f_113, multi_opcode_f_114, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_128,
++ multi_opcode_f_129, multi_opcode_f_130, NULL, multi_opcode_f_132,
++ NULL, NULL, NULL, multi_opcode_f_136,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_142, NULL, multi_opcode_f_144,
++ multi_opcode_f_145, multi_opcode_f_146, NULL, multi_opcode_f_148,
++ NULL, NULL, NULL, multi_opcode_f_152,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_158, NULL, multi_opcode_f_160,
++ multi_opcode_f_161, multi_opcode_f_162, NULL, multi_opcode_f_164,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_176,
++ multi_opcode_f_177, multi_opcode_f_178, multi_opcode_f_179, NULL,
++ NULL, NULL, NULL, multi_opcode_f_184,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, multi_opcode_f_191, multi_opcode_f_192,
++ multi_opcode_f_193, multi_opcode_f_194, NULL, multi_opcode_f_196,
++ NULL, NULL, NULL, multi_opcode_f_200,
++ NULL, NULL, NULL, multi_opcode_f_204,
++ NULL, multi_opcode_f_206, NULL, multi_opcode_f_208,
++ multi_opcode_f_209, multi_opcode_f_210, NULL, multi_opcode_f_212,
++ NULL, NULL, NULL, multi_opcode_f_216,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_224,
++ multi_opcode_f_225, multi_opcode_f_226, NULL, multi_opcode_f_228,
++ NULL, NULL, NULL, multi_opcode_f_232,
++ NULL, NULL, NULL, NULL,
++ NULL, NULL, NULL, multi_opcode_f_240,
++ multi_opcode_f_241, multi_opcode_f_242, multi_opcode_f_243, multi_opcode_f_244,
++ NULL, multi_opcode_f_246, NULL, multi_opcode_f_248,
++ NULL, NULL, NULL, NULL,
++ NULL, multi_opcode_f_254, NULL,};
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r.c gxemul-0.7.0/src/cpus/tmp_arm_r.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r.c 2022-10-18 16:37:22.085746800 +0000
+@@ -0,0 +1,16398 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++extern uint32_t arm_r_r0_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r0_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r1_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r2_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r3_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r4_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r5_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r6_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r7_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r8_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r9_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r10_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r11_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r12_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r13_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r14_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_r_r15_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c0(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c1(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c2(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c3(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c4(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c5(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c6(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c7(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c8(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c9(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c10(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c11(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c12(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c13(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c14(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c15(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c16(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c17(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c18(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c19(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c20(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c21(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c22(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c23(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c24(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c25(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c26(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c27(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c28(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c29(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c30(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t0_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t1_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t2_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t3_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t4_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t5_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t6_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r0_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r1_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r2_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r3_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r4_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r5_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r6_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r7_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r8_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r9_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r10_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r11_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r12_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r13_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r14_t7_c31(struct cpu *, struct arm_instr_call *);
++extern uint32_t arm_rs_r15_t7_c31(struct cpu *, struct arm_instr_call *);
++
++uint32_t (*arm_r[8192])(struct cpu *, struct arm_instr_call *) = {
++ arm_r_r0_t0_c0,
++ arm_r_r1_t0_c0,
++ arm_r_r2_t0_c0,
++ arm_r_r3_t0_c0,
++ arm_r_r4_t0_c0,
++ arm_r_r5_t0_c0,
++ arm_r_r6_t0_c0,
++ arm_r_r7_t0_c0,
++ arm_r_r8_t0_c0,
++ arm_r_r9_t0_c0,
++ arm_r_r10_t0_c0,
++ arm_r_r11_t0_c0,
++ arm_r_r12_t0_c0,
++ arm_r_r13_t0_c0,
++ arm_r_r14_t0_c0,
++ arm_r_r15_t0_c0,
++ arm_r_r0_t1_c0,
++ arm_r_r1_t1_c0,
++ arm_r_r2_t1_c0,
++ arm_r_r3_t1_c0,
++ arm_r_r4_t1_c0,
++ arm_r_r5_t1_c0,
++ arm_r_r6_t1_c0,
++ arm_r_r7_t1_c0,
++ arm_r_r8_t1_c0,
++ arm_r_r9_t1_c0,
++ arm_r_r10_t1_c0,
++ arm_r_r11_t1_c0,
++ arm_r_r12_t1_c0,
++ arm_r_r13_t1_c0,
++ arm_r_r14_t1_c0,
++ arm_r_r15_t1_c0,
++ arm_r_r0_t2_c0,
++ arm_r_r1_t2_c0,
++ arm_r_r2_t2_c0,
++ arm_r_r3_t2_c0,
++ arm_r_r4_t2_c0,
++ arm_r_r5_t2_c0,
++ arm_r_r6_t2_c0,
++ arm_r_r7_t2_c0,
++ arm_r_r8_t2_c0,
++ arm_r_r9_t2_c0,
++ arm_r_r10_t2_c0,
++ arm_r_r11_t2_c0,
++ arm_r_r12_t2_c0,
++ arm_r_r13_t2_c0,
++ arm_r_r14_t2_c0,
++ arm_r_r15_t2_c0,
++ arm_r_r0_t3_c0,
++ arm_r_r1_t3_c0,
++ arm_r_r2_t3_c0,
++ arm_r_r3_t3_c0,
++ arm_r_r4_t3_c0,
++ arm_r_r5_t3_c0,
++ arm_r_r6_t3_c0,
++ arm_r_r7_t3_c0,
++ arm_r_r8_t3_c0,
++ arm_r_r9_t3_c0,
++ arm_r_r10_t3_c0,
++ arm_r_r11_t3_c0,
++ arm_r_r12_t3_c0,
++ arm_r_r13_t3_c0,
++ arm_r_r14_t3_c0,
++ arm_r_r15_t3_c0,
++ arm_r_r0_t4_c0,
++ arm_r_r1_t4_c0,
++ arm_r_r2_t4_c0,
++ arm_r_r3_t4_c0,
++ arm_r_r4_t4_c0,
++ arm_r_r5_t4_c0,
++ arm_r_r6_t4_c0,
++ arm_r_r7_t4_c0,
++ arm_r_r8_t4_c0,
++ arm_r_r9_t4_c0,
++ arm_r_r10_t4_c0,
++ arm_r_r11_t4_c0,
++ arm_r_r12_t4_c0,
++ arm_r_r13_t4_c0,
++ arm_r_r14_t4_c0,
++ arm_r_r15_t4_c0,
++ arm_r_r0_t5_c0,
++ arm_r_r1_t5_c0,
++ arm_r_r2_t5_c0,
++ arm_r_r3_t5_c0,
++ arm_r_r4_t5_c0,
++ arm_r_r5_t5_c0,
++ arm_r_r6_t5_c0,
++ arm_r_r7_t5_c0,
++ arm_r_r8_t5_c0,
++ arm_r_r9_t5_c0,
++ arm_r_r10_t5_c0,
++ arm_r_r11_t5_c0,
++ arm_r_r12_t5_c0,
++ arm_r_r13_t5_c0,
++ arm_r_r14_t5_c0,
++ arm_r_r15_t5_c0,
++ arm_r_r0_t6_c0,
++ arm_r_r1_t6_c0,
++ arm_r_r2_t6_c0,
++ arm_r_r3_t6_c0,
++ arm_r_r4_t6_c0,
++ arm_r_r5_t6_c0,
++ arm_r_r6_t6_c0,
++ arm_r_r7_t6_c0,
++ arm_r_r8_t6_c0,
++ arm_r_r9_t6_c0,
++ arm_r_r10_t6_c0,
++ arm_r_r11_t6_c0,
++ arm_r_r12_t6_c0,
++ arm_r_r13_t6_c0,
++ arm_r_r14_t6_c0,
++ arm_r_r15_t6_c0,
++ arm_r_r0_t7_c0,
++ arm_r_r1_t7_c0,
++ arm_r_r2_t7_c0,
++ arm_r_r3_t7_c0,
++ arm_r_r4_t7_c0,
++ arm_r_r5_t7_c0,
++ arm_r_r6_t7_c0,
++ arm_r_r7_t7_c0,
++ arm_r_r8_t7_c0,
++ arm_r_r9_t7_c0,
++ arm_r_r10_t7_c0,
++ arm_r_r11_t7_c0,
++ arm_r_r12_t7_c0,
++ arm_r_r13_t7_c0,
++ arm_r_r14_t7_c0,
++ arm_r_r15_t7_c0,
++ arm_r_r0_t0_c1,
++ arm_r_r1_t0_c1,
++ arm_r_r2_t0_c1,
++ arm_r_r3_t0_c1,
++ arm_r_r4_t0_c1,
++ arm_r_r5_t0_c1,
++ arm_r_r6_t0_c1,
++ arm_r_r7_t0_c1,
++ arm_r_r8_t0_c1,
++ arm_r_r9_t0_c1,
++ arm_r_r10_t0_c1,
++ arm_r_r11_t0_c1,
++ arm_r_r12_t0_c1,
++ arm_r_r13_t0_c1,
++ arm_r_r14_t0_c1,
++ arm_r_r15_t0_c1,
++ arm_r_r0_t1_c1,
++ arm_r_r1_t1_c1,
++ arm_r_r2_t1_c1,
++ arm_r_r3_t1_c1,
++ arm_r_r4_t1_c1,
++ arm_r_r5_t1_c1,
++ arm_r_r6_t1_c1,
++ arm_r_r7_t1_c1,
++ arm_r_r8_t1_c1,
++ arm_r_r9_t1_c1,
++ arm_r_r10_t1_c1,
++ arm_r_r11_t1_c1,
++ arm_r_r12_t1_c1,
++ arm_r_r13_t1_c1,
++ arm_r_r14_t1_c1,
++ arm_r_r15_t1_c1,
++ arm_r_r0_t2_c1,
++ arm_r_r1_t2_c1,
++ arm_r_r2_t2_c1,
++ arm_r_r3_t2_c1,
++ arm_r_r4_t2_c1,
++ arm_r_r5_t2_c1,
++ arm_r_r6_t2_c1,
++ arm_r_r7_t2_c1,
++ arm_r_r8_t2_c1,
++ arm_r_r9_t2_c1,
++ arm_r_r10_t2_c1,
++ arm_r_r11_t2_c1,
++ arm_r_r12_t2_c1,
++ arm_r_r13_t2_c1,
++ arm_r_r14_t2_c1,
++ arm_r_r15_t2_c1,
++ arm_r_r0_t3_c1,
++ arm_r_r1_t3_c1,
++ arm_r_r2_t3_c1,
++ arm_r_r3_t3_c1,
++ arm_r_r4_t3_c1,
++ arm_r_r5_t3_c1,
++ arm_r_r6_t3_c1,
++ arm_r_r7_t3_c1,
++ arm_r_r8_t3_c1,
++ arm_r_r9_t3_c1,
++ arm_r_r10_t3_c1,
++ arm_r_r11_t3_c1,
++ arm_r_r12_t3_c1,
++ arm_r_r13_t3_c1,
++ arm_r_r14_t3_c1,
++ arm_r_r15_t3_c1,
++ arm_r_r0_t4_c1,
++ arm_r_r1_t4_c1,
++ arm_r_r2_t4_c1,
++ arm_r_r3_t4_c1,
++ arm_r_r4_t4_c1,
++ arm_r_r5_t4_c1,
++ arm_r_r6_t4_c1,
++ arm_r_r7_t4_c1,
++ arm_r_r8_t4_c1,
++ arm_r_r9_t4_c1,
++ arm_r_r10_t4_c1,
++ arm_r_r11_t4_c1,
++ arm_r_r12_t4_c1,
++ arm_r_r13_t4_c1,
++ arm_r_r14_t4_c1,
++ arm_r_r15_t4_c1,
++ arm_r_r0_t5_c1,
++ arm_r_r1_t5_c1,
++ arm_r_r2_t5_c1,
++ arm_r_r3_t5_c1,
++ arm_r_r4_t5_c1,
++ arm_r_r5_t5_c1,
++ arm_r_r6_t5_c1,
++ arm_r_r7_t5_c1,
++ arm_r_r8_t5_c1,
++ arm_r_r9_t5_c1,
++ arm_r_r10_t5_c1,
++ arm_r_r11_t5_c1,
++ arm_r_r12_t5_c1,
++ arm_r_r13_t5_c1,
++ arm_r_r14_t5_c1,
++ arm_r_r15_t5_c1,
++ arm_r_r0_t6_c1,
++ arm_r_r1_t6_c1,
++ arm_r_r2_t6_c1,
++ arm_r_r3_t6_c1,
++ arm_r_r4_t6_c1,
++ arm_r_r5_t6_c1,
++ arm_r_r6_t6_c1,
++ arm_r_r7_t6_c1,
++ arm_r_r8_t6_c1,
++ arm_r_r9_t6_c1,
++ arm_r_r10_t6_c1,
++ arm_r_r11_t6_c1,
++ arm_r_r12_t6_c1,
++ arm_r_r13_t6_c1,
++ arm_r_r14_t6_c1,
++ arm_r_r15_t6_c1,
++ arm_r_r0_t7_c1,
++ arm_r_r1_t7_c1,
++ arm_r_r2_t7_c1,
++ arm_r_r3_t7_c1,
++ arm_r_r4_t7_c1,
++ arm_r_r5_t7_c1,
++ arm_r_r6_t7_c1,
++ arm_r_r7_t7_c1,
++ arm_r_r8_t7_c1,
++ arm_r_r9_t7_c1,
++ arm_r_r10_t7_c1,
++ arm_r_r11_t7_c1,
++ arm_r_r12_t7_c1,
++ arm_r_r13_t7_c1,
++ arm_r_r14_t7_c1,
++ arm_r_r15_t7_c1,
++ arm_r_r0_t0_c2,
++ arm_r_r1_t0_c2,
++ arm_r_r2_t0_c2,
++ arm_r_r3_t0_c2,
++ arm_r_r4_t0_c2,
++ arm_r_r5_t0_c2,
++ arm_r_r6_t0_c2,
++ arm_r_r7_t0_c2,
++ arm_r_r8_t0_c2,
++ arm_r_r9_t0_c2,
++ arm_r_r10_t0_c2,
++ arm_r_r11_t0_c2,
++ arm_r_r12_t0_c2,
++ arm_r_r13_t0_c2,
++ arm_r_r14_t0_c2,
++ arm_r_r15_t0_c2,
++ arm_r_r0_t1_c2,
++ arm_r_r1_t1_c2,
++ arm_r_r2_t1_c2,
++ arm_r_r3_t1_c2,
++ arm_r_r4_t1_c2,
++ arm_r_r5_t1_c2,
++ arm_r_r6_t1_c2,
++ arm_r_r7_t1_c2,
++ arm_r_r8_t1_c2,
++ arm_r_r9_t1_c2,
++ arm_r_r10_t1_c2,
++ arm_r_r11_t1_c2,
++ arm_r_r12_t1_c2,
++ arm_r_r13_t1_c2,
++ arm_r_r14_t1_c2,
++ arm_r_r15_t1_c2,
++ arm_r_r0_t2_c2,
++ arm_r_r1_t2_c2,
++ arm_r_r2_t2_c2,
++ arm_r_r3_t2_c2,
++ arm_r_r4_t2_c2,
++ arm_r_r5_t2_c2,
++ arm_r_r6_t2_c2,
++ arm_r_r7_t2_c2,
++ arm_r_r8_t2_c2,
++ arm_r_r9_t2_c2,
++ arm_r_r10_t2_c2,
++ arm_r_r11_t2_c2,
++ arm_r_r12_t2_c2,
++ arm_r_r13_t2_c2,
++ arm_r_r14_t2_c2,
++ arm_r_r15_t2_c2,
++ arm_r_r0_t3_c2,
++ arm_r_r1_t3_c2,
++ arm_r_r2_t3_c2,
++ arm_r_r3_t3_c2,
++ arm_r_r4_t3_c2,
++ arm_r_r5_t3_c2,
++ arm_r_r6_t3_c2,
++ arm_r_r7_t3_c2,
++ arm_r_r8_t3_c2,
++ arm_r_r9_t3_c2,
++ arm_r_r10_t3_c2,
++ arm_r_r11_t3_c2,
++ arm_r_r12_t3_c2,
++ arm_r_r13_t3_c2,
++ arm_r_r14_t3_c2,
++ arm_r_r15_t3_c2,
++ arm_r_r0_t4_c2,
++ arm_r_r1_t4_c2,
++ arm_r_r2_t4_c2,
++ arm_r_r3_t4_c2,
++ arm_r_r4_t4_c2,
++ arm_r_r5_t4_c2,
++ arm_r_r6_t4_c2,
++ arm_r_r7_t4_c2,
++ arm_r_r8_t4_c2,
++ arm_r_r9_t4_c2,
++ arm_r_r10_t4_c2,
++ arm_r_r11_t4_c2,
++ arm_r_r12_t4_c2,
++ arm_r_r13_t4_c2,
++ arm_r_r14_t4_c2,
++ arm_r_r15_t4_c2,
++ arm_r_r0_t5_c2,
++ arm_r_r1_t5_c2,
++ arm_r_r2_t5_c2,
++ arm_r_r3_t5_c2,
++ arm_r_r4_t5_c2,
++ arm_r_r5_t5_c2,
++ arm_r_r6_t5_c2,
++ arm_r_r7_t5_c2,
++ arm_r_r8_t5_c2,
++ arm_r_r9_t5_c2,
++ arm_r_r10_t5_c2,
++ arm_r_r11_t5_c2,
++ arm_r_r12_t5_c2,
++ arm_r_r13_t5_c2,
++ arm_r_r14_t5_c2,
++ arm_r_r15_t5_c2,
++ arm_r_r0_t6_c2,
++ arm_r_r1_t6_c2,
++ arm_r_r2_t6_c2,
++ arm_r_r3_t6_c2,
++ arm_r_r4_t6_c2,
++ arm_r_r5_t6_c2,
++ arm_r_r6_t6_c2,
++ arm_r_r7_t6_c2,
++ arm_r_r8_t6_c2,
++ arm_r_r9_t6_c2,
++ arm_r_r10_t6_c2,
++ arm_r_r11_t6_c2,
++ arm_r_r12_t6_c2,
++ arm_r_r13_t6_c2,
++ arm_r_r14_t6_c2,
++ arm_r_r15_t6_c2,
++ arm_r_r0_t7_c2,
++ arm_r_r1_t7_c2,
++ arm_r_r2_t7_c2,
++ arm_r_r3_t7_c2,
++ arm_r_r4_t7_c2,
++ arm_r_r5_t7_c2,
++ arm_r_r6_t7_c2,
++ arm_r_r7_t7_c2,
++ arm_r_r8_t7_c2,
++ arm_r_r9_t7_c2,
++ arm_r_r10_t7_c2,
++ arm_r_r11_t7_c2,
++ arm_r_r12_t7_c2,
++ arm_r_r13_t7_c2,
++ arm_r_r14_t7_c2,
++ arm_r_r15_t7_c2,
++ arm_r_r0_t0_c3,
++ arm_r_r1_t0_c3,
++ arm_r_r2_t0_c3,
++ arm_r_r3_t0_c3,
++ arm_r_r4_t0_c3,
++ arm_r_r5_t0_c3,
++ arm_r_r6_t0_c3,
++ arm_r_r7_t0_c3,
++ arm_r_r8_t0_c3,
++ arm_r_r9_t0_c3,
++ arm_r_r10_t0_c3,
++ arm_r_r11_t0_c3,
++ arm_r_r12_t0_c3,
++ arm_r_r13_t0_c3,
++ arm_r_r14_t0_c3,
++ arm_r_r15_t0_c3,
++ arm_r_r0_t1_c3,
++ arm_r_r1_t1_c3,
++ arm_r_r2_t1_c3,
++ arm_r_r3_t1_c3,
++ arm_r_r4_t1_c3,
++ arm_r_r5_t1_c3,
++ arm_r_r6_t1_c3,
++ arm_r_r7_t1_c3,
++ arm_r_r8_t1_c3,
++ arm_r_r9_t1_c3,
++ arm_r_r10_t1_c3,
++ arm_r_r11_t1_c3,
++ arm_r_r12_t1_c3,
++ arm_r_r13_t1_c3,
++ arm_r_r14_t1_c3,
++ arm_r_r15_t1_c3,
++ arm_r_r0_t2_c3,
++ arm_r_r1_t2_c3,
++ arm_r_r2_t2_c3,
++ arm_r_r3_t2_c3,
++ arm_r_r4_t2_c3,
++ arm_r_r5_t2_c3,
++ arm_r_r6_t2_c3,
++ arm_r_r7_t2_c3,
++ arm_r_r8_t2_c3,
++ arm_r_r9_t2_c3,
++ arm_r_r10_t2_c3,
++ arm_r_r11_t2_c3,
++ arm_r_r12_t2_c3,
++ arm_r_r13_t2_c3,
++ arm_r_r14_t2_c3,
++ arm_r_r15_t2_c3,
++ arm_r_r0_t3_c3,
++ arm_r_r1_t3_c3,
++ arm_r_r2_t3_c3,
++ arm_r_r3_t3_c3,
++ arm_r_r4_t3_c3,
++ arm_r_r5_t3_c3,
++ arm_r_r6_t3_c3,
++ arm_r_r7_t3_c3,
++ arm_r_r8_t3_c3,
++ arm_r_r9_t3_c3,
++ arm_r_r10_t3_c3,
++ arm_r_r11_t3_c3,
++ arm_r_r12_t3_c3,
++ arm_r_r13_t3_c3,
++ arm_r_r14_t3_c3,
++ arm_r_r15_t3_c3,
++ arm_r_r0_t4_c3,
++ arm_r_r1_t4_c3,
++ arm_r_r2_t4_c3,
++ arm_r_r3_t4_c3,
++ arm_r_r4_t4_c3,
++ arm_r_r5_t4_c3,
++ arm_r_r6_t4_c3,
++ arm_r_r7_t4_c3,
++ arm_r_r8_t4_c3,
++ arm_r_r9_t4_c3,
++ arm_r_r10_t4_c3,
++ arm_r_r11_t4_c3,
++ arm_r_r12_t4_c3,
++ arm_r_r13_t4_c3,
++ arm_r_r14_t4_c3,
++ arm_r_r15_t4_c3,
++ arm_r_r0_t5_c3,
++ arm_r_r1_t5_c3,
++ arm_r_r2_t5_c3,
++ arm_r_r3_t5_c3,
++ arm_r_r4_t5_c3,
++ arm_r_r5_t5_c3,
++ arm_r_r6_t5_c3,
++ arm_r_r7_t5_c3,
++ arm_r_r8_t5_c3,
++ arm_r_r9_t5_c3,
++ arm_r_r10_t5_c3,
++ arm_r_r11_t5_c3,
++ arm_r_r12_t5_c3,
++ arm_r_r13_t5_c3,
++ arm_r_r14_t5_c3,
++ arm_r_r15_t5_c3,
++ arm_r_r0_t6_c3,
++ arm_r_r1_t6_c3,
++ arm_r_r2_t6_c3,
++ arm_r_r3_t6_c3,
++ arm_r_r4_t6_c3,
++ arm_r_r5_t6_c3,
++ arm_r_r6_t6_c3,
++ arm_r_r7_t6_c3,
++ arm_r_r8_t6_c3,
++ arm_r_r9_t6_c3,
++ arm_r_r10_t6_c3,
++ arm_r_r11_t6_c3,
++ arm_r_r12_t6_c3,
++ arm_r_r13_t6_c3,
++ arm_r_r14_t6_c3,
++ arm_r_r15_t6_c3,
++ arm_r_r0_t7_c3,
++ arm_r_r1_t7_c3,
++ arm_r_r2_t7_c3,
++ arm_r_r3_t7_c3,
++ arm_r_r4_t7_c3,
++ arm_r_r5_t7_c3,
++ arm_r_r6_t7_c3,
++ arm_r_r7_t7_c3,
++ arm_r_r8_t7_c3,
++ arm_r_r9_t7_c3,
++ arm_r_r10_t7_c3,
++ arm_r_r11_t7_c3,
++ arm_r_r12_t7_c3,
++ arm_r_r13_t7_c3,
++ arm_r_r14_t7_c3,
++ arm_r_r15_t7_c3,
++ arm_r_r0_t0_c4,
++ arm_r_r1_t0_c4,
++ arm_r_r2_t0_c4,
++ arm_r_r3_t0_c4,
++ arm_r_r4_t0_c4,
++ arm_r_r5_t0_c4,
++ arm_r_r6_t0_c4,
++ arm_r_r7_t0_c4,
++ arm_r_r8_t0_c4,
++ arm_r_r9_t0_c4,
++ arm_r_r10_t0_c4,
++ arm_r_r11_t0_c4,
++ arm_r_r12_t0_c4,
++ arm_r_r13_t0_c4,
++ arm_r_r14_t0_c4,
++ arm_r_r15_t0_c4,
++ arm_r_r0_t1_c4,
++ arm_r_r1_t1_c4,
++ arm_r_r2_t1_c4,
++ arm_r_r3_t1_c4,
++ arm_r_r4_t1_c4,
++ arm_r_r5_t1_c4,
++ arm_r_r6_t1_c4,
++ arm_r_r7_t1_c4,
++ arm_r_r8_t1_c4,
++ arm_r_r9_t1_c4,
++ arm_r_r10_t1_c4,
++ arm_r_r11_t1_c4,
++ arm_r_r12_t1_c4,
++ arm_r_r13_t1_c4,
++ arm_r_r14_t1_c4,
++ arm_r_r15_t1_c4,
++ arm_r_r0_t2_c4,
++ arm_r_r1_t2_c4,
++ arm_r_r2_t2_c4,
++ arm_r_r3_t2_c4,
++ arm_r_r4_t2_c4,
++ arm_r_r5_t2_c4,
++ arm_r_r6_t2_c4,
++ arm_r_r7_t2_c4,
++ arm_r_r8_t2_c4,
++ arm_r_r9_t2_c4,
++ arm_r_r10_t2_c4,
++ arm_r_r11_t2_c4,
++ arm_r_r12_t2_c4,
++ arm_r_r13_t2_c4,
++ arm_r_r14_t2_c4,
++ arm_r_r15_t2_c4,
++ arm_r_r0_t3_c4,
++ arm_r_r1_t3_c4,
++ arm_r_r2_t3_c4,
++ arm_r_r3_t3_c4,
++ arm_r_r4_t3_c4,
++ arm_r_r5_t3_c4,
++ arm_r_r6_t3_c4,
++ arm_r_r7_t3_c4,
++ arm_r_r8_t3_c4,
++ arm_r_r9_t3_c4,
++ arm_r_r10_t3_c4,
++ arm_r_r11_t3_c4,
++ arm_r_r12_t3_c4,
++ arm_r_r13_t3_c4,
++ arm_r_r14_t3_c4,
++ arm_r_r15_t3_c4,
++ arm_r_r0_t4_c4,
++ arm_r_r1_t4_c4,
++ arm_r_r2_t4_c4,
++ arm_r_r3_t4_c4,
++ arm_r_r4_t4_c4,
++ arm_r_r5_t4_c4,
++ arm_r_r6_t4_c4,
++ arm_r_r7_t4_c4,
++ arm_r_r8_t4_c4,
++ arm_r_r9_t4_c4,
++ arm_r_r10_t4_c4,
++ arm_r_r11_t4_c4,
++ arm_r_r12_t4_c4,
++ arm_r_r13_t4_c4,
++ arm_r_r14_t4_c4,
++ arm_r_r15_t4_c4,
++ arm_r_r0_t5_c4,
++ arm_r_r1_t5_c4,
++ arm_r_r2_t5_c4,
++ arm_r_r3_t5_c4,
++ arm_r_r4_t5_c4,
++ arm_r_r5_t5_c4,
++ arm_r_r6_t5_c4,
++ arm_r_r7_t5_c4,
++ arm_r_r8_t5_c4,
++ arm_r_r9_t5_c4,
++ arm_r_r10_t5_c4,
++ arm_r_r11_t5_c4,
++ arm_r_r12_t5_c4,
++ arm_r_r13_t5_c4,
++ arm_r_r14_t5_c4,
++ arm_r_r15_t5_c4,
++ arm_r_r0_t6_c4,
++ arm_r_r1_t6_c4,
++ arm_r_r2_t6_c4,
++ arm_r_r3_t6_c4,
++ arm_r_r4_t6_c4,
++ arm_r_r5_t6_c4,
++ arm_r_r6_t6_c4,
++ arm_r_r7_t6_c4,
++ arm_r_r8_t6_c4,
++ arm_r_r9_t6_c4,
++ arm_r_r10_t6_c4,
++ arm_r_r11_t6_c4,
++ arm_r_r12_t6_c4,
++ arm_r_r13_t6_c4,
++ arm_r_r14_t6_c4,
++ arm_r_r15_t6_c4,
++ arm_r_r0_t7_c4,
++ arm_r_r1_t7_c4,
++ arm_r_r2_t7_c4,
++ arm_r_r3_t7_c4,
++ arm_r_r4_t7_c4,
++ arm_r_r5_t7_c4,
++ arm_r_r6_t7_c4,
++ arm_r_r7_t7_c4,
++ arm_r_r8_t7_c4,
++ arm_r_r9_t7_c4,
++ arm_r_r10_t7_c4,
++ arm_r_r11_t7_c4,
++ arm_r_r12_t7_c4,
++ arm_r_r13_t7_c4,
++ arm_r_r14_t7_c4,
++ arm_r_r15_t7_c4,
++ arm_r_r0_t0_c5,
++ arm_r_r1_t0_c5,
++ arm_r_r2_t0_c5,
++ arm_r_r3_t0_c5,
++ arm_r_r4_t0_c5,
++ arm_r_r5_t0_c5,
++ arm_r_r6_t0_c5,
++ arm_r_r7_t0_c5,
++ arm_r_r8_t0_c5,
++ arm_r_r9_t0_c5,
++ arm_r_r10_t0_c5,
++ arm_r_r11_t0_c5,
++ arm_r_r12_t0_c5,
++ arm_r_r13_t0_c5,
++ arm_r_r14_t0_c5,
++ arm_r_r15_t0_c5,
++ arm_r_r0_t1_c5,
++ arm_r_r1_t1_c5,
++ arm_r_r2_t1_c5,
++ arm_r_r3_t1_c5,
++ arm_r_r4_t1_c5,
++ arm_r_r5_t1_c5,
++ arm_r_r6_t1_c5,
++ arm_r_r7_t1_c5,
++ arm_r_r8_t1_c5,
++ arm_r_r9_t1_c5,
++ arm_r_r10_t1_c5,
++ arm_r_r11_t1_c5,
++ arm_r_r12_t1_c5,
++ arm_r_r13_t1_c5,
++ arm_r_r14_t1_c5,
++ arm_r_r15_t1_c5,
++ arm_r_r0_t2_c5,
++ arm_r_r1_t2_c5,
++ arm_r_r2_t2_c5,
++ arm_r_r3_t2_c5,
++ arm_r_r4_t2_c5,
++ arm_r_r5_t2_c5,
++ arm_r_r6_t2_c5,
++ arm_r_r7_t2_c5,
++ arm_r_r8_t2_c5,
++ arm_r_r9_t2_c5,
++ arm_r_r10_t2_c5,
++ arm_r_r11_t2_c5,
++ arm_r_r12_t2_c5,
++ arm_r_r13_t2_c5,
++ arm_r_r14_t2_c5,
++ arm_r_r15_t2_c5,
++ arm_r_r0_t3_c5,
++ arm_r_r1_t3_c5,
++ arm_r_r2_t3_c5,
++ arm_r_r3_t3_c5,
++ arm_r_r4_t3_c5,
++ arm_r_r5_t3_c5,
++ arm_r_r6_t3_c5,
++ arm_r_r7_t3_c5,
++ arm_r_r8_t3_c5,
++ arm_r_r9_t3_c5,
++ arm_r_r10_t3_c5,
++ arm_r_r11_t3_c5,
++ arm_r_r12_t3_c5,
++ arm_r_r13_t3_c5,
++ arm_r_r14_t3_c5,
++ arm_r_r15_t3_c5,
++ arm_r_r0_t4_c5,
++ arm_r_r1_t4_c5,
++ arm_r_r2_t4_c5,
++ arm_r_r3_t4_c5,
++ arm_r_r4_t4_c5,
++ arm_r_r5_t4_c5,
++ arm_r_r6_t4_c5,
++ arm_r_r7_t4_c5,
++ arm_r_r8_t4_c5,
++ arm_r_r9_t4_c5,
++ arm_r_r10_t4_c5,
++ arm_r_r11_t4_c5,
++ arm_r_r12_t4_c5,
++ arm_r_r13_t4_c5,
++ arm_r_r14_t4_c5,
++ arm_r_r15_t4_c5,
++ arm_r_r0_t5_c5,
++ arm_r_r1_t5_c5,
++ arm_r_r2_t5_c5,
++ arm_r_r3_t5_c5,
++ arm_r_r4_t5_c5,
++ arm_r_r5_t5_c5,
++ arm_r_r6_t5_c5,
++ arm_r_r7_t5_c5,
++ arm_r_r8_t5_c5,
++ arm_r_r9_t5_c5,
++ arm_r_r10_t5_c5,
++ arm_r_r11_t5_c5,
++ arm_r_r12_t5_c5,
++ arm_r_r13_t5_c5,
++ arm_r_r14_t5_c5,
++ arm_r_r15_t5_c5,
++ arm_r_r0_t6_c5,
++ arm_r_r1_t6_c5,
++ arm_r_r2_t6_c5,
++ arm_r_r3_t6_c5,
++ arm_r_r4_t6_c5,
++ arm_r_r5_t6_c5,
++ arm_r_r6_t6_c5,
++ arm_r_r7_t6_c5,
++ arm_r_r8_t6_c5,
++ arm_r_r9_t6_c5,
++ arm_r_r10_t6_c5,
++ arm_r_r11_t6_c5,
++ arm_r_r12_t6_c5,
++ arm_r_r13_t6_c5,
++ arm_r_r14_t6_c5,
++ arm_r_r15_t6_c5,
++ arm_r_r0_t7_c5,
++ arm_r_r1_t7_c5,
++ arm_r_r2_t7_c5,
++ arm_r_r3_t7_c5,
++ arm_r_r4_t7_c5,
++ arm_r_r5_t7_c5,
++ arm_r_r6_t7_c5,
++ arm_r_r7_t7_c5,
++ arm_r_r8_t7_c5,
++ arm_r_r9_t7_c5,
++ arm_r_r10_t7_c5,
++ arm_r_r11_t7_c5,
++ arm_r_r12_t7_c5,
++ arm_r_r13_t7_c5,
++ arm_r_r14_t7_c5,
++ arm_r_r15_t7_c5,
++ arm_r_r0_t0_c6,
++ arm_r_r1_t0_c6,
++ arm_r_r2_t0_c6,
++ arm_r_r3_t0_c6,
++ arm_r_r4_t0_c6,
++ arm_r_r5_t0_c6,
++ arm_r_r6_t0_c6,
++ arm_r_r7_t0_c6,
++ arm_r_r8_t0_c6,
++ arm_r_r9_t0_c6,
++ arm_r_r10_t0_c6,
++ arm_r_r11_t0_c6,
++ arm_r_r12_t0_c6,
++ arm_r_r13_t0_c6,
++ arm_r_r14_t0_c6,
++ arm_r_r15_t0_c6,
++ arm_r_r0_t1_c6,
++ arm_r_r1_t1_c6,
++ arm_r_r2_t1_c6,
++ arm_r_r3_t1_c6,
++ arm_r_r4_t1_c6,
++ arm_r_r5_t1_c6,
++ arm_r_r6_t1_c6,
++ arm_r_r7_t1_c6,
++ arm_r_r8_t1_c6,
++ arm_r_r9_t1_c6,
++ arm_r_r10_t1_c6,
++ arm_r_r11_t1_c6,
++ arm_r_r12_t1_c6,
++ arm_r_r13_t1_c6,
++ arm_r_r14_t1_c6,
++ arm_r_r15_t1_c6,
++ arm_r_r0_t2_c6,
++ arm_r_r1_t2_c6,
++ arm_r_r2_t2_c6,
++ arm_r_r3_t2_c6,
++ arm_r_r4_t2_c6,
++ arm_r_r5_t2_c6,
++ arm_r_r6_t2_c6,
++ arm_r_r7_t2_c6,
++ arm_r_r8_t2_c6,
++ arm_r_r9_t2_c6,
++ arm_r_r10_t2_c6,
++ arm_r_r11_t2_c6,
++ arm_r_r12_t2_c6,
++ arm_r_r13_t2_c6,
++ arm_r_r14_t2_c6,
++ arm_r_r15_t2_c6,
++ arm_r_r0_t3_c6,
++ arm_r_r1_t3_c6,
++ arm_r_r2_t3_c6,
++ arm_r_r3_t3_c6,
++ arm_r_r4_t3_c6,
++ arm_r_r5_t3_c6,
++ arm_r_r6_t3_c6,
++ arm_r_r7_t3_c6,
++ arm_r_r8_t3_c6,
++ arm_r_r9_t3_c6,
++ arm_r_r10_t3_c6,
++ arm_r_r11_t3_c6,
++ arm_r_r12_t3_c6,
++ arm_r_r13_t3_c6,
++ arm_r_r14_t3_c6,
++ arm_r_r15_t3_c6,
++ arm_r_r0_t4_c6,
++ arm_r_r1_t4_c6,
++ arm_r_r2_t4_c6,
++ arm_r_r3_t4_c6,
++ arm_r_r4_t4_c6,
++ arm_r_r5_t4_c6,
++ arm_r_r6_t4_c6,
++ arm_r_r7_t4_c6,
++ arm_r_r8_t4_c6,
++ arm_r_r9_t4_c6,
++ arm_r_r10_t4_c6,
++ arm_r_r11_t4_c6,
++ arm_r_r12_t4_c6,
++ arm_r_r13_t4_c6,
++ arm_r_r14_t4_c6,
++ arm_r_r15_t4_c6,
++ arm_r_r0_t5_c6,
++ arm_r_r1_t5_c6,
++ arm_r_r2_t5_c6,
++ arm_r_r3_t5_c6,
++ arm_r_r4_t5_c6,
++ arm_r_r5_t5_c6,
++ arm_r_r6_t5_c6,
++ arm_r_r7_t5_c6,
++ arm_r_r8_t5_c6,
++ arm_r_r9_t5_c6,
++ arm_r_r10_t5_c6,
++ arm_r_r11_t5_c6,
++ arm_r_r12_t5_c6,
++ arm_r_r13_t5_c6,
++ arm_r_r14_t5_c6,
++ arm_r_r15_t5_c6,
++ arm_r_r0_t6_c6,
++ arm_r_r1_t6_c6,
++ arm_r_r2_t6_c6,
++ arm_r_r3_t6_c6,
++ arm_r_r4_t6_c6,
++ arm_r_r5_t6_c6,
++ arm_r_r6_t6_c6,
++ arm_r_r7_t6_c6,
++ arm_r_r8_t6_c6,
++ arm_r_r9_t6_c6,
++ arm_r_r10_t6_c6,
++ arm_r_r11_t6_c6,
++ arm_r_r12_t6_c6,
++ arm_r_r13_t6_c6,
++ arm_r_r14_t6_c6,
++ arm_r_r15_t6_c6,
++ arm_r_r0_t7_c6,
++ arm_r_r1_t7_c6,
++ arm_r_r2_t7_c6,
++ arm_r_r3_t7_c6,
++ arm_r_r4_t7_c6,
++ arm_r_r5_t7_c6,
++ arm_r_r6_t7_c6,
++ arm_r_r7_t7_c6,
++ arm_r_r8_t7_c6,
++ arm_r_r9_t7_c6,
++ arm_r_r10_t7_c6,
++ arm_r_r11_t7_c6,
++ arm_r_r12_t7_c6,
++ arm_r_r13_t7_c6,
++ arm_r_r14_t7_c6,
++ arm_r_r15_t7_c6,
++ arm_r_r0_t0_c7,
++ arm_r_r1_t0_c7,
++ arm_r_r2_t0_c7,
++ arm_r_r3_t0_c7,
++ arm_r_r4_t0_c7,
++ arm_r_r5_t0_c7,
++ arm_r_r6_t0_c7,
++ arm_r_r7_t0_c7,
++ arm_r_r8_t0_c7,
++ arm_r_r9_t0_c7,
++ arm_r_r10_t0_c7,
++ arm_r_r11_t0_c7,
++ arm_r_r12_t0_c7,
++ arm_r_r13_t0_c7,
++ arm_r_r14_t0_c7,
++ arm_r_r15_t0_c7,
++ arm_r_r0_t1_c7,
++ arm_r_r1_t1_c7,
++ arm_r_r2_t1_c7,
++ arm_r_r3_t1_c7,
++ arm_r_r4_t1_c7,
++ arm_r_r5_t1_c7,
++ arm_r_r6_t1_c7,
++ arm_r_r7_t1_c7,
++ arm_r_r8_t1_c7,
++ arm_r_r9_t1_c7,
++ arm_r_r10_t1_c7,
++ arm_r_r11_t1_c7,
++ arm_r_r12_t1_c7,
++ arm_r_r13_t1_c7,
++ arm_r_r14_t1_c7,
++ arm_r_r15_t1_c7,
++ arm_r_r0_t2_c7,
++ arm_r_r1_t2_c7,
++ arm_r_r2_t2_c7,
++ arm_r_r3_t2_c7,
++ arm_r_r4_t2_c7,
++ arm_r_r5_t2_c7,
++ arm_r_r6_t2_c7,
++ arm_r_r7_t2_c7,
++ arm_r_r8_t2_c7,
++ arm_r_r9_t2_c7,
++ arm_r_r10_t2_c7,
++ arm_r_r11_t2_c7,
++ arm_r_r12_t2_c7,
++ arm_r_r13_t2_c7,
++ arm_r_r14_t2_c7,
++ arm_r_r15_t2_c7,
++ arm_r_r0_t3_c7,
++ arm_r_r1_t3_c7,
++ arm_r_r2_t3_c7,
++ arm_r_r3_t3_c7,
++ arm_r_r4_t3_c7,
++ arm_r_r5_t3_c7,
++ arm_r_r6_t3_c7,
++ arm_r_r7_t3_c7,
++ arm_r_r8_t3_c7,
++ arm_r_r9_t3_c7,
++ arm_r_r10_t3_c7,
++ arm_r_r11_t3_c7,
++ arm_r_r12_t3_c7,
++ arm_r_r13_t3_c7,
++ arm_r_r14_t3_c7,
++ arm_r_r15_t3_c7,
++ arm_r_r0_t4_c7,
++ arm_r_r1_t4_c7,
++ arm_r_r2_t4_c7,
++ arm_r_r3_t4_c7,
++ arm_r_r4_t4_c7,
++ arm_r_r5_t4_c7,
++ arm_r_r6_t4_c7,
++ arm_r_r7_t4_c7,
++ arm_r_r8_t4_c7,
++ arm_r_r9_t4_c7,
++ arm_r_r10_t4_c7,
++ arm_r_r11_t4_c7,
++ arm_r_r12_t4_c7,
++ arm_r_r13_t4_c7,
++ arm_r_r14_t4_c7,
++ arm_r_r15_t4_c7,
++ arm_r_r0_t5_c7,
++ arm_r_r1_t5_c7,
++ arm_r_r2_t5_c7,
++ arm_r_r3_t5_c7,
++ arm_r_r4_t5_c7,
++ arm_r_r5_t5_c7,
++ arm_r_r6_t5_c7,
++ arm_r_r7_t5_c7,
++ arm_r_r8_t5_c7,
++ arm_r_r9_t5_c7,
++ arm_r_r10_t5_c7,
++ arm_r_r11_t5_c7,
++ arm_r_r12_t5_c7,
++ arm_r_r13_t5_c7,
++ arm_r_r14_t5_c7,
++ arm_r_r15_t5_c7,
++ arm_r_r0_t6_c7,
++ arm_r_r1_t6_c7,
++ arm_r_r2_t6_c7,
++ arm_r_r3_t6_c7,
++ arm_r_r4_t6_c7,
++ arm_r_r5_t6_c7,
++ arm_r_r6_t6_c7,
++ arm_r_r7_t6_c7,
++ arm_r_r8_t6_c7,
++ arm_r_r9_t6_c7,
++ arm_r_r10_t6_c7,
++ arm_r_r11_t6_c7,
++ arm_r_r12_t6_c7,
++ arm_r_r13_t6_c7,
++ arm_r_r14_t6_c7,
++ arm_r_r15_t6_c7,
++ arm_r_r0_t7_c7,
++ arm_r_r1_t7_c7,
++ arm_r_r2_t7_c7,
++ arm_r_r3_t7_c7,
++ arm_r_r4_t7_c7,
++ arm_r_r5_t7_c7,
++ arm_r_r6_t7_c7,
++ arm_r_r7_t7_c7,
++ arm_r_r8_t7_c7,
++ arm_r_r9_t7_c7,
++ arm_r_r10_t7_c7,
++ arm_r_r11_t7_c7,
++ arm_r_r12_t7_c7,
++ arm_r_r13_t7_c7,
++ arm_r_r14_t7_c7,
++ arm_r_r15_t7_c7,
++ arm_r_r0_t0_c8,
++ arm_r_r1_t0_c8,
++ arm_r_r2_t0_c8,
++ arm_r_r3_t0_c8,
++ arm_r_r4_t0_c8,
++ arm_r_r5_t0_c8,
++ arm_r_r6_t0_c8,
++ arm_r_r7_t0_c8,
++ arm_r_r8_t0_c8,
++ arm_r_r9_t0_c8,
++ arm_r_r10_t0_c8,
++ arm_r_r11_t0_c8,
++ arm_r_r12_t0_c8,
++ arm_r_r13_t0_c8,
++ arm_r_r14_t0_c8,
++ arm_r_r15_t0_c8,
++ arm_r_r0_t1_c8,
++ arm_r_r1_t1_c8,
++ arm_r_r2_t1_c8,
++ arm_r_r3_t1_c8,
++ arm_r_r4_t1_c8,
++ arm_r_r5_t1_c8,
++ arm_r_r6_t1_c8,
++ arm_r_r7_t1_c8,
++ arm_r_r8_t1_c8,
++ arm_r_r9_t1_c8,
++ arm_r_r10_t1_c8,
++ arm_r_r11_t1_c8,
++ arm_r_r12_t1_c8,
++ arm_r_r13_t1_c8,
++ arm_r_r14_t1_c8,
++ arm_r_r15_t1_c8,
++ arm_r_r0_t2_c8,
++ arm_r_r1_t2_c8,
++ arm_r_r2_t2_c8,
++ arm_r_r3_t2_c8,
++ arm_r_r4_t2_c8,
++ arm_r_r5_t2_c8,
++ arm_r_r6_t2_c8,
++ arm_r_r7_t2_c8,
++ arm_r_r8_t2_c8,
++ arm_r_r9_t2_c8,
++ arm_r_r10_t2_c8,
++ arm_r_r11_t2_c8,
++ arm_r_r12_t2_c8,
++ arm_r_r13_t2_c8,
++ arm_r_r14_t2_c8,
++ arm_r_r15_t2_c8,
++ arm_r_r0_t3_c8,
++ arm_r_r1_t3_c8,
++ arm_r_r2_t3_c8,
++ arm_r_r3_t3_c8,
++ arm_r_r4_t3_c8,
++ arm_r_r5_t3_c8,
++ arm_r_r6_t3_c8,
++ arm_r_r7_t3_c8,
++ arm_r_r8_t3_c8,
++ arm_r_r9_t3_c8,
++ arm_r_r10_t3_c8,
++ arm_r_r11_t3_c8,
++ arm_r_r12_t3_c8,
++ arm_r_r13_t3_c8,
++ arm_r_r14_t3_c8,
++ arm_r_r15_t3_c8,
++ arm_r_r0_t4_c8,
++ arm_r_r1_t4_c8,
++ arm_r_r2_t4_c8,
++ arm_r_r3_t4_c8,
++ arm_r_r4_t4_c8,
++ arm_r_r5_t4_c8,
++ arm_r_r6_t4_c8,
++ arm_r_r7_t4_c8,
++ arm_r_r8_t4_c8,
++ arm_r_r9_t4_c8,
++ arm_r_r10_t4_c8,
++ arm_r_r11_t4_c8,
++ arm_r_r12_t4_c8,
++ arm_r_r13_t4_c8,
++ arm_r_r14_t4_c8,
++ arm_r_r15_t4_c8,
++ arm_r_r0_t5_c8,
++ arm_r_r1_t5_c8,
++ arm_r_r2_t5_c8,
++ arm_r_r3_t5_c8,
++ arm_r_r4_t5_c8,
++ arm_r_r5_t5_c8,
++ arm_r_r6_t5_c8,
++ arm_r_r7_t5_c8,
++ arm_r_r8_t5_c8,
++ arm_r_r9_t5_c8,
++ arm_r_r10_t5_c8,
++ arm_r_r11_t5_c8,
++ arm_r_r12_t5_c8,
++ arm_r_r13_t5_c8,
++ arm_r_r14_t5_c8,
++ arm_r_r15_t5_c8,
++ arm_r_r0_t6_c8,
++ arm_r_r1_t6_c8,
++ arm_r_r2_t6_c8,
++ arm_r_r3_t6_c8,
++ arm_r_r4_t6_c8,
++ arm_r_r5_t6_c8,
++ arm_r_r6_t6_c8,
++ arm_r_r7_t6_c8,
++ arm_r_r8_t6_c8,
++ arm_r_r9_t6_c8,
++ arm_r_r10_t6_c8,
++ arm_r_r11_t6_c8,
++ arm_r_r12_t6_c8,
++ arm_r_r13_t6_c8,
++ arm_r_r14_t6_c8,
++ arm_r_r15_t6_c8,
++ arm_r_r0_t7_c8,
++ arm_r_r1_t7_c8,
++ arm_r_r2_t7_c8,
++ arm_r_r3_t7_c8,
++ arm_r_r4_t7_c8,
++ arm_r_r5_t7_c8,
++ arm_r_r6_t7_c8,
++ arm_r_r7_t7_c8,
++ arm_r_r8_t7_c8,
++ arm_r_r9_t7_c8,
++ arm_r_r10_t7_c8,
++ arm_r_r11_t7_c8,
++ arm_r_r12_t7_c8,
++ arm_r_r13_t7_c8,
++ arm_r_r14_t7_c8,
++ arm_r_r15_t7_c8,
++ arm_r_r0_t0_c9,
++ arm_r_r1_t0_c9,
++ arm_r_r2_t0_c9,
++ arm_r_r3_t0_c9,
++ arm_r_r4_t0_c9,
++ arm_r_r5_t0_c9,
++ arm_r_r6_t0_c9,
++ arm_r_r7_t0_c9,
++ arm_r_r8_t0_c9,
++ arm_r_r9_t0_c9,
++ arm_r_r10_t0_c9,
++ arm_r_r11_t0_c9,
++ arm_r_r12_t0_c9,
++ arm_r_r13_t0_c9,
++ arm_r_r14_t0_c9,
++ arm_r_r15_t0_c9,
++ arm_r_r0_t1_c9,
++ arm_r_r1_t1_c9,
++ arm_r_r2_t1_c9,
++ arm_r_r3_t1_c9,
++ arm_r_r4_t1_c9,
++ arm_r_r5_t1_c9,
++ arm_r_r6_t1_c9,
++ arm_r_r7_t1_c9,
++ arm_r_r8_t1_c9,
++ arm_r_r9_t1_c9,
++ arm_r_r10_t1_c9,
++ arm_r_r11_t1_c9,
++ arm_r_r12_t1_c9,
++ arm_r_r13_t1_c9,
++ arm_r_r14_t1_c9,
++ arm_r_r15_t1_c9,
++ arm_r_r0_t2_c9,
++ arm_r_r1_t2_c9,
++ arm_r_r2_t2_c9,
++ arm_r_r3_t2_c9,
++ arm_r_r4_t2_c9,
++ arm_r_r5_t2_c9,
++ arm_r_r6_t2_c9,
++ arm_r_r7_t2_c9,
++ arm_r_r8_t2_c9,
++ arm_r_r9_t2_c9,
++ arm_r_r10_t2_c9,
++ arm_r_r11_t2_c9,
++ arm_r_r12_t2_c9,
++ arm_r_r13_t2_c9,
++ arm_r_r14_t2_c9,
++ arm_r_r15_t2_c9,
++ arm_r_r0_t3_c9,
++ arm_r_r1_t3_c9,
++ arm_r_r2_t3_c9,
++ arm_r_r3_t3_c9,
++ arm_r_r4_t3_c9,
++ arm_r_r5_t3_c9,
++ arm_r_r6_t3_c9,
++ arm_r_r7_t3_c9,
++ arm_r_r8_t3_c9,
++ arm_r_r9_t3_c9,
++ arm_r_r10_t3_c9,
++ arm_r_r11_t3_c9,
++ arm_r_r12_t3_c9,
++ arm_r_r13_t3_c9,
++ arm_r_r14_t3_c9,
++ arm_r_r15_t3_c9,
++ arm_r_r0_t4_c9,
++ arm_r_r1_t4_c9,
++ arm_r_r2_t4_c9,
++ arm_r_r3_t4_c9,
++ arm_r_r4_t4_c9,
++ arm_r_r5_t4_c9,
++ arm_r_r6_t4_c9,
++ arm_r_r7_t4_c9,
++ arm_r_r8_t4_c9,
++ arm_r_r9_t4_c9,
++ arm_r_r10_t4_c9,
++ arm_r_r11_t4_c9,
++ arm_r_r12_t4_c9,
++ arm_r_r13_t4_c9,
++ arm_r_r14_t4_c9,
++ arm_r_r15_t4_c9,
++ arm_r_r0_t5_c9,
++ arm_r_r1_t5_c9,
++ arm_r_r2_t5_c9,
++ arm_r_r3_t5_c9,
++ arm_r_r4_t5_c9,
++ arm_r_r5_t5_c9,
++ arm_r_r6_t5_c9,
++ arm_r_r7_t5_c9,
++ arm_r_r8_t5_c9,
++ arm_r_r9_t5_c9,
++ arm_r_r10_t5_c9,
++ arm_r_r11_t5_c9,
++ arm_r_r12_t5_c9,
++ arm_r_r13_t5_c9,
++ arm_r_r14_t5_c9,
++ arm_r_r15_t5_c9,
++ arm_r_r0_t6_c9,
++ arm_r_r1_t6_c9,
++ arm_r_r2_t6_c9,
++ arm_r_r3_t6_c9,
++ arm_r_r4_t6_c9,
++ arm_r_r5_t6_c9,
++ arm_r_r6_t6_c9,
++ arm_r_r7_t6_c9,
++ arm_r_r8_t6_c9,
++ arm_r_r9_t6_c9,
++ arm_r_r10_t6_c9,
++ arm_r_r11_t6_c9,
++ arm_r_r12_t6_c9,
++ arm_r_r13_t6_c9,
++ arm_r_r14_t6_c9,
++ arm_r_r15_t6_c9,
++ arm_r_r0_t7_c9,
++ arm_r_r1_t7_c9,
++ arm_r_r2_t7_c9,
++ arm_r_r3_t7_c9,
++ arm_r_r4_t7_c9,
++ arm_r_r5_t7_c9,
++ arm_r_r6_t7_c9,
++ arm_r_r7_t7_c9,
++ arm_r_r8_t7_c9,
++ arm_r_r9_t7_c9,
++ arm_r_r10_t7_c9,
++ arm_r_r11_t7_c9,
++ arm_r_r12_t7_c9,
++ arm_r_r13_t7_c9,
++ arm_r_r14_t7_c9,
++ arm_r_r15_t7_c9,
++ arm_r_r0_t0_c10,
++ arm_r_r1_t0_c10,
++ arm_r_r2_t0_c10,
++ arm_r_r3_t0_c10,
++ arm_r_r4_t0_c10,
++ arm_r_r5_t0_c10,
++ arm_r_r6_t0_c10,
++ arm_r_r7_t0_c10,
++ arm_r_r8_t0_c10,
++ arm_r_r9_t0_c10,
++ arm_r_r10_t0_c10,
++ arm_r_r11_t0_c10,
++ arm_r_r12_t0_c10,
++ arm_r_r13_t0_c10,
++ arm_r_r14_t0_c10,
++ arm_r_r15_t0_c10,
++ arm_r_r0_t1_c10,
++ arm_r_r1_t1_c10,
++ arm_r_r2_t1_c10,
++ arm_r_r3_t1_c10,
++ arm_r_r4_t1_c10,
++ arm_r_r5_t1_c10,
++ arm_r_r6_t1_c10,
++ arm_r_r7_t1_c10,
++ arm_r_r8_t1_c10,
++ arm_r_r9_t1_c10,
++ arm_r_r10_t1_c10,
++ arm_r_r11_t1_c10,
++ arm_r_r12_t1_c10,
++ arm_r_r13_t1_c10,
++ arm_r_r14_t1_c10,
++ arm_r_r15_t1_c10,
++ arm_r_r0_t2_c10,
++ arm_r_r1_t2_c10,
++ arm_r_r2_t2_c10,
++ arm_r_r3_t2_c10,
++ arm_r_r4_t2_c10,
++ arm_r_r5_t2_c10,
++ arm_r_r6_t2_c10,
++ arm_r_r7_t2_c10,
++ arm_r_r8_t2_c10,
++ arm_r_r9_t2_c10,
++ arm_r_r10_t2_c10,
++ arm_r_r11_t2_c10,
++ arm_r_r12_t2_c10,
++ arm_r_r13_t2_c10,
++ arm_r_r14_t2_c10,
++ arm_r_r15_t2_c10,
++ arm_r_r0_t3_c10,
++ arm_r_r1_t3_c10,
++ arm_r_r2_t3_c10,
++ arm_r_r3_t3_c10,
++ arm_r_r4_t3_c10,
++ arm_r_r5_t3_c10,
++ arm_r_r6_t3_c10,
++ arm_r_r7_t3_c10,
++ arm_r_r8_t3_c10,
++ arm_r_r9_t3_c10,
++ arm_r_r10_t3_c10,
++ arm_r_r11_t3_c10,
++ arm_r_r12_t3_c10,
++ arm_r_r13_t3_c10,
++ arm_r_r14_t3_c10,
++ arm_r_r15_t3_c10,
++ arm_r_r0_t4_c10,
++ arm_r_r1_t4_c10,
++ arm_r_r2_t4_c10,
++ arm_r_r3_t4_c10,
++ arm_r_r4_t4_c10,
++ arm_r_r5_t4_c10,
++ arm_r_r6_t4_c10,
++ arm_r_r7_t4_c10,
++ arm_r_r8_t4_c10,
++ arm_r_r9_t4_c10,
++ arm_r_r10_t4_c10,
++ arm_r_r11_t4_c10,
++ arm_r_r12_t4_c10,
++ arm_r_r13_t4_c10,
++ arm_r_r14_t4_c10,
++ arm_r_r15_t4_c10,
++ arm_r_r0_t5_c10,
++ arm_r_r1_t5_c10,
++ arm_r_r2_t5_c10,
++ arm_r_r3_t5_c10,
++ arm_r_r4_t5_c10,
++ arm_r_r5_t5_c10,
++ arm_r_r6_t5_c10,
++ arm_r_r7_t5_c10,
++ arm_r_r8_t5_c10,
++ arm_r_r9_t5_c10,
++ arm_r_r10_t5_c10,
++ arm_r_r11_t5_c10,
++ arm_r_r12_t5_c10,
++ arm_r_r13_t5_c10,
++ arm_r_r14_t5_c10,
++ arm_r_r15_t5_c10,
++ arm_r_r0_t6_c10,
++ arm_r_r1_t6_c10,
++ arm_r_r2_t6_c10,
++ arm_r_r3_t6_c10,
++ arm_r_r4_t6_c10,
++ arm_r_r5_t6_c10,
++ arm_r_r6_t6_c10,
++ arm_r_r7_t6_c10,
++ arm_r_r8_t6_c10,
++ arm_r_r9_t6_c10,
++ arm_r_r10_t6_c10,
++ arm_r_r11_t6_c10,
++ arm_r_r12_t6_c10,
++ arm_r_r13_t6_c10,
++ arm_r_r14_t6_c10,
++ arm_r_r15_t6_c10,
++ arm_r_r0_t7_c10,
++ arm_r_r1_t7_c10,
++ arm_r_r2_t7_c10,
++ arm_r_r3_t7_c10,
++ arm_r_r4_t7_c10,
++ arm_r_r5_t7_c10,
++ arm_r_r6_t7_c10,
++ arm_r_r7_t7_c10,
++ arm_r_r8_t7_c10,
++ arm_r_r9_t7_c10,
++ arm_r_r10_t7_c10,
++ arm_r_r11_t7_c10,
++ arm_r_r12_t7_c10,
++ arm_r_r13_t7_c10,
++ arm_r_r14_t7_c10,
++ arm_r_r15_t7_c10,
++ arm_r_r0_t0_c11,
++ arm_r_r1_t0_c11,
++ arm_r_r2_t0_c11,
++ arm_r_r3_t0_c11,
++ arm_r_r4_t0_c11,
++ arm_r_r5_t0_c11,
++ arm_r_r6_t0_c11,
++ arm_r_r7_t0_c11,
++ arm_r_r8_t0_c11,
++ arm_r_r9_t0_c11,
++ arm_r_r10_t0_c11,
++ arm_r_r11_t0_c11,
++ arm_r_r12_t0_c11,
++ arm_r_r13_t0_c11,
++ arm_r_r14_t0_c11,
++ arm_r_r15_t0_c11,
++ arm_r_r0_t1_c11,
++ arm_r_r1_t1_c11,
++ arm_r_r2_t1_c11,
++ arm_r_r3_t1_c11,
++ arm_r_r4_t1_c11,
++ arm_r_r5_t1_c11,
++ arm_r_r6_t1_c11,
++ arm_r_r7_t1_c11,
++ arm_r_r8_t1_c11,
++ arm_r_r9_t1_c11,
++ arm_r_r10_t1_c11,
++ arm_r_r11_t1_c11,
++ arm_r_r12_t1_c11,
++ arm_r_r13_t1_c11,
++ arm_r_r14_t1_c11,
++ arm_r_r15_t1_c11,
++ arm_r_r0_t2_c11,
++ arm_r_r1_t2_c11,
++ arm_r_r2_t2_c11,
++ arm_r_r3_t2_c11,
++ arm_r_r4_t2_c11,
++ arm_r_r5_t2_c11,
++ arm_r_r6_t2_c11,
++ arm_r_r7_t2_c11,
++ arm_r_r8_t2_c11,
++ arm_r_r9_t2_c11,
++ arm_r_r10_t2_c11,
++ arm_r_r11_t2_c11,
++ arm_r_r12_t2_c11,
++ arm_r_r13_t2_c11,
++ arm_r_r14_t2_c11,
++ arm_r_r15_t2_c11,
++ arm_r_r0_t3_c11,
++ arm_r_r1_t3_c11,
++ arm_r_r2_t3_c11,
++ arm_r_r3_t3_c11,
++ arm_r_r4_t3_c11,
++ arm_r_r5_t3_c11,
++ arm_r_r6_t3_c11,
++ arm_r_r7_t3_c11,
++ arm_r_r8_t3_c11,
++ arm_r_r9_t3_c11,
++ arm_r_r10_t3_c11,
++ arm_r_r11_t3_c11,
++ arm_r_r12_t3_c11,
++ arm_r_r13_t3_c11,
++ arm_r_r14_t3_c11,
++ arm_r_r15_t3_c11,
++ arm_r_r0_t4_c11,
++ arm_r_r1_t4_c11,
++ arm_r_r2_t4_c11,
++ arm_r_r3_t4_c11,
++ arm_r_r4_t4_c11,
++ arm_r_r5_t4_c11,
++ arm_r_r6_t4_c11,
++ arm_r_r7_t4_c11,
++ arm_r_r8_t4_c11,
++ arm_r_r9_t4_c11,
++ arm_r_r10_t4_c11,
++ arm_r_r11_t4_c11,
++ arm_r_r12_t4_c11,
++ arm_r_r13_t4_c11,
++ arm_r_r14_t4_c11,
++ arm_r_r15_t4_c11,
++ arm_r_r0_t5_c11,
++ arm_r_r1_t5_c11,
++ arm_r_r2_t5_c11,
++ arm_r_r3_t5_c11,
++ arm_r_r4_t5_c11,
++ arm_r_r5_t5_c11,
++ arm_r_r6_t5_c11,
++ arm_r_r7_t5_c11,
++ arm_r_r8_t5_c11,
++ arm_r_r9_t5_c11,
++ arm_r_r10_t5_c11,
++ arm_r_r11_t5_c11,
++ arm_r_r12_t5_c11,
++ arm_r_r13_t5_c11,
++ arm_r_r14_t5_c11,
++ arm_r_r15_t5_c11,
++ arm_r_r0_t6_c11,
++ arm_r_r1_t6_c11,
++ arm_r_r2_t6_c11,
++ arm_r_r3_t6_c11,
++ arm_r_r4_t6_c11,
++ arm_r_r5_t6_c11,
++ arm_r_r6_t6_c11,
++ arm_r_r7_t6_c11,
++ arm_r_r8_t6_c11,
++ arm_r_r9_t6_c11,
++ arm_r_r10_t6_c11,
++ arm_r_r11_t6_c11,
++ arm_r_r12_t6_c11,
++ arm_r_r13_t6_c11,
++ arm_r_r14_t6_c11,
++ arm_r_r15_t6_c11,
++ arm_r_r0_t7_c11,
++ arm_r_r1_t7_c11,
++ arm_r_r2_t7_c11,
++ arm_r_r3_t7_c11,
++ arm_r_r4_t7_c11,
++ arm_r_r5_t7_c11,
++ arm_r_r6_t7_c11,
++ arm_r_r7_t7_c11,
++ arm_r_r8_t7_c11,
++ arm_r_r9_t7_c11,
++ arm_r_r10_t7_c11,
++ arm_r_r11_t7_c11,
++ arm_r_r12_t7_c11,
++ arm_r_r13_t7_c11,
++ arm_r_r14_t7_c11,
++ arm_r_r15_t7_c11,
++ arm_r_r0_t0_c12,
++ arm_r_r1_t0_c12,
++ arm_r_r2_t0_c12,
++ arm_r_r3_t0_c12,
++ arm_r_r4_t0_c12,
++ arm_r_r5_t0_c12,
++ arm_r_r6_t0_c12,
++ arm_r_r7_t0_c12,
++ arm_r_r8_t0_c12,
++ arm_r_r9_t0_c12,
++ arm_r_r10_t0_c12,
++ arm_r_r11_t0_c12,
++ arm_r_r12_t0_c12,
++ arm_r_r13_t0_c12,
++ arm_r_r14_t0_c12,
++ arm_r_r15_t0_c12,
++ arm_r_r0_t1_c12,
++ arm_r_r1_t1_c12,
++ arm_r_r2_t1_c12,
++ arm_r_r3_t1_c12,
++ arm_r_r4_t1_c12,
++ arm_r_r5_t1_c12,
++ arm_r_r6_t1_c12,
++ arm_r_r7_t1_c12,
++ arm_r_r8_t1_c12,
++ arm_r_r9_t1_c12,
++ arm_r_r10_t1_c12,
++ arm_r_r11_t1_c12,
++ arm_r_r12_t1_c12,
++ arm_r_r13_t1_c12,
++ arm_r_r14_t1_c12,
++ arm_r_r15_t1_c12,
++ arm_r_r0_t2_c12,
++ arm_r_r1_t2_c12,
++ arm_r_r2_t2_c12,
++ arm_r_r3_t2_c12,
++ arm_r_r4_t2_c12,
++ arm_r_r5_t2_c12,
++ arm_r_r6_t2_c12,
++ arm_r_r7_t2_c12,
++ arm_r_r8_t2_c12,
++ arm_r_r9_t2_c12,
++ arm_r_r10_t2_c12,
++ arm_r_r11_t2_c12,
++ arm_r_r12_t2_c12,
++ arm_r_r13_t2_c12,
++ arm_r_r14_t2_c12,
++ arm_r_r15_t2_c12,
++ arm_r_r0_t3_c12,
++ arm_r_r1_t3_c12,
++ arm_r_r2_t3_c12,
++ arm_r_r3_t3_c12,
++ arm_r_r4_t3_c12,
++ arm_r_r5_t3_c12,
++ arm_r_r6_t3_c12,
++ arm_r_r7_t3_c12,
++ arm_r_r8_t3_c12,
++ arm_r_r9_t3_c12,
++ arm_r_r10_t3_c12,
++ arm_r_r11_t3_c12,
++ arm_r_r12_t3_c12,
++ arm_r_r13_t3_c12,
++ arm_r_r14_t3_c12,
++ arm_r_r15_t3_c12,
++ arm_r_r0_t4_c12,
++ arm_r_r1_t4_c12,
++ arm_r_r2_t4_c12,
++ arm_r_r3_t4_c12,
++ arm_r_r4_t4_c12,
++ arm_r_r5_t4_c12,
++ arm_r_r6_t4_c12,
++ arm_r_r7_t4_c12,
++ arm_r_r8_t4_c12,
++ arm_r_r9_t4_c12,
++ arm_r_r10_t4_c12,
++ arm_r_r11_t4_c12,
++ arm_r_r12_t4_c12,
++ arm_r_r13_t4_c12,
++ arm_r_r14_t4_c12,
++ arm_r_r15_t4_c12,
++ arm_r_r0_t5_c12,
++ arm_r_r1_t5_c12,
++ arm_r_r2_t5_c12,
++ arm_r_r3_t5_c12,
++ arm_r_r4_t5_c12,
++ arm_r_r5_t5_c12,
++ arm_r_r6_t5_c12,
++ arm_r_r7_t5_c12,
++ arm_r_r8_t5_c12,
++ arm_r_r9_t5_c12,
++ arm_r_r10_t5_c12,
++ arm_r_r11_t5_c12,
++ arm_r_r12_t5_c12,
++ arm_r_r13_t5_c12,
++ arm_r_r14_t5_c12,
++ arm_r_r15_t5_c12,
++ arm_r_r0_t6_c12,
++ arm_r_r1_t6_c12,
++ arm_r_r2_t6_c12,
++ arm_r_r3_t6_c12,
++ arm_r_r4_t6_c12,
++ arm_r_r5_t6_c12,
++ arm_r_r6_t6_c12,
++ arm_r_r7_t6_c12,
++ arm_r_r8_t6_c12,
++ arm_r_r9_t6_c12,
++ arm_r_r10_t6_c12,
++ arm_r_r11_t6_c12,
++ arm_r_r12_t6_c12,
++ arm_r_r13_t6_c12,
++ arm_r_r14_t6_c12,
++ arm_r_r15_t6_c12,
++ arm_r_r0_t7_c12,
++ arm_r_r1_t7_c12,
++ arm_r_r2_t7_c12,
++ arm_r_r3_t7_c12,
++ arm_r_r4_t7_c12,
++ arm_r_r5_t7_c12,
++ arm_r_r6_t7_c12,
++ arm_r_r7_t7_c12,
++ arm_r_r8_t7_c12,
++ arm_r_r9_t7_c12,
++ arm_r_r10_t7_c12,
++ arm_r_r11_t7_c12,
++ arm_r_r12_t7_c12,
++ arm_r_r13_t7_c12,
++ arm_r_r14_t7_c12,
++ arm_r_r15_t7_c12,
++ arm_r_r0_t0_c13,
++ arm_r_r1_t0_c13,
++ arm_r_r2_t0_c13,
++ arm_r_r3_t0_c13,
++ arm_r_r4_t0_c13,
++ arm_r_r5_t0_c13,
++ arm_r_r6_t0_c13,
++ arm_r_r7_t0_c13,
++ arm_r_r8_t0_c13,
++ arm_r_r9_t0_c13,
++ arm_r_r10_t0_c13,
++ arm_r_r11_t0_c13,
++ arm_r_r12_t0_c13,
++ arm_r_r13_t0_c13,
++ arm_r_r14_t0_c13,
++ arm_r_r15_t0_c13,
++ arm_r_r0_t1_c13,
++ arm_r_r1_t1_c13,
++ arm_r_r2_t1_c13,
++ arm_r_r3_t1_c13,
++ arm_r_r4_t1_c13,
++ arm_r_r5_t1_c13,
++ arm_r_r6_t1_c13,
++ arm_r_r7_t1_c13,
++ arm_r_r8_t1_c13,
++ arm_r_r9_t1_c13,
++ arm_r_r10_t1_c13,
++ arm_r_r11_t1_c13,
++ arm_r_r12_t1_c13,
++ arm_r_r13_t1_c13,
++ arm_r_r14_t1_c13,
++ arm_r_r15_t1_c13,
++ arm_r_r0_t2_c13,
++ arm_r_r1_t2_c13,
++ arm_r_r2_t2_c13,
++ arm_r_r3_t2_c13,
++ arm_r_r4_t2_c13,
++ arm_r_r5_t2_c13,
++ arm_r_r6_t2_c13,
++ arm_r_r7_t2_c13,
++ arm_r_r8_t2_c13,
++ arm_r_r9_t2_c13,
++ arm_r_r10_t2_c13,
++ arm_r_r11_t2_c13,
++ arm_r_r12_t2_c13,
++ arm_r_r13_t2_c13,
++ arm_r_r14_t2_c13,
++ arm_r_r15_t2_c13,
++ arm_r_r0_t3_c13,
++ arm_r_r1_t3_c13,
++ arm_r_r2_t3_c13,
++ arm_r_r3_t3_c13,
++ arm_r_r4_t3_c13,
++ arm_r_r5_t3_c13,
++ arm_r_r6_t3_c13,
++ arm_r_r7_t3_c13,
++ arm_r_r8_t3_c13,
++ arm_r_r9_t3_c13,
++ arm_r_r10_t3_c13,
++ arm_r_r11_t3_c13,
++ arm_r_r12_t3_c13,
++ arm_r_r13_t3_c13,
++ arm_r_r14_t3_c13,
++ arm_r_r15_t3_c13,
++ arm_r_r0_t4_c13,
++ arm_r_r1_t4_c13,
++ arm_r_r2_t4_c13,
++ arm_r_r3_t4_c13,
++ arm_r_r4_t4_c13,
++ arm_r_r5_t4_c13,
++ arm_r_r6_t4_c13,
++ arm_r_r7_t4_c13,
++ arm_r_r8_t4_c13,
++ arm_r_r9_t4_c13,
++ arm_r_r10_t4_c13,
++ arm_r_r11_t4_c13,
++ arm_r_r12_t4_c13,
++ arm_r_r13_t4_c13,
++ arm_r_r14_t4_c13,
++ arm_r_r15_t4_c13,
++ arm_r_r0_t5_c13,
++ arm_r_r1_t5_c13,
++ arm_r_r2_t5_c13,
++ arm_r_r3_t5_c13,
++ arm_r_r4_t5_c13,
++ arm_r_r5_t5_c13,
++ arm_r_r6_t5_c13,
++ arm_r_r7_t5_c13,
++ arm_r_r8_t5_c13,
++ arm_r_r9_t5_c13,
++ arm_r_r10_t5_c13,
++ arm_r_r11_t5_c13,
++ arm_r_r12_t5_c13,
++ arm_r_r13_t5_c13,
++ arm_r_r14_t5_c13,
++ arm_r_r15_t5_c13,
++ arm_r_r0_t6_c13,
++ arm_r_r1_t6_c13,
++ arm_r_r2_t6_c13,
++ arm_r_r3_t6_c13,
++ arm_r_r4_t6_c13,
++ arm_r_r5_t6_c13,
++ arm_r_r6_t6_c13,
++ arm_r_r7_t6_c13,
++ arm_r_r8_t6_c13,
++ arm_r_r9_t6_c13,
++ arm_r_r10_t6_c13,
++ arm_r_r11_t6_c13,
++ arm_r_r12_t6_c13,
++ arm_r_r13_t6_c13,
++ arm_r_r14_t6_c13,
++ arm_r_r15_t6_c13,
++ arm_r_r0_t7_c13,
++ arm_r_r1_t7_c13,
++ arm_r_r2_t7_c13,
++ arm_r_r3_t7_c13,
++ arm_r_r4_t7_c13,
++ arm_r_r5_t7_c13,
++ arm_r_r6_t7_c13,
++ arm_r_r7_t7_c13,
++ arm_r_r8_t7_c13,
++ arm_r_r9_t7_c13,
++ arm_r_r10_t7_c13,
++ arm_r_r11_t7_c13,
++ arm_r_r12_t7_c13,
++ arm_r_r13_t7_c13,
++ arm_r_r14_t7_c13,
++ arm_r_r15_t7_c13,
++ arm_r_r0_t0_c14,
++ arm_r_r1_t0_c14,
++ arm_r_r2_t0_c14,
++ arm_r_r3_t0_c14,
++ arm_r_r4_t0_c14,
++ arm_r_r5_t0_c14,
++ arm_r_r6_t0_c14,
++ arm_r_r7_t0_c14,
++ arm_r_r8_t0_c14,
++ arm_r_r9_t0_c14,
++ arm_r_r10_t0_c14,
++ arm_r_r11_t0_c14,
++ arm_r_r12_t0_c14,
++ arm_r_r13_t0_c14,
++ arm_r_r14_t0_c14,
++ arm_r_r15_t0_c14,
++ arm_r_r0_t1_c14,
++ arm_r_r1_t1_c14,
++ arm_r_r2_t1_c14,
++ arm_r_r3_t1_c14,
++ arm_r_r4_t1_c14,
++ arm_r_r5_t1_c14,
++ arm_r_r6_t1_c14,
++ arm_r_r7_t1_c14,
++ arm_r_r8_t1_c14,
++ arm_r_r9_t1_c14,
++ arm_r_r10_t1_c14,
++ arm_r_r11_t1_c14,
++ arm_r_r12_t1_c14,
++ arm_r_r13_t1_c14,
++ arm_r_r14_t1_c14,
++ arm_r_r15_t1_c14,
++ arm_r_r0_t2_c14,
++ arm_r_r1_t2_c14,
++ arm_r_r2_t2_c14,
++ arm_r_r3_t2_c14,
++ arm_r_r4_t2_c14,
++ arm_r_r5_t2_c14,
++ arm_r_r6_t2_c14,
++ arm_r_r7_t2_c14,
++ arm_r_r8_t2_c14,
++ arm_r_r9_t2_c14,
++ arm_r_r10_t2_c14,
++ arm_r_r11_t2_c14,
++ arm_r_r12_t2_c14,
++ arm_r_r13_t2_c14,
++ arm_r_r14_t2_c14,
++ arm_r_r15_t2_c14,
++ arm_r_r0_t3_c14,
++ arm_r_r1_t3_c14,
++ arm_r_r2_t3_c14,
++ arm_r_r3_t3_c14,
++ arm_r_r4_t3_c14,
++ arm_r_r5_t3_c14,
++ arm_r_r6_t3_c14,
++ arm_r_r7_t3_c14,
++ arm_r_r8_t3_c14,
++ arm_r_r9_t3_c14,
++ arm_r_r10_t3_c14,
++ arm_r_r11_t3_c14,
++ arm_r_r12_t3_c14,
++ arm_r_r13_t3_c14,
++ arm_r_r14_t3_c14,
++ arm_r_r15_t3_c14,
++ arm_r_r0_t4_c14,
++ arm_r_r1_t4_c14,
++ arm_r_r2_t4_c14,
++ arm_r_r3_t4_c14,
++ arm_r_r4_t4_c14,
++ arm_r_r5_t4_c14,
++ arm_r_r6_t4_c14,
++ arm_r_r7_t4_c14,
++ arm_r_r8_t4_c14,
++ arm_r_r9_t4_c14,
++ arm_r_r10_t4_c14,
++ arm_r_r11_t4_c14,
++ arm_r_r12_t4_c14,
++ arm_r_r13_t4_c14,
++ arm_r_r14_t4_c14,
++ arm_r_r15_t4_c14,
++ arm_r_r0_t5_c14,
++ arm_r_r1_t5_c14,
++ arm_r_r2_t5_c14,
++ arm_r_r3_t5_c14,
++ arm_r_r4_t5_c14,
++ arm_r_r5_t5_c14,
++ arm_r_r6_t5_c14,
++ arm_r_r7_t5_c14,
++ arm_r_r8_t5_c14,
++ arm_r_r9_t5_c14,
++ arm_r_r10_t5_c14,
++ arm_r_r11_t5_c14,
++ arm_r_r12_t5_c14,
++ arm_r_r13_t5_c14,
++ arm_r_r14_t5_c14,
++ arm_r_r15_t5_c14,
++ arm_r_r0_t6_c14,
++ arm_r_r1_t6_c14,
++ arm_r_r2_t6_c14,
++ arm_r_r3_t6_c14,
++ arm_r_r4_t6_c14,
++ arm_r_r5_t6_c14,
++ arm_r_r6_t6_c14,
++ arm_r_r7_t6_c14,
++ arm_r_r8_t6_c14,
++ arm_r_r9_t6_c14,
++ arm_r_r10_t6_c14,
++ arm_r_r11_t6_c14,
++ arm_r_r12_t6_c14,
++ arm_r_r13_t6_c14,
++ arm_r_r14_t6_c14,
++ arm_r_r15_t6_c14,
++ arm_r_r0_t7_c14,
++ arm_r_r1_t7_c14,
++ arm_r_r2_t7_c14,
++ arm_r_r3_t7_c14,
++ arm_r_r4_t7_c14,
++ arm_r_r5_t7_c14,
++ arm_r_r6_t7_c14,
++ arm_r_r7_t7_c14,
++ arm_r_r8_t7_c14,
++ arm_r_r9_t7_c14,
++ arm_r_r10_t7_c14,
++ arm_r_r11_t7_c14,
++ arm_r_r12_t7_c14,
++ arm_r_r13_t7_c14,
++ arm_r_r14_t7_c14,
++ arm_r_r15_t7_c14,
++ arm_r_r0_t0_c15,
++ arm_r_r1_t0_c15,
++ arm_r_r2_t0_c15,
++ arm_r_r3_t0_c15,
++ arm_r_r4_t0_c15,
++ arm_r_r5_t0_c15,
++ arm_r_r6_t0_c15,
++ arm_r_r7_t0_c15,
++ arm_r_r8_t0_c15,
++ arm_r_r9_t0_c15,
++ arm_r_r10_t0_c15,
++ arm_r_r11_t0_c15,
++ arm_r_r12_t0_c15,
++ arm_r_r13_t0_c15,
++ arm_r_r14_t0_c15,
++ arm_r_r15_t0_c15,
++ arm_r_r0_t1_c15,
++ arm_r_r1_t1_c15,
++ arm_r_r2_t1_c15,
++ arm_r_r3_t1_c15,
++ arm_r_r4_t1_c15,
++ arm_r_r5_t1_c15,
++ arm_r_r6_t1_c15,
++ arm_r_r7_t1_c15,
++ arm_r_r8_t1_c15,
++ arm_r_r9_t1_c15,
++ arm_r_r10_t1_c15,
++ arm_r_r11_t1_c15,
++ arm_r_r12_t1_c15,
++ arm_r_r13_t1_c15,
++ arm_r_r14_t1_c15,
++ arm_r_r15_t1_c15,
++ arm_r_r0_t2_c15,
++ arm_r_r1_t2_c15,
++ arm_r_r2_t2_c15,
++ arm_r_r3_t2_c15,
++ arm_r_r4_t2_c15,
++ arm_r_r5_t2_c15,
++ arm_r_r6_t2_c15,
++ arm_r_r7_t2_c15,
++ arm_r_r8_t2_c15,
++ arm_r_r9_t2_c15,
++ arm_r_r10_t2_c15,
++ arm_r_r11_t2_c15,
++ arm_r_r12_t2_c15,
++ arm_r_r13_t2_c15,
++ arm_r_r14_t2_c15,
++ arm_r_r15_t2_c15,
++ arm_r_r0_t3_c15,
++ arm_r_r1_t3_c15,
++ arm_r_r2_t3_c15,
++ arm_r_r3_t3_c15,
++ arm_r_r4_t3_c15,
++ arm_r_r5_t3_c15,
++ arm_r_r6_t3_c15,
++ arm_r_r7_t3_c15,
++ arm_r_r8_t3_c15,
++ arm_r_r9_t3_c15,
++ arm_r_r10_t3_c15,
++ arm_r_r11_t3_c15,
++ arm_r_r12_t3_c15,
++ arm_r_r13_t3_c15,
++ arm_r_r14_t3_c15,
++ arm_r_r15_t3_c15,
++ arm_r_r0_t4_c15,
++ arm_r_r1_t4_c15,
++ arm_r_r2_t4_c15,
++ arm_r_r3_t4_c15,
++ arm_r_r4_t4_c15,
++ arm_r_r5_t4_c15,
++ arm_r_r6_t4_c15,
++ arm_r_r7_t4_c15,
++ arm_r_r8_t4_c15,
++ arm_r_r9_t4_c15,
++ arm_r_r10_t4_c15,
++ arm_r_r11_t4_c15,
++ arm_r_r12_t4_c15,
++ arm_r_r13_t4_c15,
++ arm_r_r14_t4_c15,
++ arm_r_r15_t4_c15,
++ arm_r_r0_t5_c15,
++ arm_r_r1_t5_c15,
++ arm_r_r2_t5_c15,
++ arm_r_r3_t5_c15,
++ arm_r_r4_t5_c15,
++ arm_r_r5_t5_c15,
++ arm_r_r6_t5_c15,
++ arm_r_r7_t5_c15,
++ arm_r_r8_t5_c15,
++ arm_r_r9_t5_c15,
++ arm_r_r10_t5_c15,
++ arm_r_r11_t5_c15,
++ arm_r_r12_t5_c15,
++ arm_r_r13_t5_c15,
++ arm_r_r14_t5_c15,
++ arm_r_r15_t5_c15,
++ arm_r_r0_t6_c15,
++ arm_r_r1_t6_c15,
++ arm_r_r2_t6_c15,
++ arm_r_r3_t6_c15,
++ arm_r_r4_t6_c15,
++ arm_r_r5_t6_c15,
++ arm_r_r6_t6_c15,
++ arm_r_r7_t6_c15,
++ arm_r_r8_t6_c15,
++ arm_r_r9_t6_c15,
++ arm_r_r10_t6_c15,
++ arm_r_r11_t6_c15,
++ arm_r_r12_t6_c15,
++ arm_r_r13_t6_c15,
++ arm_r_r14_t6_c15,
++ arm_r_r15_t6_c15,
++ arm_r_r0_t7_c15,
++ arm_r_r1_t7_c15,
++ arm_r_r2_t7_c15,
++ arm_r_r3_t7_c15,
++ arm_r_r4_t7_c15,
++ arm_r_r5_t7_c15,
++ arm_r_r6_t7_c15,
++ arm_r_r7_t7_c15,
++ arm_r_r8_t7_c15,
++ arm_r_r9_t7_c15,
++ arm_r_r10_t7_c15,
++ arm_r_r11_t7_c15,
++ arm_r_r12_t7_c15,
++ arm_r_r13_t7_c15,
++ arm_r_r14_t7_c15,
++ arm_r_r15_t7_c15,
++ arm_r_r0_t0_c16,
++ arm_r_r1_t0_c16,
++ arm_r_r2_t0_c16,
++ arm_r_r3_t0_c16,
++ arm_r_r4_t0_c16,
++ arm_r_r5_t0_c16,
++ arm_r_r6_t0_c16,
++ arm_r_r7_t0_c16,
++ arm_r_r8_t0_c16,
++ arm_r_r9_t0_c16,
++ arm_r_r10_t0_c16,
++ arm_r_r11_t0_c16,
++ arm_r_r12_t0_c16,
++ arm_r_r13_t0_c16,
++ arm_r_r14_t0_c16,
++ arm_r_r15_t0_c16,
++ arm_r_r0_t1_c16,
++ arm_r_r1_t1_c16,
++ arm_r_r2_t1_c16,
++ arm_r_r3_t1_c16,
++ arm_r_r4_t1_c16,
++ arm_r_r5_t1_c16,
++ arm_r_r6_t1_c16,
++ arm_r_r7_t1_c16,
++ arm_r_r8_t1_c16,
++ arm_r_r9_t1_c16,
++ arm_r_r10_t1_c16,
++ arm_r_r11_t1_c16,
++ arm_r_r12_t1_c16,
++ arm_r_r13_t1_c16,
++ arm_r_r14_t1_c16,
++ arm_r_r15_t1_c16,
++ arm_r_r0_t2_c16,
++ arm_r_r1_t2_c16,
++ arm_r_r2_t2_c16,
++ arm_r_r3_t2_c16,
++ arm_r_r4_t2_c16,
++ arm_r_r5_t2_c16,
++ arm_r_r6_t2_c16,
++ arm_r_r7_t2_c16,
++ arm_r_r8_t2_c16,
++ arm_r_r9_t2_c16,
++ arm_r_r10_t2_c16,
++ arm_r_r11_t2_c16,
++ arm_r_r12_t2_c16,
++ arm_r_r13_t2_c16,
++ arm_r_r14_t2_c16,
++ arm_r_r15_t2_c16,
++ arm_r_r0_t3_c16,
++ arm_r_r1_t3_c16,
++ arm_r_r2_t3_c16,
++ arm_r_r3_t3_c16,
++ arm_r_r4_t3_c16,
++ arm_r_r5_t3_c16,
++ arm_r_r6_t3_c16,
++ arm_r_r7_t3_c16,
++ arm_r_r8_t3_c16,
++ arm_r_r9_t3_c16,
++ arm_r_r10_t3_c16,
++ arm_r_r11_t3_c16,
++ arm_r_r12_t3_c16,
++ arm_r_r13_t3_c16,
++ arm_r_r14_t3_c16,
++ arm_r_r15_t3_c16,
++ arm_r_r0_t4_c16,
++ arm_r_r1_t4_c16,
++ arm_r_r2_t4_c16,
++ arm_r_r3_t4_c16,
++ arm_r_r4_t4_c16,
++ arm_r_r5_t4_c16,
++ arm_r_r6_t4_c16,
++ arm_r_r7_t4_c16,
++ arm_r_r8_t4_c16,
++ arm_r_r9_t4_c16,
++ arm_r_r10_t4_c16,
++ arm_r_r11_t4_c16,
++ arm_r_r12_t4_c16,
++ arm_r_r13_t4_c16,
++ arm_r_r14_t4_c16,
++ arm_r_r15_t4_c16,
++ arm_r_r0_t5_c16,
++ arm_r_r1_t5_c16,
++ arm_r_r2_t5_c16,
++ arm_r_r3_t5_c16,
++ arm_r_r4_t5_c16,
++ arm_r_r5_t5_c16,
++ arm_r_r6_t5_c16,
++ arm_r_r7_t5_c16,
++ arm_r_r8_t5_c16,
++ arm_r_r9_t5_c16,
++ arm_r_r10_t5_c16,
++ arm_r_r11_t5_c16,
++ arm_r_r12_t5_c16,
++ arm_r_r13_t5_c16,
++ arm_r_r14_t5_c16,
++ arm_r_r15_t5_c16,
++ arm_r_r0_t6_c16,
++ arm_r_r1_t6_c16,
++ arm_r_r2_t6_c16,
++ arm_r_r3_t6_c16,
++ arm_r_r4_t6_c16,
++ arm_r_r5_t6_c16,
++ arm_r_r6_t6_c16,
++ arm_r_r7_t6_c16,
++ arm_r_r8_t6_c16,
++ arm_r_r9_t6_c16,
++ arm_r_r10_t6_c16,
++ arm_r_r11_t6_c16,
++ arm_r_r12_t6_c16,
++ arm_r_r13_t6_c16,
++ arm_r_r14_t6_c16,
++ arm_r_r15_t6_c16,
++ arm_r_r0_t7_c16,
++ arm_r_r1_t7_c16,
++ arm_r_r2_t7_c16,
++ arm_r_r3_t7_c16,
++ arm_r_r4_t7_c16,
++ arm_r_r5_t7_c16,
++ arm_r_r6_t7_c16,
++ arm_r_r7_t7_c16,
++ arm_r_r8_t7_c16,
++ arm_r_r9_t7_c16,
++ arm_r_r10_t7_c16,
++ arm_r_r11_t7_c16,
++ arm_r_r12_t7_c16,
++ arm_r_r13_t7_c16,
++ arm_r_r14_t7_c16,
++ arm_r_r15_t7_c16,
++ arm_r_r0_t0_c17,
++ arm_r_r1_t0_c17,
++ arm_r_r2_t0_c17,
++ arm_r_r3_t0_c17,
++ arm_r_r4_t0_c17,
++ arm_r_r5_t0_c17,
++ arm_r_r6_t0_c17,
++ arm_r_r7_t0_c17,
++ arm_r_r8_t0_c17,
++ arm_r_r9_t0_c17,
++ arm_r_r10_t0_c17,
++ arm_r_r11_t0_c17,
++ arm_r_r12_t0_c17,
++ arm_r_r13_t0_c17,
++ arm_r_r14_t0_c17,
++ arm_r_r15_t0_c17,
++ arm_r_r0_t1_c17,
++ arm_r_r1_t1_c17,
++ arm_r_r2_t1_c17,
++ arm_r_r3_t1_c17,
++ arm_r_r4_t1_c17,
++ arm_r_r5_t1_c17,
++ arm_r_r6_t1_c17,
++ arm_r_r7_t1_c17,
++ arm_r_r8_t1_c17,
++ arm_r_r9_t1_c17,
++ arm_r_r10_t1_c17,
++ arm_r_r11_t1_c17,
++ arm_r_r12_t1_c17,
++ arm_r_r13_t1_c17,
++ arm_r_r14_t1_c17,
++ arm_r_r15_t1_c17,
++ arm_r_r0_t2_c17,
++ arm_r_r1_t2_c17,
++ arm_r_r2_t2_c17,
++ arm_r_r3_t2_c17,
++ arm_r_r4_t2_c17,
++ arm_r_r5_t2_c17,
++ arm_r_r6_t2_c17,
++ arm_r_r7_t2_c17,
++ arm_r_r8_t2_c17,
++ arm_r_r9_t2_c17,
++ arm_r_r10_t2_c17,
++ arm_r_r11_t2_c17,
++ arm_r_r12_t2_c17,
++ arm_r_r13_t2_c17,
++ arm_r_r14_t2_c17,
++ arm_r_r15_t2_c17,
++ arm_r_r0_t3_c17,
++ arm_r_r1_t3_c17,
++ arm_r_r2_t3_c17,
++ arm_r_r3_t3_c17,
++ arm_r_r4_t3_c17,
++ arm_r_r5_t3_c17,
++ arm_r_r6_t3_c17,
++ arm_r_r7_t3_c17,
++ arm_r_r8_t3_c17,
++ arm_r_r9_t3_c17,
++ arm_r_r10_t3_c17,
++ arm_r_r11_t3_c17,
++ arm_r_r12_t3_c17,
++ arm_r_r13_t3_c17,
++ arm_r_r14_t3_c17,
++ arm_r_r15_t3_c17,
++ arm_r_r0_t4_c17,
++ arm_r_r1_t4_c17,
++ arm_r_r2_t4_c17,
++ arm_r_r3_t4_c17,
++ arm_r_r4_t4_c17,
++ arm_r_r5_t4_c17,
++ arm_r_r6_t4_c17,
++ arm_r_r7_t4_c17,
++ arm_r_r8_t4_c17,
++ arm_r_r9_t4_c17,
++ arm_r_r10_t4_c17,
++ arm_r_r11_t4_c17,
++ arm_r_r12_t4_c17,
++ arm_r_r13_t4_c17,
++ arm_r_r14_t4_c17,
++ arm_r_r15_t4_c17,
++ arm_r_r0_t5_c17,
++ arm_r_r1_t5_c17,
++ arm_r_r2_t5_c17,
++ arm_r_r3_t5_c17,
++ arm_r_r4_t5_c17,
++ arm_r_r5_t5_c17,
++ arm_r_r6_t5_c17,
++ arm_r_r7_t5_c17,
++ arm_r_r8_t5_c17,
++ arm_r_r9_t5_c17,
++ arm_r_r10_t5_c17,
++ arm_r_r11_t5_c17,
++ arm_r_r12_t5_c17,
++ arm_r_r13_t5_c17,
++ arm_r_r14_t5_c17,
++ arm_r_r15_t5_c17,
++ arm_r_r0_t6_c17,
++ arm_r_r1_t6_c17,
++ arm_r_r2_t6_c17,
++ arm_r_r3_t6_c17,
++ arm_r_r4_t6_c17,
++ arm_r_r5_t6_c17,
++ arm_r_r6_t6_c17,
++ arm_r_r7_t6_c17,
++ arm_r_r8_t6_c17,
++ arm_r_r9_t6_c17,
++ arm_r_r10_t6_c17,
++ arm_r_r11_t6_c17,
++ arm_r_r12_t6_c17,
++ arm_r_r13_t6_c17,
++ arm_r_r14_t6_c17,
++ arm_r_r15_t6_c17,
++ arm_r_r0_t7_c17,
++ arm_r_r1_t7_c17,
++ arm_r_r2_t7_c17,
++ arm_r_r3_t7_c17,
++ arm_r_r4_t7_c17,
++ arm_r_r5_t7_c17,
++ arm_r_r6_t7_c17,
++ arm_r_r7_t7_c17,
++ arm_r_r8_t7_c17,
++ arm_r_r9_t7_c17,
++ arm_r_r10_t7_c17,
++ arm_r_r11_t7_c17,
++ arm_r_r12_t7_c17,
++ arm_r_r13_t7_c17,
++ arm_r_r14_t7_c17,
++ arm_r_r15_t7_c17,
++ arm_r_r0_t0_c18,
++ arm_r_r1_t0_c18,
++ arm_r_r2_t0_c18,
++ arm_r_r3_t0_c18,
++ arm_r_r4_t0_c18,
++ arm_r_r5_t0_c18,
++ arm_r_r6_t0_c18,
++ arm_r_r7_t0_c18,
++ arm_r_r8_t0_c18,
++ arm_r_r9_t0_c18,
++ arm_r_r10_t0_c18,
++ arm_r_r11_t0_c18,
++ arm_r_r12_t0_c18,
++ arm_r_r13_t0_c18,
++ arm_r_r14_t0_c18,
++ arm_r_r15_t0_c18,
++ arm_r_r0_t1_c18,
++ arm_r_r1_t1_c18,
++ arm_r_r2_t1_c18,
++ arm_r_r3_t1_c18,
++ arm_r_r4_t1_c18,
++ arm_r_r5_t1_c18,
++ arm_r_r6_t1_c18,
++ arm_r_r7_t1_c18,
++ arm_r_r8_t1_c18,
++ arm_r_r9_t1_c18,
++ arm_r_r10_t1_c18,
++ arm_r_r11_t1_c18,
++ arm_r_r12_t1_c18,
++ arm_r_r13_t1_c18,
++ arm_r_r14_t1_c18,
++ arm_r_r15_t1_c18,
++ arm_r_r0_t2_c18,
++ arm_r_r1_t2_c18,
++ arm_r_r2_t2_c18,
++ arm_r_r3_t2_c18,
++ arm_r_r4_t2_c18,
++ arm_r_r5_t2_c18,
++ arm_r_r6_t2_c18,
++ arm_r_r7_t2_c18,
++ arm_r_r8_t2_c18,
++ arm_r_r9_t2_c18,
++ arm_r_r10_t2_c18,
++ arm_r_r11_t2_c18,
++ arm_r_r12_t2_c18,
++ arm_r_r13_t2_c18,
++ arm_r_r14_t2_c18,
++ arm_r_r15_t2_c18,
++ arm_r_r0_t3_c18,
++ arm_r_r1_t3_c18,
++ arm_r_r2_t3_c18,
++ arm_r_r3_t3_c18,
++ arm_r_r4_t3_c18,
++ arm_r_r5_t3_c18,
++ arm_r_r6_t3_c18,
++ arm_r_r7_t3_c18,
++ arm_r_r8_t3_c18,
++ arm_r_r9_t3_c18,
++ arm_r_r10_t3_c18,
++ arm_r_r11_t3_c18,
++ arm_r_r12_t3_c18,
++ arm_r_r13_t3_c18,
++ arm_r_r14_t3_c18,
++ arm_r_r15_t3_c18,
++ arm_r_r0_t4_c18,
++ arm_r_r1_t4_c18,
++ arm_r_r2_t4_c18,
++ arm_r_r3_t4_c18,
++ arm_r_r4_t4_c18,
++ arm_r_r5_t4_c18,
++ arm_r_r6_t4_c18,
++ arm_r_r7_t4_c18,
++ arm_r_r8_t4_c18,
++ arm_r_r9_t4_c18,
++ arm_r_r10_t4_c18,
++ arm_r_r11_t4_c18,
++ arm_r_r12_t4_c18,
++ arm_r_r13_t4_c18,
++ arm_r_r14_t4_c18,
++ arm_r_r15_t4_c18,
++ arm_r_r0_t5_c18,
++ arm_r_r1_t5_c18,
++ arm_r_r2_t5_c18,
++ arm_r_r3_t5_c18,
++ arm_r_r4_t5_c18,
++ arm_r_r5_t5_c18,
++ arm_r_r6_t5_c18,
++ arm_r_r7_t5_c18,
++ arm_r_r8_t5_c18,
++ arm_r_r9_t5_c18,
++ arm_r_r10_t5_c18,
++ arm_r_r11_t5_c18,
++ arm_r_r12_t5_c18,
++ arm_r_r13_t5_c18,
++ arm_r_r14_t5_c18,
++ arm_r_r15_t5_c18,
++ arm_r_r0_t6_c18,
++ arm_r_r1_t6_c18,
++ arm_r_r2_t6_c18,
++ arm_r_r3_t6_c18,
++ arm_r_r4_t6_c18,
++ arm_r_r5_t6_c18,
++ arm_r_r6_t6_c18,
++ arm_r_r7_t6_c18,
++ arm_r_r8_t6_c18,
++ arm_r_r9_t6_c18,
++ arm_r_r10_t6_c18,
++ arm_r_r11_t6_c18,
++ arm_r_r12_t6_c18,
++ arm_r_r13_t6_c18,
++ arm_r_r14_t6_c18,
++ arm_r_r15_t6_c18,
++ arm_r_r0_t7_c18,
++ arm_r_r1_t7_c18,
++ arm_r_r2_t7_c18,
++ arm_r_r3_t7_c18,
++ arm_r_r4_t7_c18,
++ arm_r_r5_t7_c18,
++ arm_r_r6_t7_c18,
++ arm_r_r7_t7_c18,
++ arm_r_r8_t7_c18,
++ arm_r_r9_t7_c18,
++ arm_r_r10_t7_c18,
++ arm_r_r11_t7_c18,
++ arm_r_r12_t7_c18,
++ arm_r_r13_t7_c18,
++ arm_r_r14_t7_c18,
++ arm_r_r15_t7_c18,
++ arm_r_r0_t0_c19,
++ arm_r_r1_t0_c19,
++ arm_r_r2_t0_c19,
++ arm_r_r3_t0_c19,
++ arm_r_r4_t0_c19,
++ arm_r_r5_t0_c19,
++ arm_r_r6_t0_c19,
++ arm_r_r7_t0_c19,
++ arm_r_r8_t0_c19,
++ arm_r_r9_t0_c19,
++ arm_r_r10_t0_c19,
++ arm_r_r11_t0_c19,
++ arm_r_r12_t0_c19,
++ arm_r_r13_t0_c19,
++ arm_r_r14_t0_c19,
++ arm_r_r15_t0_c19,
++ arm_r_r0_t1_c19,
++ arm_r_r1_t1_c19,
++ arm_r_r2_t1_c19,
++ arm_r_r3_t1_c19,
++ arm_r_r4_t1_c19,
++ arm_r_r5_t1_c19,
++ arm_r_r6_t1_c19,
++ arm_r_r7_t1_c19,
++ arm_r_r8_t1_c19,
++ arm_r_r9_t1_c19,
++ arm_r_r10_t1_c19,
++ arm_r_r11_t1_c19,
++ arm_r_r12_t1_c19,
++ arm_r_r13_t1_c19,
++ arm_r_r14_t1_c19,
++ arm_r_r15_t1_c19,
++ arm_r_r0_t2_c19,
++ arm_r_r1_t2_c19,
++ arm_r_r2_t2_c19,
++ arm_r_r3_t2_c19,
++ arm_r_r4_t2_c19,
++ arm_r_r5_t2_c19,
++ arm_r_r6_t2_c19,
++ arm_r_r7_t2_c19,
++ arm_r_r8_t2_c19,
++ arm_r_r9_t2_c19,
++ arm_r_r10_t2_c19,
++ arm_r_r11_t2_c19,
++ arm_r_r12_t2_c19,
++ arm_r_r13_t2_c19,
++ arm_r_r14_t2_c19,
++ arm_r_r15_t2_c19,
++ arm_r_r0_t3_c19,
++ arm_r_r1_t3_c19,
++ arm_r_r2_t3_c19,
++ arm_r_r3_t3_c19,
++ arm_r_r4_t3_c19,
++ arm_r_r5_t3_c19,
++ arm_r_r6_t3_c19,
++ arm_r_r7_t3_c19,
++ arm_r_r8_t3_c19,
++ arm_r_r9_t3_c19,
++ arm_r_r10_t3_c19,
++ arm_r_r11_t3_c19,
++ arm_r_r12_t3_c19,
++ arm_r_r13_t3_c19,
++ arm_r_r14_t3_c19,
++ arm_r_r15_t3_c19,
++ arm_r_r0_t4_c19,
++ arm_r_r1_t4_c19,
++ arm_r_r2_t4_c19,
++ arm_r_r3_t4_c19,
++ arm_r_r4_t4_c19,
++ arm_r_r5_t4_c19,
++ arm_r_r6_t4_c19,
++ arm_r_r7_t4_c19,
++ arm_r_r8_t4_c19,
++ arm_r_r9_t4_c19,
++ arm_r_r10_t4_c19,
++ arm_r_r11_t4_c19,
++ arm_r_r12_t4_c19,
++ arm_r_r13_t4_c19,
++ arm_r_r14_t4_c19,
++ arm_r_r15_t4_c19,
++ arm_r_r0_t5_c19,
++ arm_r_r1_t5_c19,
++ arm_r_r2_t5_c19,
++ arm_r_r3_t5_c19,
++ arm_r_r4_t5_c19,
++ arm_r_r5_t5_c19,
++ arm_r_r6_t5_c19,
++ arm_r_r7_t5_c19,
++ arm_r_r8_t5_c19,
++ arm_r_r9_t5_c19,
++ arm_r_r10_t5_c19,
++ arm_r_r11_t5_c19,
++ arm_r_r12_t5_c19,
++ arm_r_r13_t5_c19,
++ arm_r_r14_t5_c19,
++ arm_r_r15_t5_c19,
++ arm_r_r0_t6_c19,
++ arm_r_r1_t6_c19,
++ arm_r_r2_t6_c19,
++ arm_r_r3_t6_c19,
++ arm_r_r4_t6_c19,
++ arm_r_r5_t6_c19,
++ arm_r_r6_t6_c19,
++ arm_r_r7_t6_c19,
++ arm_r_r8_t6_c19,
++ arm_r_r9_t6_c19,
++ arm_r_r10_t6_c19,
++ arm_r_r11_t6_c19,
++ arm_r_r12_t6_c19,
++ arm_r_r13_t6_c19,
++ arm_r_r14_t6_c19,
++ arm_r_r15_t6_c19,
++ arm_r_r0_t7_c19,
++ arm_r_r1_t7_c19,
++ arm_r_r2_t7_c19,
++ arm_r_r3_t7_c19,
++ arm_r_r4_t7_c19,
++ arm_r_r5_t7_c19,
++ arm_r_r6_t7_c19,
++ arm_r_r7_t7_c19,
++ arm_r_r8_t7_c19,
++ arm_r_r9_t7_c19,
++ arm_r_r10_t7_c19,
++ arm_r_r11_t7_c19,
++ arm_r_r12_t7_c19,
++ arm_r_r13_t7_c19,
++ arm_r_r14_t7_c19,
++ arm_r_r15_t7_c19,
++ arm_r_r0_t0_c20,
++ arm_r_r1_t0_c20,
++ arm_r_r2_t0_c20,
++ arm_r_r3_t0_c20,
++ arm_r_r4_t0_c20,
++ arm_r_r5_t0_c20,
++ arm_r_r6_t0_c20,
++ arm_r_r7_t0_c20,
++ arm_r_r8_t0_c20,
++ arm_r_r9_t0_c20,
++ arm_r_r10_t0_c20,
++ arm_r_r11_t0_c20,
++ arm_r_r12_t0_c20,
++ arm_r_r13_t0_c20,
++ arm_r_r14_t0_c20,
++ arm_r_r15_t0_c20,
++ arm_r_r0_t1_c20,
++ arm_r_r1_t1_c20,
++ arm_r_r2_t1_c20,
++ arm_r_r3_t1_c20,
++ arm_r_r4_t1_c20,
++ arm_r_r5_t1_c20,
++ arm_r_r6_t1_c20,
++ arm_r_r7_t1_c20,
++ arm_r_r8_t1_c20,
++ arm_r_r9_t1_c20,
++ arm_r_r10_t1_c20,
++ arm_r_r11_t1_c20,
++ arm_r_r12_t1_c20,
++ arm_r_r13_t1_c20,
++ arm_r_r14_t1_c20,
++ arm_r_r15_t1_c20,
++ arm_r_r0_t2_c20,
++ arm_r_r1_t2_c20,
++ arm_r_r2_t2_c20,
++ arm_r_r3_t2_c20,
++ arm_r_r4_t2_c20,
++ arm_r_r5_t2_c20,
++ arm_r_r6_t2_c20,
++ arm_r_r7_t2_c20,
++ arm_r_r8_t2_c20,
++ arm_r_r9_t2_c20,
++ arm_r_r10_t2_c20,
++ arm_r_r11_t2_c20,
++ arm_r_r12_t2_c20,
++ arm_r_r13_t2_c20,
++ arm_r_r14_t2_c20,
++ arm_r_r15_t2_c20,
++ arm_r_r0_t3_c20,
++ arm_r_r1_t3_c20,
++ arm_r_r2_t3_c20,
++ arm_r_r3_t3_c20,
++ arm_r_r4_t3_c20,
++ arm_r_r5_t3_c20,
++ arm_r_r6_t3_c20,
++ arm_r_r7_t3_c20,
++ arm_r_r8_t3_c20,
++ arm_r_r9_t3_c20,
++ arm_r_r10_t3_c20,
++ arm_r_r11_t3_c20,
++ arm_r_r12_t3_c20,
++ arm_r_r13_t3_c20,
++ arm_r_r14_t3_c20,
++ arm_r_r15_t3_c20,
++ arm_r_r0_t4_c20,
++ arm_r_r1_t4_c20,
++ arm_r_r2_t4_c20,
++ arm_r_r3_t4_c20,
++ arm_r_r4_t4_c20,
++ arm_r_r5_t4_c20,
++ arm_r_r6_t4_c20,
++ arm_r_r7_t4_c20,
++ arm_r_r8_t4_c20,
++ arm_r_r9_t4_c20,
++ arm_r_r10_t4_c20,
++ arm_r_r11_t4_c20,
++ arm_r_r12_t4_c20,
++ arm_r_r13_t4_c20,
++ arm_r_r14_t4_c20,
++ arm_r_r15_t4_c20,
++ arm_r_r0_t5_c20,
++ arm_r_r1_t5_c20,
++ arm_r_r2_t5_c20,
++ arm_r_r3_t5_c20,
++ arm_r_r4_t5_c20,
++ arm_r_r5_t5_c20,
++ arm_r_r6_t5_c20,
++ arm_r_r7_t5_c20,
++ arm_r_r8_t5_c20,
++ arm_r_r9_t5_c20,
++ arm_r_r10_t5_c20,
++ arm_r_r11_t5_c20,
++ arm_r_r12_t5_c20,
++ arm_r_r13_t5_c20,
++ arm_r_r14_t5_c20,
++ arm_r_r15_t5_c20,
++ arm_r_r0_t6_c20,
++ arm_r_r1_t6_c20,
++ arm_r_r2_t6_c20,
++ arm_r_r3_t6_c20,
++ arm_r_r4_t6_c20,
++ arm_r_r5_t6_c20,
++ arm_r_r6_t6_c20,
++ arm_r_r7_t6_c20,
++ arm_r_r8_t6_c20,
++ arm_r_r9_t6_c20,
++ arm_r_r10_t6_c20,
++ arm_r_r11_t6_c20,
++ arm_r_r12_t6_c20,
++ arm_r_r13_t6_c20,
++ arm_r_r14_t6_c20,
++ arm_r_r15_t6_c20,
++ arm_r_r0_t7_c20,
++ arm_r_r1_t7_c20,
++ arm_r_r2_t7_c20,
++ arm_r_r3_t7_c20,
++ arm_r_r4_t7_c20,
++ arm_r_r5_t7_c20,
++ arm_r_r6_t7_c20,
++ arm_r_r7_t7_c20,
++ arm_r_r8_t7_c20,
++ arm_r_r9_t7_c20,
++ arm_r_r10_t7_c20,
++ arm_r_r11_t7_c20,
++ arm_r_r12_t7_c20,
++ arm_r_r13_t7_c20,
++ arm_r_r14_t7_c20,
++ arm_r_r15_t7_c20,
++ arm_r_r0_t0_c21,
++ arm_r_r1_t0_c21,
++ arm_r_r2_t0_c21,
++ arm_r_r3_t0_c21,
++ arm_r_r4_t0_c21,
++ arm_r_r5_t0_c21,
++ arm_r_r6_t0_c21,
++ arm_r_r7_t0_c21,
++ arm_r_r8_t0_c21,
++ arm_r_r9_t0_c21,
++ arm_r_r10_t0_c21,
++ arm_r_r11_t0_c21,
++ arm_r_r12_t0_c21,
++ arm_r_r13_t0_c21,
++ arm_r_r14_t0_c21,
++ arm_r_r15_t0_c21,
++ arm_r_r0_t1_c21,
++ arm_r_r1_t1_c21,
++ arm_r_r2_t1_c21,
++ arm_r_r3_t1_c21,
++ arm_r_r4_t1_c21,
++ arm_r_r5_t1_c21,
++ arm_r_r6_t1_c21,
++ arm_r_r7_t1_c21,
++ arm_r_r8_t1_c21,
++ arm_r_r9_t1_c21,
++ arm_r_r10_t1_c21,
++ arm_r_r11_t1_c21,
++ arm_r_r12_t1_c21,
++ arm_r_r13_t1_c21,
++ arm_r_r14_t1_c21,
++ arm_r_r15_t1_c21,
++ arm_r_r0_t2_c21,
++ arm_r_r1_t2_c21,
++ arm_r_r2_t2_c21,
++ arm_r_r3_t2_c21,
++ arm_r_r4_t2_c21,
++ arm_r_r5_t2_c21,
++ arm_r_r6_t2_c21,
++ arm_r_r7_t2_c21,
++ arm_r_r8_t2_c21,
++ arm_r_r9_t2_c21,
++ arm_r_r10_t2_c21,
++ arm_r_r11_t2_c21,
++ arm_r_r12_t2_c21,
++ arm_r_r13_t2_c21,
++ arm_r_r14_t2_c21,
++ arm_r_r15_t2_c21,
++ arm_r_r0_t3_c21,
++ arm_r_r1_t3_c21,
++ arm_r_r2_t3_c21,
++ arm_r_r3_t3_c21,
++ arm_r_r4_t3_c21,
++ arm_r_r5_t3_c21,
++ arm_r_r6_t3_c21,
++ arm_r_r7_t3_c21,
++ arm_r_r8_t3_c21,
++ arm_r_r9_t3_c21,
++ arm_r_r10_t3_c21,
++ arm_r_r11_t3_c21,
++ arm_r_r12_t3_c21,
++ arm_r_r13_t3_c21,
++ arm_r_r14_t3_c21,
++ arm_r_r15_t3_c21,
++ arm_r_r0_t4_c21,
++ arm_r_r1_t4_c21,
++ arm_r_r2_t4_c21,
++ arm_r_r3_t4_c21,
++ arm_r_r4_t4_c21,
++ arm_r_r5_t4_c21,
++ arm_r_r6_t4_c21,
++ arm_r_r7_t4_c21,
++ arm_r_r8_t4_c21,
++ arm_r_r9_t4_c21,
++ arm_r_r10_t4_c21,
++ arm_r_r11_t4_c21,
++ arm_r_r12_t4_c21,
++ arm_r_r13_t4_c21,
++ arm_r_r14_t4_c21,
++ arm_r_r15_t4_c21,
++ arm_r_r0_t5_c21,
++ arm_r_r1_t5_c21,
++ arm_r_r2_t5_c21,
++ arm_r_r3_t5_c21,
++ arm_r_r4_t5_c21,
++ arm_r_r5_t5_c21,
++ arm_r_r6_t5_c21,
++ arm_r_r7_t5_c21,
++ arm_r_r8_t5_c21,
++ arm_r_r9_t5_c21,
++ arm_r_r10_t5_c21,
++ arm_r_r11_t5_c21,
++ arm_r_r12_t5_c21,
++ arm_r_r13_t5_c21,
++ arm_r_r14_t5_c21,
++ arm_r_r15_t5_c21,
++ arm_r_r0_t6_c21,
++ arm_r_r1_t6_c21,
++ arm_r_r2_t6_c21,
++ arm_r_r3_t6_c21,
++ arm_r_r4_t6_c21,
++ arm_r_r5_t6_c21,
++ arm_r_r6_t6_c21,
++ arm_r_r7_t6_c21,
++ arm_r_r8_t6_c21,
++ arm_r_r9_t6_c21,
++ arm_r_r10_t6_c21,
++ arm_r_r11_t6_c21,
++ arm_r_r12_t6_c21,
++ arm_r_r13_t6_c21,
++ arm_r_r14_t6_c21,
++ arm_r_r15_t6_c21,
++ arm_r_r0_t7_c21,
++ arm_r_r1_t7_c21,
++ arm_r_r2_t7_c21,
++ arm_r_r3_t7_c21,
++ arm_r_r4_t7_c21,
++ arm_r_r5_t7_c21,
++ arm_r_r6_t7_c21,
++ arm_r_r7_t7_c21,
++ arm_r_r8_t7_c21,
++ arm_r_r9_t7_c21,
++ arm_r_r10_t7_c21,
++ arm_r_r11_t7_c21,
++ arm_r_r12_t7_c21,
++ arm_r_r13_t7_c21,
++ arm_r_r14_t7_c21,
++ arm_r_r15_t7_c21,
++ arm_r_r0_t0_c22,
++ arm_r_r1_t0_c22,
++ arm_r_r2_t0_c22,
++ arm_r_r3_t0_c22,
++ arm_r_r4_t0_c22,
++ arm_r_r5_t0_c22,
++ arm_r_r6_t0_c22,
++ arm_r_r7_t0_c22,
++ arm_r_r8_t0_c22,
++ arm_r_r9_t0_c22,
++ arm_r_r10_t0_c22,
++ arm_r_r11_t0_c22,
++ arm_r_r12_t0_c22,
++ arm_r_r13_t0_c22,
++ arm_r_r14_t0_c22,
++ arm_r_r15_t0_c22,
++ arm_r_r0_t1_c22,
++ arm_r_r1_t1_c22,
++ arm_r_r2_t1_c22,
++ arm_r_r3_t1_c22,
++ arm_r_r4_t1_c22,
++ arm_r_r5_t1_c22,
++ arm_r_r6_t1_c22,
++ arm_r_r7_t1_c22,
++ arm_r_r8_t1_c22,
++ arm_r_r9_t1_c22,
++ arm_r_r10_t1_c22,
++ arm_r_r11_t1_c22,
++ arm_r_r12_t1_c22,
++ arm_r_r13_t1_c22,
++ arm_r_r14_t1_c22,
++ arm_r_r15_t1_c22,
++ arm_r_r0_t2_c22,
++ arm_r_r1_t2_c22,
++ arm_r_r2_t2_c22,
++ arm_r_r3_t2_c22,
++ arm_r_r4_t2_c22,
++ arm_r_r5_t2_c22,
++ arm_r_r6_t2_c22,
++ arm_r_r7_t2_c22,
++ arm_r_r8_t2_c22,
++ arm_r_r9_t2_c22,
++ arm_r_r10_t2_c22,
++ arm_r_r11_t2_c22,
++ arm_r_r12_t2_c22,
++ arm_r_r13_t2_c22,
++ arm_r_r14_t2_c22,
++ arm_r_r15_t2_c22,
++ arm_r_r0_t3_c22,
++ arm_r_r1_t3_c22,
++ arm_r_r2_t3_c22,
++ arm_r_r3_t3_c22,
++ arm_r_r4_t3_c22,
++ arm_r_r5_t3_c22,
++ arm_r_r6_t3_c22,
++ arm_r_r7_t3_c22,
++ arm_r_r8_t3_c22,
++ arm_r_r9_t3_c22,
++ arm_r_r10_t3_c22,
++ arm_r_r11_t3_c22,
++ arm_r_r12_t3_c22,
++ arm_r_r13_t3_c22,
++ arm_r_r14_t3_c22,
++ arm_r_r15_t3_c22,
++ arm_r_r0_t4_c22,
++ arm_r_r1_t4_c22,
++ arm_r_r2_t4_c22,
++ arm_r_r3_t4_c22,
++ arm_r_r4_t4_c22,
++ arm_r_r5_t4_c22,
++ arm_r_r6_t4_c22,
++ arm_r_r7_t4_c22,
++ arm_r_r8_t4_c22,
++ arm_r_r9_t4_c22,
++ arm_r_r10_t4_c22,
++ arm_r_r11_t4_c22,
++ arm_r_r12_t4_c22,
++ arm_r_r13_t4_c22,
++ arm_r_r14_t4_c22,
++ arm_r_r15_t4_c22,
++ arm_r_r0_t5_c22,
++ arm_r_r1_t5_c22,
++ arm_r_r2_t5_c22,
++ arm_r_r3_t5_c22,
++ arm_r_r4_t5_c22,
++ arm_r_r5_t5_c22,
++ arm_r_r6_t5_c22,
++ arm_r_r7_t5_c22,
++ arm_r_r8_t5_c22,
++ arm_r_r9_t5_c22,
++ arm_r_r10_t5_c22,
++ arm_r_r11_t5_c22,
++ arm_r_r12_t5_c22,
++ arm_r_r13_t5_c22,
++ arm_r_r14_t5_c22,
++ arm_r_r15_t5_c22,
++ arm_r_r0_t6_c22,
++ arm_r_r1_t6_c22,
++ arm_r_r2_t6_c22,
++ arm_r_r3_t6_c22,
++ arm_r_r4_t6_c22,
++ arm_r_r5_t6_c22,
++ arm_r_r6_t6_c22,
++ arm_r_r7_t6_c22,
++ arm_r_r8_t6_c22,
++ arm_r_r9_t6_c22,
++ arm_r_r10_t6_c22,
++ arm_r_r11_t6_c22,
++ arm_r_r12_t6_c22,
++ arm_r_r13_t6_c22,
++ arm_r_r14_t6_c22,
++ arm_r_r15_t6_c22,
++ arm_r_r0_t7_c22,
++ arm_r_r1_t7_c22,
++ arm_r_r2_t7_c22,
++ arm_r_r3_t7_c22,
++ arm_r_r4_t7_c22,
++ arm_r_r5_t7_c22,
++ arm_r_r6_t7_c22,
++ arm_r_r7_t7_c22,
++ arm_r_r8_t7_c22,
++ arm_r_r9_t7_c22,
++ arm_r_r10_t7_c22,
++ arm_r_r11_t7_c22,
++ arm_r_r12_t7_c22,
++ arm_r_r13_t7_c22,
++ arm_r_r14_t7_c22,
++ arm_r_r15_t7_c22,
++ arm_r_r0_t0_c23,
++ arm_r_r1_t0_c23,
++ arm_r_r2_t0_c23,
++ arm_r_r3_t0_c23,
++ arm_r_r4_t0_c23,
++ arm_r_r5_t0_c23,
++ arm_r_r6_t0_c23,
++ arm_r_r7_t0_c23,
++ arm_r_r8_t0_c23,
++ arm_r_r9_t0_c23,
++ arm_r_r10_t0_c23,
++ arm_r_r11_t0_c23,
++ arm_r_r12_t0_c23,
++ arm_r_r13_t0_c23,
++ arm_r_r14_t0_c23,
++ arm_r_r15_t0_c23,
++ arm_r_r0_t1_c23,
++ arm_r_r1_t1_c23,
++ arm_r_r2_t1_c23,
++ arm_r_r3_t1_c23,
++ arm_r_r4_t1_c23,
++ arm_r_r5_t1_c23,
++ arm_r_r6_t1_c23,
++ arm_r_r7_t1_c23,
++ arm_r_r8_t1_c23,
++ arm_r_r9_t1_c23,
++ arm_r_r10_t1_c23,
++ arm_r_r11_t1_c23,
++ arm_r_r12_t1_c23,
++ arm_r_r13_t1_c23,
++ arm_r_r14_t1_c23,
++ arm_r_r15_t1_c23,
++ arm_r_r0_t2_c23,
++ arm_r_r1_t2_c23,
++ arm_r_r2_t2_c23,
++ arm_r_r3_t2_c23,
++ arm_r_r4_t2_c23,
++ arm_r_r5_t2_c23,
++ arm_r_r6_t2_c23,
++ arm_r_r7_t2_c23,
++ arm_r_r8_t2_c23,
++ arm_r_r9_t2_c23,
++ arm_r_r10_t2_c23,
++ arm_r_r11_t2_c23,
++ arm_r_r12_t2_c23,
++ arm_r_r13_t2_c23,
++ arm_r_r14_t2_c23,
++ arm_r_r15_t2_c23,
++ arm_r_r0_t3_c23,
++ arm_r_r1_t3_c23,
++ arm_r_r2_t3_c23,
++ arm_r_r3_t3_c23,
++ arm_r_r4_t3_c23,
++ arm_r_r5_t3_c23,
++ arm_r_r6_t3_c23,
++ arm_r_r7_t3_c23,
++ arm_r_r8_t3_c23,
++ arm_r_r9_t3_c23,
++ arm_r_r10_t3_c23,
++ arm_r_r11_t3_c23,
++ arm_r_r12_t3_c23,
++ arm_r_r13_t3_c23,
++ arm_r_r14_t3_c23,
++ arm_r_r15_t3_c23,
++ arm_r_r0_t4_c23,
++ arm_r_r1_t4_c23,
++ arm_r_r2_t4_c23,
++ arm_r_r3_t4_c23,
++ arm_r_r4_t4_c23,
++ arm_r_r5_t4_c23,
++ arm_r_r6_t4_c23,
++ arm_r_r7_t4_c23,
++ arm_r_r8_t4_c23,
++ arm_r_r9_t4_c23,
++ arm_r_r10_t4_c23,
++ arm_r_r11_t4_c23,
++ arm_r_r12_t4_c23,
++ arm_r_r13_t4_c23,
++ arm_r_r14_t4_c23,
++ arm_r_r15_t4_c23,
++ arm_r_r0_t5_c23,
++ arm_r_r1_t5_c23,
++ arm_r_r2_t5_c23,
++ arm_r_r3_t5_c23,
++ arm_r_r4_t5_c23,
++ arm_r_r5_t5_c23,
++ arm_r_r6_t5_c23,
++ arm_r_r7_t5_c23,
++ arm_r_r8_t5_c23,
++ arm_r_r9_t5_c23,
++ arm_r_r10_t5_c23,
++ arm_r_r11_t5_c23,
++ arm_r_r12_t5_c23,
++ arm_r_r13_t5_c23,
++ arm_r_r14_t5_c23,
++ arm_r_r15_t5_c23,
++ arm_r_r0_t6_c23,
++ arm_r_r1_t6_c23,
++ arm_r_r2_t6_c23,
++ arm_r_r3_t6_c23,
++ arm_r_r4_t6_c23,
++ arm_r_r5_t6_c23,
++ arm_r_r6_t6_c23,
++ arm_r_r7_t6_c23,
++ arm_r_r8_t6_c23,
++ arm_r_r9_t6_c23,
++ arm_r_r10_t6_c23,
++ arm_r_r11_t6_c23,
++ arm_r_r12_t6_c23,
++ arm_r_r13_t6_c23,
++ arm_r_r14_t6_c23,
++ arm_r_r15_t6_c23,
++ arm_r_r0_t7_c23,
++ arm_r_r1_t7_c23,
++ arm_r_r2_t7_c23,
++ arm_r_r3_t7_c23,
++ arm_r_r4_t7_c23,
++ arm_r_r5_t7_c23,
++ arm_r_r6_t7_c23,
++ arm_r_r7_t7_c23,
++ arm_r_r8_t7_c23,
++ arm_r_r9_t7_c23,
++ arm_r_r10_t7_c23,
++ arm_r_r11_t7_c23,
++ arm_r_r12_t7_c23,
++ arm_r_r13_t7_c23,
++ arm_r_r14_t7_c23,
++ arm_r_r15_t7_c23,
++ arm_r_r0_t0_c24,
++ arm_r_r1_t0_c24,
++ arm_r_r2_t0_c24,
++ arm_r_r3_t0_c24,
++ arm_r_r4_t0_c24,
++ arm_r_r5_t0_c24,
++ arm_r_r6_t0_c24,
++ arm_r_r7_t0_c24,
++ arm_r_r8_t0_c24,
++ arm_r_r9_t0_c24,
++ arm_r_r10_t0_c24,
++ arm_r_r11_t0_c24,
++ arm_r_r12_t0_c24,
++ arm_r_r13_t0_c24,
++ arm_r_r14_t0_c24,
++ arm_r_r15_t0_c24,
++ arm_r_r0_t1_c24,
++ arm_r_r1_t1_c24,
++ arm_r_r2_t1_c24,
++ arm_r_r3_t1_c24,
++ arm_r_r4_t1_c24,
++ arm_r_r5_t1_c24,
++ arm_r_r6_t1_c24,
++ arm_r_r7_t1_c24,
++ arm_r_r8_t1_c24,
++ arm_r_r9_t1_c24,
++ arm_r_r10_t1_c24,
++ arm_r_r11_t1_c24,
++ arm_r_r12_t1_c24,
++ arm_r_r13_t1_c24,
++ arm_r_r14_t1_c24,
++ arm_r_r15_t1_c24,
++ arm_r_r0_t2_c24,
++ arm_r_r1_t2_c24,
++ arm_r_r2_t2_c24,
++ arm_r_r3_t2_c24,
++ arm_r_r4_t2_c24,
++ arm_r_r5_t2_c24,
++ arm_r_r6_t2_c24,
++ arm_r_r7_t2_c24,
++ arm_r_r8_t2_c24,
++ arm_r_r9_t2_c24,
++ arm_r_r10_t2_c24,
++ arm_r_r11_t2_c24,
++ arm_r_r12_t2_c24,
++ arm_r_r13_t2_c24,
++ arm_r_r14_t2_c24,
++ arm_r_r15_t2_c24,
++ arm_r_r0_t3_c24,
++ arm_r_r1_t3_c24,
++ arm_r_r2_t3_c24,
++ arm_r_r3_t3_c24,
++ arm_r_r4_t3_c24,
++ arm_r_r5_t3_c24,
++ arm_r_r6_t3_c24,
++ arm_r_r7_t3_c24,
++ arm_r_r8_t3_c24,
++ arm_r_r9_t3_c24,
++ arm_r_r10_t3_c24,
++ arm_r_r11_t3_c24,
++ arm_r_r12_t3_c24,
++ arm_r_r13_t3_c24,
++ arm_r_r14_t3_c24,
++ arm_r_r15_t3_c24,
++ arm_r_r0_t4_c24,
++ arm_r_r1_t4_c24,
++ arm_r_r2_t4_c24,
++ arm_r_r3_t4_c24,
++ arm_r_r4_t4_c24,
++ arm_r_r5_t4_c24,
++ arm_r_r6_t4_c24,
++ arm_r_r7_t4_c24,
++ arm_r_r8_t4_c24,
++ arm_r_r9_t4_c24,
++ arm_r_r10_t4_c24,
++ arm_r_r11_t4_c24,
++ arm_r_r12_t4_c24,
++ arm_r_r13_t4_c24,
++ arm_r_r14_t4_c24,
++ arm_r_r15_t4_c24,
++ arm_r_r0_t5_c24,
++ arm_r_r1_t5_c24,
++ arm_r_r2_t5_c24,
++ arm_r_r3_t5_c24,
++ arm_r_r4_t5_c24,
++ arm_r_r5_t5_c24,
++ arm_r_r6_t5_c24,
++ arm_r_r7_t5_c24,
++ arm_r_r8_t5_c24,
++ arm_r_r9_t5_c24,
++ arm_r_r10_t5_c24,
++ arm_r_r11_t5_c24,
++ arm_r_r12_t5_c24,
++ arm_r_r13_t5_c24,
++ arm_r_r14_t5_c24,
++ arm_r_r15_t5_c24,
++ arm_r_r0_t6_c24,
++ arm_r_r1_t6_c24,
++ arm_r_r2_t6_c24,
++ arm_r_r3_t6_c24,
++ arm_r_r4_t6_c24,
++ arm_r_r5_t6_c24,
++ arm_r_r6_t6_c24,
++ arm_r_r7_t6_c24,
++ arm_r_r8_t6_c24,
++ arm_r_r9_t6_c24,
++ arm_r_r10_t6_c24,
++ arm_r_r11_t6_c24,
++ arm_r_r12_t6_c24,
++ arm_r_r13_t6_c24,
++ arm_r_r14_t6_c24,
++ arm_r_r15_t6_c24,
++ arm_r_r0_t7_c24,
++ arm_r_r1_t7_c24,
++ arm_r_r2_t7_c24,
++ arm_r_r3_t7_c24,
++ arm_r_r4_t7_c24,
++ arm_r_r5_t7_c24,
++ arm_r_r6_t7_c24,
++ arm_r_r7_t7_c24,
++ arm_r_r8_t7_c24,
++ arm_r_r9_t7_c24,
++ arm_r_r10_t7_c24,
++ arm_r_r11_t7_c24,
++ arm_r_r12_t7_c24,
++ arm_r_r13_t7_c24,
++ arm_r_r14_t7_c24,
++ arm_r_r15_t7_c24,
++ arm_r_r0_t0_c25,
++ arm_r_r1_t0_c25,
++ arm_r_r2_t0_c25,
++ arm_r_r3_t0_c25,
++ arm_r_r4_t0_c25,
++ arm_r_r5_t0_c25,
++ arm_r_r6_t0_c25,
++ arm_r_r7_t0_c25,
++ arm_r_r8_t0_c25,
++ arm_r_r9_t0_c25,
++ arm_r_r10_t0_c25,
++ arm_r_r11_t0_c25,
++ arm_r_r12_t0_c25,
++ arm_r_r13_t0_c25,
++ arm_r_r14_t0_c25,
++ arm_r_r15_t0_c25,
++ arm_r_r0_t1_c25,
++ arm_r_r1_t1_c25,
++ arm_r_r2_t1_c25,
++ arm_r_r3_t1_c25,
++ arm_r_r4_t1_c25,
++ arm_r_r5_t1_c25,
++ arm_r_r6_t1_c25,
++ arm_r_r7_t1_c25,
++ arm_r_r8_t1_c25,
++ arm_r_r9_t1_c25,
++ arm_r_r10_t1_c25,
++ arm_r_r11_t1_c25,
++ arm_r_r12_t1_c25,
++ arm_r_r13_t1_c25,
++ arm_r_r14_t1_c25,
++ arm_r_r15_t1_c25,
++ arm_r_r0_t2_c25,
++ arm_r_r1_t2_c25,
++ arm_r_r2_t2_c25,
++ arm_r_r3_t2_c25,
++ arm_r_r4_t2_c25,
++ arm_r_r5_t2_c25,
++ arm_r_r6_t2_c25,
++ arm_r_r7_t2_c25,
++ arm_r_r8_t2_c25,
++ arm_r_r9_t2_c25,
++ arm_r_r10_t2_c25,
++ arm_r_r11_t2_c25,
++ arm_r_r12_t2_c25,
++ arm_r_r13_t2_c25,
++ arm_r_r14_t2_c25,
++ arm_r_r15_t2_c25,
++ arm_r_r0_t3_c25,
++ arm_r_r1_t3_c25,
++ arm_r_r2_t3_c25,
++ arm_r_r3_t3_c25,
++ arm_r_r4_t3_c25,
++ arm_r_r5_t3_c25,
++ arm_r_r6_t3_c25,
++ arm_r_r7_t3_c25,
++ arm_r_r8_t3_c25,
++ arm_r_r9_t3_c25,
++ arm_r_r10_t3_c25,
++ arm_r_r11_t3_c25,
++ arm_r_r12_t3_c25,
++ arm_r_r13_t3_c25,
++ arm_r_r14_t3_c25,
++ arm_r_r15_t3_c25,
++ arm_r_r0_t4_c25,
++ arm_r_r1_t4_c25,
++ arm_r_r2_t4_c25,
++ arm_r_r3_t4_c25,
++ arm_r_r4_t4_c25,
++ arm_r_r5_t4_c25,
++ arm_r_r6_t4_c25,
++ arm_r_r7_t4_c25,
++ arm_r_r8_t4_c25,
++ arm_r_r9_t4_c25,
++ arm_r_r10_t4_c25,
++ arm_r_r11_t4_c25,
++ arm_r_r12_t4_c25,
++ arm_r_r13_t4_c25,
++ arm_r_r14_t4_c25,
++ arm_r_r15_t4_c25,
++ arm_r_r0_t5_c25,
++ arm_r_r1_t5_c25,
++ arm_r_r2_t5_c25,
++ arm_r_r3_t5_c25,
++ arm_r_r4_t5_c25,
++ arm_r_r5_t5_c25,
++ arm_r_r6_t5_c25,
++ arm_r_r7_t5_c25,
++ arm_r_r8_t5_c25,
++ arm_r_r9_t5_c25,
++ arm_r_r10_t5_c25,
++ arm_r_r11_t5_c25,
++ arm_r_r12_t5_c25,
++ arm_r_r13_t5_c25,
++ arm_r_r14_t5_c25,
++ arm_r_r15_t5_c25,
++ arm_r_r0_t6_c25,
++ arm_r_r1_t6_c25,
++ arm_r_r2_t6_c25,
++ arm_r_r3_t6_c25,
++ arm_r_r4_t6_c25,
++ arm_r_r5_t6_c25,
++ arm_r_r6_t6_c25,
++ arm_r_r7_t6_c25,
++ arm_r_r8_t6_c25,
++ arm_r_r9_t6_c25,
++ arm_r_r10_t6_c25,
++ arm_r_r11_t6_c25,
++ arm_r_r12_t6_c25,
++ arm_r_r13_t6_c25,
++ arm_r_r14_t6_c25,
++ arm_r_r15_t6_c25,
++ arm_r_r0_t7_c25,
++ arm_r_r1_t7_c25,
++ arm_r_r2_t7_c25,
++ arm_r_r3_t7_c25,
++ arm_r_r4_t7_c25,
++ arm_r_r5_t7_c25,
++ arm_r_r6_t7_c25,
++ arm_r_r7_t7_c25,
++ arm_r_r8_t7_c25,
++ arm_r_r9_t7_c25,
++ arm_r_r10_t7_c25,
++ arm_r_r11_t7_c25,
++ arm_r_r12_t7_c25,
++ arm_r_r13_t7_c25,
++ arm_r_r14_t7_c25,
++ arm_r_r15_t7_c25,
++ arm_r_r0_t0_c26,
++ arm_r_r1_t0_c26,
++ arm_r_r2_t0_c26,
++ arm_r_r3_t0_c26,
++ arm_r_r4_t0_c26,
++ arm_r_r5_t0_c26,
++ arm_r_r6_t0_c26,
++ arm_r_r7_t0_c26,
++ arm_r_r8_t0_c26,
++ arm_r_r9_t0_c26,
++ arm_r_r10_t0_c26,
++ arm_r_r11_t0_c26,
++ arm_r_r12_t0_c26,
++ arm_r_r13_t0_c26,
++ arm_r_r14_t0_c26,
++ arm_r_r15_t0_c26,
++ arm_r_r0_t1_c26,
++ arm_r_r1_t1_c26,
++ arm_r_r2_t1_c26,
++ arm_r_r3_t1_c26,
++ arm_r_r4_t1_c26,
++ arm_r_r5_t1_c26,
++ arm_r_r6_t1_c26,
++ arm_r_r7_t1_c26,
++ arm_r_r8_t1_c26,
++ arm_r_r9_t1_c26,
++ arm_r_r10_t1_c26,
++ arm_r_r11_t1_c26,
++ arm_r_r12_t1_c26,
++ arm_r_r13_t1_c26,
++ arm_r_r14_t1_c26,
++ arm_r_r15_t1_c26,
++ arm_r_r0_t2_c26,
++ arm_r_r1_t2_c26,
++ arm_r_r2_t2_c26,
++ arm_r_r3_t2_c26,
++ arm_r_r4_t2_c26,
++ arm_r_r5_t2_c26,
++ arm_r_r6_t2_c26,
++ arm_r_r7_t2_c26,
++ arm_r_r8_t2_c26,
++ arm_r_r9_t2_c26,
++ arm_r_r10_t2_c26,
++ arm_r_r11_t2_c26,
++ arm_r_r12_t2_c26,
++ arm_r_r13_t2_c26,
++ arm_r_r14_t2_c26,
++ arm_r_r15_t2_c26,
++ arm_r_r0_t3_c26,
++ arm_r_r1_t3_c26,
++ arm_r_r2_t3_c26,
++ arm_r_r3_t3_c26,
++ arm_r_r4_t3_c26,
++ arm_r_r5_t3_c26,
++ arm_r_r6_t3_c26,
++ arm_r_r7_t3_c26,
++ arm_r_r8_t3_c26,
++ arm_r_r9_t3_c26,
++ arm_r_r10_t3_c26,
++ arm_r_r11_t3_c26,
++ arm_r_r12_t3_c26,
++ arm_r_r13_t3_c26,
++ arm_r_r14_t3_c26,
++ arm_r_r15_t3_c26,
++ arm_r_r0_t4_c26,
++ arm_r_r1_t4_c26,
++ arm_r_r2_t4_c26,
++ arm_r_r3_t4_c26,
++ arm_r_r4_t4_c26,
++ arm_r_r5_t4_c26,
++ arm_r_r6_t4_c26,
++ arm_r_r7_t4_c26,
++ arm_r_r8_t4_c26,
++ arm_r_r9_t4_c26,
++ arm_r_r10_t4_c26,
++ arm_r_r11_t4_c26,
++ arm_r_r12_t4_c26,
++ arm_r_r13_t4_c26,
++ arm_r_r14_t4_c26,
++ arm_r_r15_t4_c26,
++ arm_r_r0_t5_c26,
++ arm_r_r1_t5_c26,
++ arm_r_r2_t5_c26,
++ arm_r_r3_t5_c26,
++ arm_r_r4_t5_c26,
++ arm_r_r5_t5_c26,
++ arm_r_r6_t5_c26,
++ arm_r_r7_t5_c26,
++ arm_r_r8_t5_c26,
++ arm_r_r9_t5_c26,
++ arm_r_r10_t5_c26,
++ arm_r_r11_t5_c26,
++ arm_r_r12_t5_c26,
++ arm_r_r13_t5_c26,
++ arm_r_r14_t5_c26,
++ arm_r_r15_t5_c26,
++ arm_r_r0_t6_c26,
++ arm_r_r1_t6_c26,
++ arm_r_r2_t6_c26,
++ arm_r_r3_t6_c26,
++ arm_r_r4_t6_c26,
++ arm_r_r5_t6_c26,
++ arm_r_r6_t6_c26,
++ arm_r_r7_t6_c26,
++ arm_r_r8_t6_c26,
++ arm_r_r9_t6_c26,
++ arm_r_r10_t6_c26,
++ arm_r_r11_t6_c26,
++ arm_r_r12_t6_c26,
++ arm_r_r13_t6_c26,
++ arm_r_r14_t6_c26,
++ arm_r_r15_t6_c26,
++ arm_r_r0_t7_c26,
++ arm_r_r1_t7_c26,
++ arm_r_r2_t7_c26,
++ arm_r_r3_t7_c26,
++ arm_r_r4_t7_c26,
++ arm_r_r5_t7_c26,
++ arm_r_r6_t7_c26,
++ arm_r_r7_t7_c26,
++ arm_r_r8_t7_c26,
++ arm_r_r9_t7_c26,
++ arm_r_r10_t7_c26,
++ arm_r_r11_t7_c26,
++ arm_r_r12_t7_c26,
++ arm_r_r13_t7_c26,
++ arm_r_r14_t7_c26,
++ arm_r_r15_t7_c26,
++ arm_r_r0_t0_c27,
++ arm_r_r1_t0_c27,
++ arm_r_r2_t0_c27,
++ arm_r_r3_t0_c27,
++ arm_r_r4_t0_c27,
++ arm_r_r5_t0_c27,
++ arm_r_r6_t0_c27,
++ arm_r_r7_t0_c27,
++ arm_r_r8_t0_c27,
++ arm_r_r9_t0_c27,
++ arm_r_r10_t0_c27,
++ arm_r_r11_t0_c27,
++ arm_r_r12_t0_c27,
++ arm_r_r13_t0_c27,
++ arm_r_r14_t0_c27,
++ arm_r_r15_t0_c27,
++ arm_r_r0_t1_c27,
++ arm_r_r1_t1_c27,
++ arm_r_r2_t1_c27,
++ arm_r_r3_t1_c27,
++ arm_r_r4_t1_c27,
++ arm_r_r5_t1_c27,
++ arm_r_r6_t1_c27,
++ arm_r_r7_t1_c27,
++ arm_r_r8_t1_c27,
++ arm_r_r9_t1_c27,
++ arm_r_r10_t1_c27,
++ arm_r_r11_t1_c27,
++ arm_r_r12_t1_c27,
++ arm_r_r13_t1_c27,
++ arm_r_r14_t1_c27,
++ arm_r_r15_t1_c27,
++ arm_r_r0_t2_c27,
++ arm_r_r1_t2_c27,
++ arm_r_r2_t2_c27,
++ arm_r_r3_t2_c27,
++ arm_r_r4_t2_c27,
++ arm_r_r5_t2_c27,
++ arm_r_r6_t2_c27,
++ arm_r_r7_t2_c27,
++ arm_r_r8_t2_c27,
++ arm_r_r9_t2_c27,
++ arm_r_r10_t2_c27,
++ arm_r_r11_t2_c27,
++ arm_r_r12_t2_c27,
++ arm_r_r13_t2_c27,
++ arm_r_r14_t2_c27,
++ arm_r_r15_t2_c27,
++ arm_r_r0_t3_c27,
++ arm_r_r1_t3_c27,
++ arm_r_r2_t3_c27,
++ arm_r_r3_t3_c27,
++ arm_r_r4_t3_c27,
++ arm_r_r5_t3_c27,
++ arm_r_r6_t3_c27,
++ arm_r_r7_t3_c27,
++ arm_r_r8_t3_c27,
++ arm_r_r9_t3_c27,
++ arm_r_r10_t3_c27,
++ arm_r_r11_t3_c27,
++ arm_r_r12_t3_c27,
++ arm_r_r13_t3_c27,
++ arm_r_r14_t3_c27,
++ arm_r_r15_t3_c27,
++ arm_r_r0_t4_c27,
++ arm_r_r1_t4_c27,
++ arm_r_r2_t4_c27,
++ arm_r_r3_t4_c27,
++ arm_r_r4_t4_c27,
++ arm_r_r5_t4_c27,
++ arm_r_r6_t4_c27,
++ arm_r_r7_t4_c27,
++ arm_r_r8_t4_c27,
++ arm_r_r9_t4_c27,
++ arm_r_r10_t4_c27,
++ arm_r_r11_t4_c27,
++ arm_r_r12_t4_c27,
++ arm_r_r13_t4_c27,
++ arm_r_r14_t4_c27,
++ arm_r_r15_t4_c27,
++ arm_r_r0_t5_c27,
++ arm_r_r1_t5_c27,
++ arm_r_r2_t5_c27,
++ arm_r_r3_t5_c27,
++ arm_r_r4_t5_c27,
++ arm_r_r5_t5_c27,
++ arm_r_r6_t5_c27,
++ arm_r_r7_t5_c27,
++ arm_r_r8_t5_c27,
++ arm_r_r9_t5_c27,
++ arm_r_r10_t5_c27,
++ arm_r_r11_t5_c27,
++ arm_r_r12_t5_c27,
++ arm_r_r13_t5_c27,
++ arm_r_r14_t5_c27,
++ arm_r_r15_t5_c27,
++ arm_r_r0_t6_c27,
++ arm_r_r1_t6_c27,
++ arm_r_r2_t6_c27,
++ arm_r_r3_t6_c27,
++ arm_r_r4_t6_c27,
++ arm_r_r5_t6_c27,
++ arm_r_r6_t6_c27,
++ arm_r_r7_t6_c27,
++ arm_r_r8_t6_c27,
++ arm_r_r9_t6_c27,
++ arm_r_r10_t6_c27,
++ arm_r_r11_t6_c27,
++ arm_r_r12_t6_c27,
++ arm_r_r13_t6_c27,
++ arm_r_r14_t6_c27,
++ arm_r_r15_t6_c27,
++ arm_r_r0_t7_c27,
++ arm_r_r1_t7_c27,
++ arm_r_r2_t7_c27,
++ arm_r_r3_t7_c27,
++ arm_r_r4_t7_c27,
++ arm_r_r5_t7_c27,
++ arm_r_r6_t7_c27,
++ arm_r_r7_t7_c27,
++ arm_r_r8_t7_c27,
++ arm_r_r9_t7_c27,
++ arm_r_r10_t7_c27,
++ arm_r_r11_t7_c27,
++ arm_r_r12_t7_c27,
++ arm_r_r13_t7_c27,
++ arm_r_r14_t7_c27,
++ arm_r_r15_t7_c27,
++ arm_r_r0_t0_c28,
++ arm_r_r1_t0_c28,
++ arm_r_r2_t0_c28,
++ arm_r_r3_t0_c28,
++ arm_r_r4_t0_c28,
++ arm_r_r5_t0_c28,
++ arm_r_r6_t0_c28,
++ arm_r_r7_t0_c28,
++ arm_r_r8_t0_c28,
++ arm_r_r9_t0_c28,
++ arm_r_r10_t0_c28,
++ arm_r_r11_t0_c28,
++ arm_r_r12_t0_c28,
++ arm_r_r13_t0_c28,
++ arm_r_r14_t0_c28,
++ arm_r_r15_t0_c28,
++ arm_r_r0_t1_c28,
++ arm_r_r1_t1_c28,
++ arm_r_r2_t1_c28,
++ arm_r_r3_t1_c28,
++ arm_r_r4_t1_c28,
++ arm_r_r5_t1_c28,
++ arm_r_r6_t1_c28,
++ arm_r_r7_t1_c28,
++ arm_r_r8_t1_c28,
++ arm_r_r9_t1_c28,
++ arm_r_r10_t1_c28,
++ arm_r_r11_t1_c28,
++ arm_r_r12_t1_c28,
++ arm_r_r13_t1_c28,
++ arm_r_r14_t1_c28,
++ arm_r_r15_t1_c28,
++ arm_r_r0_t2_c28,
++ arm_r_r1_t2_c28,
++ arm_r_r2_t2_c28,
++ arm_r_r3_t2_c28,
++ arm_r_r4_t2_c28,
++ arm_r_r5_t2_c28,
++ arm_r_r6_t2_c28,
++ arm_r_r7_t2_c28,
++ arm_r_r8_t2_c28,
++ arm_r_r9_t2_c28,
++ arm_r_r10_t2_c28,
++ arm_r_r11_t2_c28,
++ arm_r_r12_t2_c28,
++ arm_r_r13_t2_c28,
++ arm_r_r14_t2_c28,
++ arm_r_r15_t2_c28,
++ arm_r_r0_t3_c28,
++ arm_r_r1_t3_c28,
++ arm_r_r2_t3_c28,
++ arm_r_r3_t3_c28,
++ arm_r_r4_t3_c28,
++ arm_r_r5_t3_c28,
++ arm_r_r6_t3_c28,
++ arm_r_r7_t3_c28,
++ arm_r_r8_t3_c28,
++ arm_r_r9_t3_c28,
++ arm_r_r10_t3_c28,
++ arm_r_r11_t3_c28,
++ arm_r_r12_t3_c28,
++ arm_r_r13_t3_c28,
++ arm_r_r14_t3_c28,
++ arm_r_r15_t3_c28,
++ arm_r_r0_t4_c28,
++ arm_r_r1_t4_c28,
++ arm_r_r2_t4_c28,
++ arm_r_r3_t4_c28,
++ arm_r_r4_t4_c28,
++ arm_r_r5_t4_c28,
++ arm_r_r6_t4_c28,
++ arm_r_r7_t4_c28,
++ arm_r_r8_t4_c28,
++ arm_r_r9_t4_c28,
++ arm_r_r10_t4_c28,
++ arm_r_r11_t4_c28,
++ arm_r_r12_t4_c28,
++ arm_r_r13_t4_c28,
++ arm_r_r14_t4_c28,
++ arm_r_r15_t4_c28,
++ arm_r_r0_t5_c28,
++ arm_r_r1_t5_c28,
++ arm_r_r2_t5_c28,
++ arm_r_r3_t5_c28,
++ arm_r_r4_t5_c28,
++ arm_r_r5_t5_c28,
++ arm_r_r6_t5_c28,
++ arm_r_r7_t5_c28,
++ arm_r_r8_t5_c28,
++ arm_r_r9_t5_c28,
++ arm_r_r10_t5_c28,
++ arm_r_r11_t5_c28,
++ arm_r_r12_t5_c28,
++ arm_r_r13_t5_c28,
++ arm_r_r14_t5_c28,
++ arm_r_r15_t5_c28,
++ arm_r_r0_t6_c28,
++ arm_r_r1_t6_c28,
++ arm_r_r2_t6_c28,
++ arm_r_r3_t6_c28,
++ arm_r_r4_t6_c28,
++ arm_r_r5_t6_c28,
++ arm_r_r6_t6_c28,
++ arm_r_r7_t6_c28,
++ arm_r_r8_t6_c28,
++ arm_r_r9_t6_c28,
++ arm_r_r10_t6_c28,
++ arm_r_r11_t6_c28,
++ arm_r_r12_t6_c28,
++ arm_r_r13_t6_c28,
++ arm_r_r14_t6_c28,
++ arm_r_r15_t6_c28,
++ arm_r_r0_t7_c28,
++ arm_r_r1_t7_c28,
++ arm_r_r2_t7_c28,
++ arm_r_r3_t7_c28,
++ arm_r_r4_t7_c28,
++ arm_r_r5_t7_c28,
++ arm_r_r6_t7_c28,
++ arm_r_r7_t7_c28,
++ arm_r_r8_t7_c28,
++ arm_r_r9_t7_c28,
++ arm_r_r10_t7_c28,
++ arm_r_r11_t7_c28,
++ arm_r_r12_t7_c28,
++ arm_r_r13_t7_c28,
++ arm_r_r14_t7_c28,
++ arm_r_r15_t7_c28,
++ arm_r_r0_t0_c29,
++ arm_r_r1_t0_c29,
++ arm_r_r2_t0_c29,
++ arm_r_r3_t0_c29,
++ arm_r_r4_t0_c29,
++ arm_r_r5_t0_c29,
++ arm_r_r6_t0_c29,
++ arm_r_r7_t0_c29,
++ arm_r_r8_t0_c29,
++ arm_r_r9_t0_c29,
++ arm_r_r10_t0_c29,
++ arm_r_r11_t0_c29,
++ arm_r_r12_t0_c29,
++ arm_r_r13_t0_c29,
++ arm_r_r14_t0_c29,
++ arm_r_r15_t0_c29,
++ arm_r_r0_t1_c29,
++ arm_r_r1_t1_c29,
++ arm_r_r2_t1_c29,
++ arm_r_r3_t1_c29,
++ arm_r_r4_t1_c29,
++ arm_r_r5_t1_c29,
++ arm_r_r6_t1_c29,
++ arm_r_r7_t1_c29,
++ arm_r_r8_t1_c29,
++ arm_r_r9_t1_c29,
++ arm_r_r10_t1_c29,
++ arm_r_r11_t1_c29,
++ arm_r_r12_t1_c29,
++ arm_r_r13_t1_c29,
++ arm_r_r14_t1_c29,
++ arm_r_r15_t1_c29,
++ arm_r_r0_t2_c29,
++ arm_r_r1_t2_c29,
++ arm_r_r2_t2_c29,
++ arm_r_r3_t2_c29,
++ arm_r_r4_t2_c29,
++ arm_r_r5_t2_c29,
++ arm_r_r6_t2_c29,
++ arm_r_r7_t2_c29,
++ arm_r_r8_t2_c29,
++ arm_r_r9_t2_c29,
++ arm_r_r10_t2_c29,
++ arm_r_r11_t2_c29,
++ arm_r_r12_t2_c29,
++ arm_r_r13_t2_c29,
++ arm_r_r14_t2_c29,
++ arm_r_r15_t2_c29,
++ arm_r_r0_t3_c29,
++ arm_r_r1_t3_c29,
++ arm_r_r2_t3_c29,
++ arm_r_r3_t3_c29,
++ arm_r_r4_t3_c29,
++ arm_r_r5_t3_c29,
++ arm_r_r6_t3_c29,
++ arm_r_r7_t3_c29,
++ arm_r_r8_t3_c29,
++ arm_r_r9_t3_c29,
++ arm_r_r10_t3_c29,
++ arm_r_r11_t3_c29,
++ arm_r_r12_t3_c29,
++ arm_r_r13_t3_c29,
++ arm_r_r14_t3_c29,
++ arm_r_r15_t3_c29,
++ arm_r_r0_t4_c29,
++ arm_r_r1_t4_c29,
++ arm_r_r2_t4_c29,
++ arm_r_r3_t4_c29,
++ arm_r_r4_t4_c29,
++ arm_r_r5_t4_c29,
++ arm_r_r6_t4_c29,
++ arm_r_r7_t4_c29,
++ arm_r_r8_t4_c29,
++ arm_r_r9_t4_c29,
++ arm_r_r10_t4_c29,
++ arm_r_r11_t4_c29,
++ arm_r_r12_t4_c29,
++ arm_r_r13_t4_c29,
++ arm_r_r14_t4_c29,
++ arm_r_r15_t4_c29,
++ arm_r_r0_t5_c29,
++ arm_r_r1_t5_c29,
++ arm_r_r2_t5_c29,
++ arm_r_r3_t5_c29,
++ arm_r_r4_t5_c29,
++ arm_r_r5_t5_c29,
++ arm_r_r6_t5_c29,
++ arm_r_r7_t5_c29,
++ arm_r_r8_t5_c29,
++ arm_r_r9_t5_c29,
++ arm_r_r10_t5_c29,
++ arm_r_r11_t5_c29,
++ arm_r_r12_t5_c29,
++ arm_r_r13_t5_c29,
++ arm_r_r14_t5_c29,
++ arm_r_r15_t5_c29,
++ arm_r_r0_t6_c29,
++ arm_r_r1_t6_c29,
++ arm_r_r2_t6_c29,
++ arm_r_r3_t6_c29,
++ arm_r_r4_t6_c29,
++ arm_r_r5_t6_c29,
++ arm_r_r6_t6_c29,
++ arm_r_r7_t6_c29,
++ arm_r_r8_t6_c29,
++ arm_r_r9_t6_c29,
++ arm_r_r10_t6_c29,
++ arm_r_r11_t6_c29,
++ arm_r_r12_t6_c29,
++ arm_r_r13_t6_c29,
++ arm_r_r14_t6_c29,
++ arm_r_r15_t6_c29,
++ arm_r_r0_t7_c29,
++ arm_r_r1_t7_c29,
++ arm_r_r2_t7_c29,
++ arm_r_r3_t7_c29,
++ arm_r_r4_t7_c29,
++ arm_r_r5_t7_c29,
++ arm_r_r6_t7_c29,
++ arm_r_r7_t7_c29,
++ arm_r_r8_t7_c29,
++ arm_r_r9_t7_c29,
++ arm_r_r10_t7_c29,
++ arm_r_r11_t7_c29,
++ arm_r_r12_t7_c29,
++ arm_r_r13_t7_c29,
++ arm_r_r14_t7_c29,
++ arm_r_r15_t7_c29,
++ arm_r_r0_t0_c30,
++ arm_r_r1_t0_c30,
++ arm_r_r2_t0_c30,
++ arm_r_r3_t0_c30,
++ arm_r_r4_t0_c30,
++ arm_r_r5_t0_c30,
++ arm_r_r6_t0_c30,
++ arm_r_r7_t0_c30,
++ arm_r_r8_t0_c30,
++ arm_r_r9_t0_c30,
++ arm_r_r10_t0_c30,
++ arm_r_r11_t0_c30,
++ arm_r_r12_t0_c30,
++ arm_r_r13_t0_c30,
++ arm_r_r14_t0_c30,
++ arm_r_r15_t0_c30,
++ arm_r_r0_t1_c30,
++ arm_r_r1_t1_c30,
++ arm_r_r2_t1_c30,
++ arm_r_r3_t1_c30,
++ arm_r_r4_t1_c30,
++ arm_r_r5_t1_c30,
++ arm_r_r6_t1_c30,
++ arm_r_r7_t1_c30,
++ arm_r_r8_t1_c30,
++ arm_r_r9_t1_c30,
++ arm_r_r10_t1_c30,
++ arm_r_r11_t1_c30,
++ arm_r_r12_t1_c30,
++ arm_r_r13_t1_c30,
++ arm_r_r14_t1_c30,
++ arm_r_r15_t1_c30,
++ arm_r_r0_t2_c30,
++ arm_r_r1_t2_c30,
++ arm_r_r2_t2_c30,
++ arm_r_r3_t2_c30,
++ arm_r_r4_t2_c30,
++ arm_r_r5_t2_c30,
++ arm_r_r6_t2_c30,
++ arm_r_r7_t2_c30,
++ arm_r_r8_t2_c30,
++ arm_r_r9_t2_c30,
++ arm_r_r10_t2_c30,
++ arm_r_r11_t2_c30,
++ arm_r_r12_t2_c30,
++ arm_r_r13_t2_c30,
++ arm_r_r14_t2_c30,
++ arm_r_r15_t2_c30,
++ arm_r_r0_t3_c30,
++ arm_r_r1_t3_c30,
++ arm_r_r2_t3_c30,
++ arm_r_r3_t3_c30,
++ arm_r_r4_t3_c30,
++ arm_r_r5_t3_c30,
++ arm_r_r6_t3_c30,
++ arm_r_r7_t3_c30,
++ arm_r_r8_t3_c30,
++ arm_r_r9_t3_c30,
++ arm_r_r10_t3_c30,
++ arm_r_r11_t3_c30,
++ arm_r_r12_t3_c30,
++ arm_r_r13_t3_c30,
++ arm_r_r14_t3_c30,
++ arm_r_r15_t3_c30,
++ arm_r_r0_t4_c30,
++ arm_r_r1_t4_c30,
++ arm_r_r2_t4_c30,
++ arm_r_r3_t4_c30,
++ arm_r_r4_t4_c30,
++ arm_r_r5_t4_c30,
++ arm_r_r6_t4_c30,
++ arm_r_r7_t4_c30,
++ arm_r_r8_t4_c30,
++ arm_r_r9_t4_c30,
++ arm_r_r10_t4_c30,
++ arm_r_r11_t4_c30,
++ arm_r_r12_t4_c30,
++ arm_r_r13_t4_c30,
++ arm_r_r14_t4_c30,
++ arm_r_r15_t4_c30,
++ arm_r_r0_t5_c30,
++ arm_r_r1_t5_c30,
++ arm_r_r2_t5_c30,
++ arm_r_r3_t5_c30,
++ arm_r_r4_t5_c30,
++ arm_r_r5_t5_c30,
++ arm_r_r6_t5_c30,
++ arm_r_r7_t5_c30,
++ arm_r_r8_t5_c30,
++ arm_r_r9_t5_c30,
++ arm_r_r10_t5_c30,
++ arm_r_r11_t5_c30,
++ arm_r_r12_t5_c30,
++ arm_r_r13_t5_c30,
++ arm_r_r14_t5_c30,
++ arm_r_r15_t5_c30,
++ arm_r_r0_t6_c30,
++ arm_r_r1_t6_c30,
++ arm_r_r2_t6_c30,
++ arm_r_r3_t6_c30,
++ arm_r_r4_t6_c30,
++ arm_r_r5_t6_c30,
++ arm_r_r6_t6_c30,
++ arm_r_r7_t6_c30,
++ arm_r_r8_t6_c30,
++ arm_r_r9_t6_c30,
++ arm_r_r10_t6_c30,
++ arm_r_r11_t6_c30,
++ arm_r_r12_t6_c30,
++ arm_r_r13_t6_c30,
++ arm_r_r14_t6_c30,
++ arm_r_r15_t6_c30,
++ arm_r_r0_t7_c30,
++ arm_r_r1_t7_c30,
++ arm_r_r2_t7_c30,
++ arm_r_r3_t7_c30,
++ arm_r_r4_t7_c30,
++ arm_r_r5_t7_c30,
++ arm_r_r6_t7_c30,
++ arm_r_r7_t7_c30,
++ arm_r_r8_t7_c30,
++ arm_r_r9_t7_c30,
++ arm_r_r10_t7_c30,
++ arm_r_r11_t7_c30,
++ arm_r_r12_t7_c30,
++ arm_r_r13_t7_c30,
++ arm_r_r14_t7_c30,
++ arm_r_r15_t7_c30,
++ arm_r_r0_t0_c31,
++ arm_r_r1_t0_c31,
++ arm_r_r2_t0_c31,
++ arm_r_r3_t0_c31,
++ arm_r_r4_t0_c31,
++ arm_r_r5_t0_c31,
++ arm_r_r6_t0_c31,
++ arm_r_r7_t0_c31,
++ arm_r_r8_t0_c31,
++ arm_r_r9_t0_c31,
++ arm_r_r10_t0_c31,
++ arm_r_r11_t0_c31,
++ arm_r_r12_t0_c31,
++ arm_r_r13_t0_c31,
++ arm_r_r14_t0_c31,
++ arm_r_r15_t0_c31,
++ arm_r_r0_t1_c31,
++ arm_r_r1_t1_c31,
++ arm_r_r2_t1_c31,
++ arm_r_r3_t1_c31,
++ arm_r_r4_t1_c31,
++ arm_r_r5_t1_c31,
++ arm_r_r6_t1_c31,
++ arm_r_r7_t1_c31,
++ arm_r_r8_t1_c31,
++ arm_r_r9_t1_c31,
++ arm_r_r10_t1_c31,
++ arm_r_r11_t1_c31,
++ arm_r_r12_t1_c31,
++ arm_r_r13_t1_c31,
++ arm_r_r14_t1_c31,
++ arm_r_r15_t1_c31,
++ arm_r_r0_t2_c31,
++ arm_r_r1_t2_c31,
++ arm_r_r2_t2_c31,
++ arm_r_r3_t2_c31,
++ arm_r_r4_t2_c31,
++ arm_r_r5_t2_c31,
++ arm_r_r6_t2_c31,
++ arm_r_r7_t2_c31,
++ arm_r_r8_t2_c31,
++ arm_r_r9_t2_c31,
++ arm_r_r10_t2_c31,
++ arm_r_r11_t2_c31,
++ arm_r_r12_t2_c31,
++ arm_r_r13_t2_c31,
++ arm_r_r14_t2_c31,
++ arm_r_r15_t2_c31,
++ arm_r_r0_t3_c31,
++ arm_r_r1_t3_c31,
++ arm_r_r2_t3_c31,
++ arm_r_r3_t3_c31,
++ arm_r_r4_t3_c31,
++ arm_r_r5_t3_c31,
++ arm_r_r6_t3_c31,
++ arm_r_r7_t3_c31,
++ arm_r_r8_t3_c31,
++ arm_r_r9_t3_c31,
++ arm_r_r10_t3_c31,
++ arm_r_r11_t3_c31,
++ arm_r_r12_t3_c31,
++ arm_r_r13_t3_c31,
++ arm_r_r14_t3_c31,
++ arm_r_r15_t3_c31,
++ arm_r_r0_t4_c31,
++ arm_r_r1_t4_c31,
++ arm_r_r2_t4_c31,
++ arm_r_r3_t4_c31,
++ arm_r_r4_t4_c31,
++ arm_r_r5_t4_c31,
++ arm_r_r6_t4_c31,
++ arm_r_r7_t4_c31,
++ arm_r_r8_t4_c31,
++ arm_r_r9_t4_c31,
++ arm_r_r10_t4_c31,
++ arm_r_r11_t4_c31,
++ arm_r_r12_t4_c31,
++ arm_r_r13_t4_c31,
++ arm_r_r14_t4_c31,
++ arm_r_r15_t4_c31,
++ arm_r_r0_t5_c31,
++ arm_r_r1_t5_c31,
++ arm_r_r2_t5_c31,
++ arm_r_r3_t5_c31,
++ arm_r_r4_t5_c31,
++ arm_r_r5_t5_c31,
++ arm_r_r6_t5_c31,
++ arm_r_r7_t5_c31,
++ arm_r_r8_t5_c31,
++ arm_r_r9_t5_c31,
++ arm_r_r10_t5_c31,
++ arm_r_r11_t5_c31,
++ arm_r_r12_t5_c31,
++ arm_r_r13_t5_c31,
++ arm_r_r14_t5_c31,
++ arm_r_r15_t5_c31,
++ arm_r_r0_t6_c31,
++ arm_r_r1_t6_c31,
++ arm_r_r2_t6_c31,
++ arm_r_r3_t6_c31,
++ arm_r_r4_t6_c31,
++ arm_r_r5_t6_c31,
++ arm_r_r6_t6_c31,
++ arm_r_r7_t6_c31,
++ arm_r_r8_t6_c31,
++ arm_r_r9_t6_c31,
++ arm_r_r10_t6_c31,
++ arm_r_r11_t6_c31,
++ arm_r_r12_t6_c31,
++ arm_r_r13_t6_c31,
++ arm_r_r14_t6_c31,
++ arm_r_r15_t6_c31,
++ arm_r_r0_t7_c31,
++ arm_r_r1_t7_c31,
++ arm_r_r2_t7_c31,
++ arm_r_r3_t7_c31,
++ arm_r_r4_t7_c31,
++ arm_r_r5_t7_c31,
++ arm_r_r6_t7_c31,
++ arm_r_r7_t7_c31,
++ arm_r_r8_t7_c31,
++ arm_r_r9_t7_c31,
++ arm_r_r10_t7_c31,
++ arm_r_r11_t7_c31,
++ arm_r_r12_t7_c31,
++ arm_r_r13_t7_c31,
++ arm_r_r14_t7_c31,
++ arm_r_r15_t7_c31,
++ arm_rs_r0_t0_c0,
++ arm_rs_r1_t0_c0,
++ arm_rs_r2_t0_c0,
++ arm_rs_r3_t0_c0,
++ arm_rs_r4_t0_c0,
++ arm_rs_r5_t0_c0,
++ arm_rs_r6_t0_c0,
++ arm_rs_r7_t0_c0,
++ arm_rs_r8_t0_c0,
++ arm_rs_r9_t0_c0,
++ arm_rs_r10_t0_c0,
++ arm_rs_r11_t0_c0,
++ arm_rs_r12_t0_c0,
++ arm_rs_r13_t0_c0,
++ arm_rs_r14_t0_c0,
++ arm_rs_r15_t0_c0,
++ arm_rs_r0_t1_c0,
++ arm_rs_r1_t1_c0,
++ arm_rs_r2_t1_c0,
++ arm_rs_r3_t1_c0,
++ arm_rs_r4_t1_c0,
++ arm_rs_r5_t1_c0,
++ arm_rs_r6_t1_c0,
++ arm_rs_r7_t1_c0,
++ arm_rs_r8_t1_c0,
++ arm_rs_r9_t1_c0,
++ arm_rs_r10_t1_c0,
++ arm_rs_r11_t1_c0,
++ arm_rs_r12_t1_c0,
++ arm_rs_r13_t1_c0,
++ arm_rs_r14_t1_c0,
++ arm_rs_r15_t1_c0,
++ arm_rs_r0_t2_c0,
++ arm_rs_r1_t2_c0,
++ arm_rs_r2_t2_c0,
++ arm_rs_r3_t2_c0,
++ arm_rs_r4_t2_c0,
++ arm_rs_r5_t2_c0,
++ arm_rs_r6_t2_c0,
++ arm_rs_r7_t2_c0,
++ arm_rs_r8_t2_c0,
++ arm_rs_r9_t2_c0,
++ arm_rs_r10_t2_c0,
++ arm_rs_r11_t2_c0,
++ arm_rs_r12_t2_c0,
++ arm_rs_r13_t2_c0,
++ arm_rs_r14_t2_c0,
++ arm_rs_r15_t2_c0,
++ arm_rs_r0_t3_c0,
++ arm_rs_r1_t3_c0,
++ arm_rs_r2_t3_c0,
++ arm_rs_r3_t3_c0,
++ arm_rs_r4_t3_c0,
++ arm_rs_r5_t3_c0,
++ arm_rs_r6_t3_c0,
++ arm_rs_r7_t3_c0,
++ arm_rs_r8_t3_c0,
++ arm_rs_r9_t3_c0,
++ arm_rs_r10_t3_c0,
++ arm_rs_r11_t3_c0,
++ arm_rs_r12_t3_c0,
++ arm_rs_r13_t3_c0,
++ arm_rs_r14_t3_c0,
++ arm_rs_r15_t3_c0,
++ arm_rs_r0_t4_c0,
++ arm_rs_r1_t4_c0,
++ arm_rs_r2_t4_c0,
++ arm_rs_r3_t4_c0,
++ arm_rs_r4_t4_c0,
++ arm_rs_r5_t4_c0,
++ arm_rs_r6_t4_c0,
++ arm_rs_r7_t4_c0,
++ arm_rs_r8_t4_c0,
++ arm_rs_r9_t4_c0,
++ arm_rs_r10_t4_c0,
++ arm_rs_r11_t4_c0,
++ arm_rs_r12_t4_c0,
++ arm_rs_r13_t4_c0,
++ arm_rs_r14_t4_c0,
++ arm_rs_r15_t4_c0,
++ arm_rs_r0_t5_c0,
++ arm_rs_r1_t5_c0,
++ arm_rs_r2_t5_c0,
++ arm_rs_r3_t5_c0,
++ arm_rs_r4_t5_c0,
++ arm_rs_r5_t5_c0,
++ arm_rs_r6_t5_c0,
++ arm_rs_r7_t5_c0,
++ arm_rs_r8_t5_c0,
++ arm_rs_r9_t5_c0,
++ arm_rs_r10_t5_c0,
++ arm_rs_r11_t5_c0,
++ arm_rs_r12_t5_c0,
++ arm_rs_r13_t5_c0,
++ arm_rs_r14_t5_c0,
++ arm_rs_r15_t5_c0,
++ arm_rs_r0_t6_c0,
++ arm_rs_r1_t6_c0,
++ arm_rs_r2_t6_c0,
++ arm_rs_r3_t6_c0,
++ arm_rs_r4_t6_c0,
++ arm_rs_r5_t6_c0,
++ arm_rs_r6_t6_c0,
++ arm_rs_r7_t6_c0,
++ arm_rs_r8_t6_c0,
++ arm_rs_r9_t6_c0,
++ arm_rs_r10_t6_c0,
++ arm_rs_r11_t6_c0,
++ arm_rs_r12_t6_c0,
++ arm_rs_r13_t6_c0,
++ arm_rs_r14_t6_c0,
++ arm_rs_r15_t6_c0,
++ arm_rs_r0_t7_c0,
++ arm_rs_r1_t7_c0,
++ arm_rs_r2_t7_c0,
++ arm_rs_r3_t7_c0,
++ arm_rs_r4_t7_c0,
++ arm_rs_r5_t7_c0,
++ arm_rs_r6_t7_c0,
++ arm_rs_r7_t7_c0,
++ arm_rs_r8_t7_c0,
++ arm_rs_r9_t7_c0,
++ arm_rs_r10_t7_c0,
++ arm_rs_r11_t7_c0,
++ arm_rs_r12_t7_c0,
++ arm_rs_r13_t7_c0,
++ arm_rs_r14_t7_c0,
++ arm_rs_r15_t7_c0,
++ arm_rs_r0_t0_c1,
++ arm_rs_r1_t0_c1,
++ arm_rs_r2_t0_c1,
++ arm_rs_r3_t0_c1,
++ arm_rs_r4_t0_c1,
++ arm_rs_r5_t0_c1,
++ arm_rs_r6_t0_c1,
++ arm_rs_r7_t0_c1,
++ arm_rs_r8_t0_c1,
++ arm_rs_r9_t0_c1,
++ arm_rs_r10_t0_c1,
++ arm_rs_r11_t0_c1,
++ arm_rs_r12_t0_c1,
++ arm_rs_r13_t0_c1,
++ arm_rs_r14_t0_c1,
++ arm_rs_r15_t0_c1,
++ arm_rs_r0_t1_c1,
++ arm_rs_r1_t1_c1,
++ arm_rs_r2_t1_c1,
++ arm_rs_r3_t1_c1,
++ arm_rs_r4_t1_c1,
++ arm_rs_r5_t1_c1,
++ arm_rs_r6_t1_c1,
++ arm_rs_r7_t1_c1,
++ arm_rs_r8_t1_c1,
++ arm_rs_r9_t1_c1,
++ arm_rs_r10_t1_c1,
++ arm_rs_r11_t1_c1,
++ arm_rs_r12_t1_c1,
++ arm_rs_r13_t1_c1,
++ arm_rs_r14_t1_c1,
++ arm_rs_r15_t1_c1,
++ arm_rs_r0_t2_c1,
++ arm_rs_r1_t2_c1,
++ arm_rs_r2_t2_c1,
++ arm_rs_r3_t2_c1,
++ arm_rs_r4_t2_c1,
++ arm_rs_r5_t2_c1,
++ arm_rs_r6_t2_c1,
++ arm_rs_r7_t2_c1,
++ arm_rs_r8_t2_c1,
++ arm_rs_r9_t2_c1,
++ arm_rs_r10_t2_c1,
++ arm_rs_r11_t2_c1,
++ arm_rs_r12_t2_c1,
++ arm_rs_r13_t2_c1,
++ arm_rs_r14_t2_c1,
++ arm_rs_r15_t2_c1,
++ arm_rs_r0_t3_c1,
++ arm_rs_r1_t3_c1,
++ arm_rs_r2_t3_c1,
++ arm_rs_r3_t3_c1,
++ arm_rs_r4_t3_c1,
++ arm_rs_r5_t3_c1,
++ arm_rs_r6_t3_c1,
++ arm_rs_r7_t3_c1,
++ arm_rs_r8_t3_c1,
++ arm_rs_r9_t3_c1,
++ arm_rs_r10_t3_c1,
++ arm_rs_r11_t3_c1,
++ arm_rs_r12_t3_c1,
++ arm_rs_r13_t3_c1,
++ arm_rs_r14_t3_c1,
++ arm_rs_r15_t3_c1,
++ arm_rs_r0_t4_c1,
++ arm_rs_r1_t4_c1,
++ arm_rs_r2_t4_c1,
++ arm_rs_r3_t4_c1,
++ arm_rs_r4_t4_c1,
++ arm_rs_r5_t4_c1,
++ arm_rs_r6_t4_c1,
++ arm_rs_r7_t4_c1,
++ arm_rs_r8_t4_c1,
++ arm_rs_r9_t4_c1,
++ arm_rs_r10_t4_c1,
++ arm_rs_r11_t4_c1,
++ arm_rs_r12_t4_c1,
++ arm_rs_r13_t4_c1,
++ arm_rs_r14_t4_c1,
++ arm_rs_r15_t4_c1,
++ arm_rs_r0_t5_c1,
++ arm_rs_r1_t5_c1,
++ arm_rs_r2_t5_c1,
++ arm_rs_r3_t5_c1,
++ arm_rs_r4_t5_c1,
++ arm_rs_r5_t5_c1,
++ arm_rs_r6_t5_c1,
++ arm_rs_r7_t5_c1,
++ arm_rs_r8_t5_c1,
++ arm_rs_r9_t5_c1,
++ arm_rs_r10_t5_c1,
++ arm_rs_r11_t5_c1,
++ arm_rs_r12_t5_c1,
++ arm_rs_r13_t5_c1,
++ arm_rs_r14_t5_c1,
++ arm_rs_r15_t5_c1,
++ arm_rs_r0_t6_c1,
++ arm_rs_r1_t6_c1,
++ arm_rs_r2_t6_c1,
++ arm_rs_r3_t6_c1,
++ arm_rs_r4_t6_c1,
++ arm_rs_r5_t6_c1,
++ arm_rs_r6_t6_c1,
++ arm_rs_r7_t6_c1,
++ arm_rs_r8_t6_c1,
++ arm_rs_r9_t6_c1,
++ arm_rs_r10_t6_c1,
++ arm_rs_r11_t6_c1,
++ arm_rs_r12_t6_c1,
++ arm_rs_r13_t6_c1,
++ arm_rs_r14_t6_c1,
++ arm_rs_r15_t6_c1,
++ arm_rs_r0_t7_c1,
++ arm_rs_r1_t7_c1,
++ arm_rs_r2_t7_c1,
++ arm_rs_r3_t7_c1,
++ arm_rs_r4_t7_c1,
++ arm_rs_r5_t7_c1,
++ arm_rs_r6_t7_c1,
++ arm_rs_r7_t7_c1,
++ arm_rs_r8_t7_c1,
++ arm_rs_r9_t7_c1,
++ arm_rs_r10_t7_c1,
++ arm_rs_r11_t7_c1,
++ arm_rs_r12_t7_c1,
++ arm_rs_r13_t7_c1,
++ arm_rs_r14_t7_c1,
++ arm_rs_r15_t7_c1,
++ arm_rs_r0_t0_c2,
++ arm_rs_r1_t0_c2,
++ arm_rs_r2_t0_c2,
++ arm_rs_r3_t0_c2,
++ arm_rs_r4_t0_c2,
++ arm_rs_r5_t0_c2,
++ arm_rs_r6_t0_c2,
++ arm_rs_r7_t0_c2,
++ arm_rs_r8_t0_c2,
++ arm_rs_r9_t0_c2,
++ arm_rs_r10_t0_c2,
++ arm_rs_r11_t0_c2,
++ arm_rs_r12_t0_c2,
++ arm_rs_r13_t0_c2,
++ arm_rs_r14_t0_c2,
++ arm_rs_r15_t0_c2,
++ arm_rs_r0_t1_c2,
++ arm_rs_r1_t1_c2,
++ arm_rs_r2_t1_c2,
++ arm_rs_r3_t1_c2,
++ arm_rs_r4_t1_c2,
++ arm_rs_r5_t1_c2,
++ arm_rs_r6_t1_c2,
++ arm_rs_r7_t1_c2,
++ arm_rs_r8_t1_c2,
++ arm_rs_r9_t1_c2,
++ arm_rs_r10_t1_c2,
++ arm_rs_r11_t1_c2,
++ arm_rs_r12_t1_c2,
++ arm_rs_r13_t1_c2,
++ arm_rs_r14_t1_c2,
++ arm_rs_r15_t1_c2,
++ arm_rs_r0_t2_c2,
++ arm_rs_r1_t2_c2,
++ arm_rs_r2_t2_c2,
++ arm_rs_r3_t2_c2,
++ arm_rs_r4_t2_c2,
++ arm_rs_r5_t2_c2,
++ arm_rs_r6_t2_c2,
++ arm_rs_r7_t2_c2,
++ arm_rs_r8_t2_c2,
++ arm_rs_r9_t2_c2,
++ arm_rs_r10_t2_c2,
++ arm_rs_r11_t2_c2,
++ arm_rs_r12_t2_c2,
++ arm_rs_r13_t2_c2,
++ arm_rs_r14_t2_c2,
++ arm_rs_r15_t2_c2,
++ arm_rs_r0_t3_c2,
++ arm_rs_r1_t3_c2,
++ arm_rs_r2_t3_c2,
++ arm_rs_r3_t3_c2,
++ arm_rs_r4_t3_c2,
++ arm_rs_r5_t3_c2,
++ arm_rs_r6_t3_c2,
++ arm_rs_r7_t3_c2,
++ arm_rs_r8_t3_c2,
++ arm_rs_r9_t3_c2,
++ arm_rs_r10_t3_c2,
++ arm_rs_r11_t3_c2,
++ arm_rs_r12_t3_c2,
++ arm_rs_r13_t3_c2,
++ arm_rs_r14_t3_c2,
++ arm_rs_r15_t3_c2,
++ arm_rs_r0_t4_c2,
++ arm_rs_r1_t4_c2,
++ arm_rs_r2_t4_c2,
++ arm_rs_r3_t4_c2,
++ arm_rs_r4_t4_c2,
++ arm_rs_r5_t4_c2,
++ arm_rs_r6_t4_c2,
++ arm_rs_r7_t4_c2,
++ arm_rs_r8_t4_c2,
++ arm_rs_r9_t4_c2,
++ arm_rs_r10_t4_c2,
++ arm_rs_r11_t4_c2,
++ arm_rs_r12_t4_c2,
++ arm_rs_r13_t4_c2,
++ arm_rs_r14_t4_c2,
++ arm_rs_r15_t4_c2,
++ arm_rs_r0_t5_c2,
++ arm_rs_r1_t5_c2,
++ arm_rs_r2_t5_c2,
++ arm_rs_r3_t5_c2,
++ arm_rs_r4_t5_c2,
++ arm_rs_r5_t5_c2,
++ arm_rs_r6_t5_c2,
++ arm_rs_r7_t5_c2,
++ arm_rs_r8_t5_c2,
++ arm_rs_r9_t5_c2,
++ arm_rs_r10_t5_c2,
++ arm_rs_r11_t5_c2,
++ arm_rs_r12_t5_c2,
++ arm_rs_r13_t5_c2,
++ arm_rs_r14_t5_c2,
++ arm_rs_r15_t5_c2,
++ arm_rs_r0_t6_c2,
++ arm_rs_r1_t6_c2,
++ arm_rs_r2_t6_c2,
++ arm_rs_r3_t6_c2,
++ arm_rs_r4_t6_c2,
++ arm_rs_r5_t6_c2,
++ arm_rs_r6_t6_c2,
++ arm_rs_r7_t6_c2,
++ arm_rs_r8_t6_c2,
++ arm_rs_r9_t6_c2,
++ arm_rs_r10_t6_c2,
++ arm_rs_r11_t6_c2,
++ arm_rs_r12_t6_c2,
++ arm_rs_r13_t6_c2,
++ arm_rs_r14_t6_c2,
++ arm_rs_r15_t6_c2,
++ arm_rs_r0_t7_c2,
++ arm_rs_r1_t7_c2,
++ arm_rs_r2_t7_c2,
++ arm_rs_r3_t7_c2,
++ arm_rs_r4_t7_c2,
++ arm_rs_r5_t7_c2,
++ arm_rs_r6_t7_c2,
++ arm_rs_r7_t7_c2,
++ arm_rs_r8_t7_c2,
++ arm_rs_r9_t7_c2,
++ arm_rs_r10_t7_c2,
++ arm_rs_r11_t7_c2,
++ arm_rs_r12_t7_c2,
++ arm_rs_r13_t7_c2,
++ arm_rs_r14_t7_c2,
++ arm_rs_r15_t7_c2,
++ arm_rs_r0_t0_c3,
++ arm_rs_r1_t0_c3,
++ arm_rs_r2_t0_c3,
++ arm_rs_r3_t0_c3,
++ arm_rs_r4_t0_c3,
++ arm_rs_r5_t0_c3,
++ arm_rs_r6_t0_c3,
++ arm_rs_r7_t0_c3,
++ arm_rs_r8_t0_c3,
++ arm_rs_r9_t0_c3,
++ arm_rs_r10_t0_c3,
++ arm_rs_r11_t0_c3,
++ arm_rs_r12_t0_c3,
++ arm_rs_r13_t0_c3,
++ arm_rs_r14_t0_c3,
++ arm_rs_r15_t0_c3,
++ arm_rs_r0_t1_c3,
++ arm_rs_r1_t1_c3,
++ arm_rs_r2_t1_c3,
++ arm_rs_r3_t1_c3,
++ arm_rs_r4_t1_c3,
++ arm_rs_r5_t1_c3,
++ arm_rs_r6_t1_c3,
++ arm_rs_r7_t1_c3,
++ arm_rs_r8_t1_c3,
++ arm_rs_r9_t1_c3,
++ arm_rs_r10_t1_c3,
++ arm_rs_r11_t1_c3,
++ arm_rs_r12_t1_c3,
++ arm_rs_r13_t1_c3,
++ arm_rs_r14_t1_c3,
++ arm_rs_r15_t1_c3,
++ arm_rs_r0_t2_c3,
++ arm_rs_r1_t2_c3,
++ arm_rs_r2_t2_c3,
++ arm_rs_r3_t2_c3,
++ arm_rs_r4_t2_c3,
++ arm_rs_r5_t2_c3,
++ arm_rs_r6_t2_c3,
++ arm_rs_r7_t2_c3,
++ arm_rs_r8_t2_c3,
++ arm_rs_r9_t2_c3,
++ arm_rs_r10_t2_c3,
++ arm_rs_r11_t2_c3,
++ arm_rs_r12_t2_c3,
++ arm_rs_r13_t2_c3,
++ arm_rs_r14_t2_c3,
++ arm_rs_r15_t2_c3,
++ arm_rs_r0_t3_c3,
++ arm_rs_r1_t3_c3,
++ arm_rs_r2_t3_c3,
++ arm_rs_r3_t3_c3,
++ arm_rs_r4_t3_c3,
++ arm_rs_r5_t3_c3,
++ arm_rs_r6_t3_c3,
++ arm_rs_r7_t3_c3,
++ arm_rs_r8_t3_c3,
++ arm_rs_r9_t3_c3,
++ arm_rs_r10_t3_c3,
++ arm_rs_r11_t3_c3,
++ arm_rs_r12_t3_c3,
++ arm_rs_r13_t3_c3,
++ arm_rs_r14_t3_c3,
++ arm_rs_r15_t3_c3,
++ arm_rs_r0_t4_c3,
++ arm_rs_r1_t4_c3,
++ arm_rs_r2_t4_c3,
++ arm_rs_r3_t4_c3,
++ arm_rs_r4_t4_c3,
++ arm_rs_r5_t4_c3,
++ arm_rs_r6_t4_c3,
++ arm_rs_r7_t4_c3,
++ arm_rs_r8_t4_c3,
++ arm_rs_r9_t4_c3,
++ arm_rs_r10_t4_c3,
++ arm_rs_r11_t4_c3,
++ arm_rs_r12_t4_c3,
++ arm_rs_r13_t4_c3,
++ arm_rs_r14_t4_c3,
++ arm_rs_r15_t4_c3,
++ arm_rs_r0_t5_c3,
++ arm_rs_r1_t5_c3,
++ arm_rs_r2_t5_c3,
++ arm_rs_r3_t5_c3,
++ arm_rs_r4_t5_c3,
++ arm_rs_r5_t5_c3,
++ arm_rs_r6_t5_c3,
++ arm_rs_r7_t5_c3,
++ arm_rs_r8_t5_c3,
++ arm_rs_r9_t5_c3,
++ arm_rs_r10_t5_c3,
++ arm_rs_r11_t5_c3,
++ arm_rs_r12_t5_c3,
++ arm_rs_r13_t5_c3,
++ arm_rs_r14_t5_c3,
++ arm_rs_r15_t5_c3,
++ arm_rs_r0_t6_c3,
++ arm_rs_r1_t6_c3,
++ arm_rs_r2_t6_c3,
++ arm_rs_r3_t6_c3,
++ arm_rs_r4_t6_c3,
++ arm_rs_r5_t6_c3,
++ arm_rs_r6_t6_c3,
++ arm_rs_r7_t6_c3,
++ arm_rs_r8_t6_c3,
++ arm_rs_r9_t6_c3,
++ arm_rs_r10_t6_c3,
++ arm_rs_r11_t6_c3,
++ arm_rs_r12_t6_c3,
++ arm_rs_r13_t6_c3,
++ arm_rs_r14_t6_c3,
++ arm_rs_r15_t6_c3,
++ arm_rs_r0_t7_c3,
++ arm_rs_r1_t7_c3,
++ arm_rs_r2_t7_c3,
++ arm_rs_r3_t7_c3,
++ arm_rs_r4_t7_c3,
++ arm_rs_r5_t7_c3,
++ arm_rs_r6_t7_c3,
++ arm_rs_r7_t7_c3,
++ arm_rs_r8_t7_c3,
++ arm_rs_r9_t7_c3,
++ arm_rs_r10_t7_c3,
++ arm_rs_r11_t7_c3,
++ arm_rs_r12_t7_c3,
++ arm_rs_r13_t7_c3,
++ arm_rs_r14_t7_c3,
++ arm_rs_r15_t7_c3,
++ arm_rs_r0_t0_c4,
++ arm_rs_r1_t0_c4,
++ arm_rs_r2_t0_c4,
++ arm_rs_r3_t0_c4,
++ arm_rs_r4_t0_c4,
++ arm_rs_r5_t0_c4,
++ arm_rs_r6_t0_c4,
++ arm_rs_r7_t0_c4,
++ arm_rs_r8_t0_c4,
++ arm_rs_r9_t0_c4,
++ arm_rs_r10_t0_c4,
++ arm_rs_r11_t0_c4,
++ arm_rs_r12_t0_c4,
++ arm_rs_r13_t0_c4,
++ arm_rs_r14_t0_c4,
++ arm_rs_r15_t0_c4,
++ arm_rs_r0_t1_c4,
++ arm_rs_r1_t1_c4,
++ arm_rs_r2_t1_c4,
++ arm_rs_r3_t1_c4,
++ arm_rs_r4_t1_c4,
++ arm_rs_r5_t1_c4,
++ arm_rs_r6_t1_c4,
++ arm_rs_r7_t1_c4,
++ arm_rs_r8_t1_c4,
++ arm_rs_r9_t1_c4,
++ arm_rs_r10_t1_c4,
++ arm_rs_r11_t1_c4,
++ arm_rs_r12_t1_c4,
++ arm_rs_r13_t1_c4,
++ arm_rs_r14_t1_c4,
++ arm_rs_r15_t1_c4,
++ arm_rs_r0_t2_c4,
++ arm_rs_r1_t2_c4,
++ arm_rs_r2_t2_c4,
++ arm_rs_r3_t2_c4,
++ arm_rs_r4_t2_c4,
++ arm_rs_r5_t2_c4,
++ arm_rs_r6_t2_c4,
++ arm_rs_r7_t2_c4,
++ arm_rs_r8_t2_c4,
++ arm_rs_r9_t2_c4,
++ arm_rs_r10_t2_c4,
++ arm_rs_r11_t2_c4,
++ arm_rs_r12_t2_c4,
++ arm_rs_r13_t2_c4,
++ arm_rs_r14_t2_c4,
++ arm_rs_r15_t2_c4,
++ arm_rs_r0_t3_c4,
++ arm_rs_r1_t3_c4,
++ arm_rs_r2_t3_c4,
++ arm_rs_r3_t3_c4,
++ arm_rs_r4_t3_c4,
++ arm_rs_r5_t3_c4,
++ arm_rs_r6_t3_c4,
++ arm_rs_r7_t3_c4,
++ arm_rs_r8_t3_c4,
++ arm_rs_r9_t3_c4,
++ arm_rs_r10_t3_c4,
++ arm_rs_r11_t3_c4,
++ arm_rs_r12_t3_c4,
++ arm_rs_r13_t3_c4,
++ arm_rs_r14_t3_c4,
++ arm_rs_r15_t3_c4,
++ arm_rs_r0_t4_c4,
++ arm_rs_r1_t4_c4,
++ arm_rs_r2_t4_c4,
++ arm_rs_r3_t4_c4,
++ arm_rs_r4_t4_c4,
++ arm_rs_r5_t4_c4,
++ arm_rs_r6_t4_c4,
++ arm_rs_r7_t4_c4,
++ arm_rs_r8_t4_c4,
++ arm_rs_r9_t4_c4,
++ arm_rs_r10_t4_c4,
++ arm_rs_r11_t4_c4,
++ arm_rs_r12_t4_c4,
++ arm_rs_r13_t4_c4,
++ arm_rs_r14_t4_c4,
++ arm_rs_r15_t4_c4,
++ arm_rs_r0_t5_c4,
++ arm_rs_r1_t5_c4,
++ arm_rs_r2_t5_c4,
++ arm_rs_r3_t5_c4,
++ arm_rs_r4_t5_c4,
++ arm_rs_r5_t5_c4,
++ arm_rs_r6_t5_c4,
++ arm_rs_r7_t5_c4,
++ arm_rs_r8_t5_c4,
++ arm_rs_r9_t5_c4,
++ arm_rs_r10_t5_c4,
++ arm_rs_r11_t5_c4,
++ arm_rs_r12_t5_c4,
++ arm_rs_r13_t5_c4,
++ arm_rs_r14_t5_c4,
++ arm_rs_r15_t5_c4,
++ arm_rs_r0_t6_c4,
++ arm_rs_r1_t6_c4,
++ arm_rs_r2_t6_c4,
++ arm_rs_r3_t6_c4,
++ arm_rs_r4_t6_c4,
++ arm_rs_r5_t6_c4,
++ arm_rs_r6_t6_c4,
++ arm_rs_r7_t6_c4,
++ arm_rs_r8_t6_c4,
++ arm_rs_r9_t6_c4,
++ arm_rs_r10_t6_c4,
++ arm_rs_r11_t6_c4,
++ arm_rs_r12_t6_c4,
++ arm_rs_r13_t6_c4,
++ arm_rs_r14_t6_c4,
++ arm_rs_r15_t6_c4,
++ arm_rs_r0_t7_c4,
++ arm_rs_r1_t7_c4,
++ arm_rs_r2_t7_c4,
++ arm_rs_r3_t7_c4,
++ arm_rs_r4_t7_c4,
++ arm_rs_r5_t7_c4,
++ arm_rs_r6_t7_c4,
++ arm_rs_r7_t7_c4,
++ arm_rs_r8_t7_c4,
++ arm_rs_r9_t7_c4,
++ arm_rs_r10_t7_c4,
++ arm_rs_r11_t7_c4,
++ arm_rs_r12_t7_c4,
++ arm_rs_r13_t7_c4,
++ arm_rs_r14_t7_c4,
++ arm_rs_r15_t7_c4,
++ arm_rs_r0_t0_c5,
++ arm_rs_r1_t0_c5,
++ arm_rs_r2_t0_c5,
++ arm_rs_r3_t0_c5,
++ arm_rs_r4_t0_c5,
++ arm_rs_r5_t0_c5,
++ arm_rs_r6_t0_c5,
++ arm_rs_r7_t0_c5,
++ arm_rs_r8_t0_c5,
++ arm_rs_r9_t0_c5,
++ arm_rs_r10_t0_c5,
++ arm_rs_r11_t0_c5,
++ arm_rs_r12_t0_c5,
++ arm_rs_r13_t0_c5,
++ arm_rs_r14_t0_c5,
++ arm_rs_r15_t0_c5,
++ arm_rs_r0_t1_c5,
++ arm_rs_r1_t1_c5,
++ arm_rs_r2_t1_c5,
++ arm_rs_r3_t1_c5,
++ arm_rs_r4_t1_c5,
++ arm_rs_r5_t1_c5,
++ arm_rs_r6_t1_c5,
++ arm_rs_r7_t1_c5,
++ arm_rs_r8_t1_c5,
++ arm_rs_r9_t1_c5,
++ arm_rs_r10_t1_c5,
++ arm_rs_r11_t1_c5,
++ arm_rs_r12_t1_c5,
++ arm_rs_r13_t1_c5,
++ arm_rs_r14_t1_c5,
++ arm_rs_r15_t1_c5,
++ arm_rs_r0_t2_c5,
++ arm_rs_r1_t2_c5,
++ arm_rs_r2_t2_c5,
++ arm_rs_r3_t2_c5,
++ arm_rs_r4_t2_c5,
++ arm_rs_r5_t2_c5,
++ arm_rs_r6_t2_c5,
++ arm_rs_r7_t2_c5,
++ arm_rs_r8_t2_c5,
++ arm_rs_r9_t2_c5,
++ arm_rs_r10_t2_c5,
++ arm_rs_r11_t2_c5,
++ arm_rs_r12_t2_c5,
++ arm_rs_r13_t2_c5,
++ arm_rs_r14_t2_c5,
++ arm_rs_r15_t2_c5,
++ arm_rs_r0_t3_c5,
++ arm_rs_r1_t3_c5,
++ arm_rs_r2_t3_c5,
++ arm_rs_r3_t3_c5,
++ arm_rs_r4_t3_c5,
++ arm_rs_r5_t3_c5,
++ arm_rs_r6_t3_c5,
++ arm_rs_r7_t3_c5,
++ arm_rs_r8_t3_c5,
++ arm_rs_r9_t3_c5,
++ arm_rs_r10_t3_c5,
++ arm_rs_r11_t3_c5,
++ arm_rs_r12_t3_c5,
++ arm_rs_r13_t3_c5,
++ arm_rs_r14_t3_c5,
++ arm_rs_r15_t3_c5,
++ arm_rs_r0_t4_c5,
++ arm_rs_r1_t4_c5,
++ arm_rs_r2_t4_c5,
++ arm_rs_r3_t4_c5,
++ arm_rs_r4_t4_c5,
++ arm_rs_r5_t4_c5,
++ arm_rs_r6_t4_c5,
++ arm_rs_r7_t4_c5,
++ arm_rs_r8_t4_c5,
++ arm_rs_r9_t4_c5,
++ arm_rs_r10_t4_c5,
++ arm_rs_r11_t4_c5,
++ arm_rs_r12_t4_c5,
++ arm_rs_r13_t4_c5,
++ arm_rs_r14_t4_c5,
++ arm_rs_r15_t4_c5,
++ arm_rs_r0_t5_c5,
++ arm_rs_r1_t5_c5,
++ arm_rs_r2_t5_c5,
++ arm_rs_r3_t5_c5,
++ arm_rs_r4_t5_c5,
++ arm_rs_r5_t5_c5,
++ arm_rs_r6_t5_c5,
++ arm_rs_r7_t5_c5,
++ arm_rs_r8_t5_c5,
++ arm_rs_r9_t5_c5,
++ arm_rs_r10_t5_c5,
++ arm_rs_r11_t5_c5,
++ arm_rs_r12_t5_c5,
++ arm_rs_r13_t5_c5,
++ arm_rs_r14_t5_c5,
++ arm_rs_r15_t5_c5,
++ arm_rs_r0_t6_c5,
++ arm_rs_r1_t6_c5,
++ arm_rs_r2_t6_c5,
++ arm_rs_r3_t6_c5,
++ arm_rs_r4_t6_c5,
++ arm_rs_r5_t6_c5,
++ arm_rs_r6_t6_c5,
++ arm_rs_r7_t6_c5,
++ arm_rs_r8_t6_c5,
++ arm_rs_r9_t6_c5,
++ arm_rs_r10_t6_c5,
++ arm_rs_r11_t6_c5,
++ arm_rs_r12_t6_c5,
++ arm_rs_r13_t6_c5,
++ arm_rs_r14_t6_c5,
++ arm_rs_r15_t6_c5,
++ arm_rs_r0_t7_c5,
++ arm_rs_r1_t7_c5,
++ arm_rs_r2_t7_c5,
++ arm_rs_r3_t7_c5,
++ arm_rs_r4_t7_c5,
++ arm_rs_r5_t7_c5,
++ arm_rs_r6_t7_c5,
++ arm_rs_r7_t7_c5,
++ arm_rs_r8_t7_c5,
++ arm_rs_r9_t7_c5,
++ arm_rs_r10_t7_c5,
++ arm_rs_r11_t7_c5,
++ arm_rs_r12_t7_c5,
++ arm_rs_r13_t7_c5,
++ arm_rs_r14_t7_c5,
++ arm_rs_r15_t7_c5,
++ arm_rs_r0_t0_c6,
++ arm_rs_r1_t0_c6,
++ arm_rs_r2_t0_c6,
++ arm_rs_r3_t0_c6,
++ arm_rs_r4_t0_c6,
++ arm_rs_r5_t0_c6,
++ arm_rs_r6_t0_c6,
++ arm_rs_r7_t0_c6,
++ arm_rs_r8_t0_c6,
++ arm_rs_r9_t0_c6,
++ arm_rs_r10_t0_c6,
++ arm_rs_r11_t0_c6,
++ arm_rs_r12_t0_c6,
++ arm_rs_r13_t0_c6,
++ arm_rs_r14_t0_c6,
++ arm_rs_r15_t0_c6,
++ arm_rs_r0_t1_c6,
++ arm_rs_r1_t1_c6,
++ arm_rs_r2_t1_c6,
++ arm_rs_r3_t1_c6,
++ arm_rs_r4_t1_c6,
++ arm_rs_r5_t1_c6,
++ arm_rs_r6_t1_c6,
++ arm_rs_r7_t1_c6,
++ arm_rs_r8_t1_c6,
++ arm_rs_r9_t1_c6,
++ arm_rs_r10_t1_c6,
++ arm_rs_r11_t1_c6,
++ arm_rs_r12_t1_c6,
++ arm_rs_r13_t1_c6,
++ arm_rs_r14_t1_c6,
++ arm_rs_r15_t1_c6,
++ arm_rs_r0_t2_c6,
++ arm_rs_r1_t2_c6,
++ arm_rs_r2_t2_c6,
++ arm_rs_r3_t2_c6,
++ arm_rs_r4_t2_c6,
++ arm_rs_r5_t2_c6,
++ arm_rs_r6_t2_c6,
++ arm_rs_r7_t2_c6,
++ arm_rs_r8_t2_c6,
++ arm_rs_r9_t2_c6,
++ arm_rs_r10_t2_c6,
++ arm_rs_r11_t2_c6,
++ arm_rs_r12_t2_c6,
++ arm_rs_r13_t2_c6,
++ arm_rs_r14_t2_c6,
++ arm_rs_r15_t2_c6,
++ arm_rs_r0_t3_c6,
++ arm_rs_r1_t3_c6,
++ arm_rs_r2_t3_c6,
++ arm_rs_r3_t3_c6,
++ arm_rs_r4_t3_c6,
++ arm_rs_r5_t3_c6,
++ arm_rs_r6_t3_c6,
++ arm_rs_r7_t3_c6,
++ arm_rs_r8_t3_c6,
++ arm_rs_r9_t3_c6,
++ arm_rs_r10_t3_c6,
++ arm_rs_r11_t3_c6,
++ arm_rs_r12_t3_c6,
++ arm_rs_r13_t3_c6,
++ arm_rs_r14_t3_c6,
++ arm_rs_r15_t3_c6,
++ arm_rs_r0_t4_c6,
++ arm_rs_r1_t4_c6,
++ arm_rs_r2_t4_c6,
++ arm_rs_r3_t4_c6,
++ arm_rs_r4_t4_c6,
++ arm_rs_r5_t4_c6,
++ arm_rs_r6_t4_c6,
++ arm_rs_r7_t4_c6,
++ arm_rs_r8_t4_c6,
++ arm_rs_r9_t4_c6,
++ arm_rs_r10_t4_c6,
++ arm_rs_r11_t4_c6,
++ arm_rs_r12_t4_c6,
++ arm_rs_r13_t4_c6,
++ arm_rs_r14_t4_c6,
++ arm_rs_r15_t4_c6,
++ arm_rs_r0_t5_c6,
++ arm_rs_r1_t5_c6,
++ arm_rs_r2_t5_c6,
++ arm_rs_r3_t5_c6,
++ arm_rs_r4_t5_c6,
++ arm_rs_r5_t5_c6,
++ arm_rs_r6_t5_c6,
++ arm_rs_r7_t5_c6,
++ arm_rs_r8_t5_c6,
++ arm_rs_r9_t5_c6,
++ arm_rs_r10_t5_c6,
++ arm_rs_r11_t5_c6,
++ arm_rs_r12_t5_c6,
++ arm_rs_r13_t5_c6,
++ arm_rs_r14_t5_c6,
++ arm_rs_r15_t5_c6,
++ arm_rs_r0_t6_c6,
++ arm_rs_r1_t6_c6,
++ arm_rs_r2_t6_c6,
++ arm_rs_r3_t6_c6,
++ arm_rs_r4_t6_c6,
++ arm_rs_r5_t6_c6,
++ arm_rs_r6_t6_c6,
++ arm_rs_r7_t6_c6,
++ arm_rs_r8_t6_c6,
++ arm_rs_r9_t6_c6,
++ arm_rs_r10_t6_c6,
++ arm_rs_r11_t6_c6,
++ arm_rs_r12_t6_c6,
++ arm_rs_r13_t6_c6,
++ arm_rs_r14_t6_c6,
++ arm_rs_r15_t6_c6,
++ arm_rs_r0_t7_c6,
++ arm_rs_r1_t7_c6,
++ arm_rs_r2_t7_c6,
++ arm_rs_r3_t7_c6,
++ arm_rs_r4_t7_c6,
++ arm_rs_r5_t7_c6,
++ arm_rs_r6_t7_c6,
++ arm_rs_r7_t7_c6,
++ arm_rs_r8_t7_c6,
++ arm_rs_r9_t7_c6,
++ arm_rs_r10_t7_c6,
++ arm_rs_r11_t7_c6,
++ arm_rs_r12_t7_c6,
++ arm_rs_r13_t7_c6,
++ arm_rs_r14_t7_c6,
++ arm_rs_r15_t7_c6,
++ arm_rs_r0_t0_c7,
++ arm_rs_r1_t0_c7,
++ arm_rs_r2_t0_c7,
++ arm_rs_r3_t0_c7,
++ arm_rs_r4_t0_c7,
++ arm_rs_r5_t0_c7,
++ arm_rs_r6_t0_c7,
++ arm_rs_r7_t0_c7,
++ arm_rs_r8_t0_c7,
++ arm_rs_r9_t0_c7,
++ arm_rs_r10_t0_c7,
++ arm_rs_r11_t0_c7,
++ arm_rs_r12_t0_c7,
++ arm_rs_r13_t0_c7,
++ arm_rs_r14_t0_c7,
++ arm_rs_r15_t0_c7,
++ arm_rs_r0_t1_c7,
++ arm_rs_r1_t1_c7,
++ arm_rs_r2_t1_c7,
++ arm_rs_r3_t1_c7,
++ arm_rs_r4_t1_c7,
++ arm_rs_r5_t1_c7,
++ arm_rs_r6_t1_c7,
++ arm_rs_r7_t1_c7,
++ arm_rs_r8_t1_c7,
++ arm_rs_r9_t1_c7,
++ arm_rs_r10_t1_c7,
++ arm_rs_r11_t1_c7,
++ arm_rs_r12_t1_c7,
++ arm_rs_r13_t1_c7,
++ arm_rs_r14_t1_c7,
++ arm_rs_r15_t1_c7,
++ arm_rs_r0_t2_c7,
++ arm_rs_r1_t2_c7,
++ arm_rs_r2_t2_c7,
++ arm_rs_r3_t2_c7,
++ arm_rs_r4_t2_c7,
++ arm_rs_r5_t2_c7,
++ arm_rs_r6_t2_c7,
++ arm_rs_r7_t2_c7,
++ arm_rs_r8_t2_c7,
++ arm_rs_r9_t2_c7,
++ arm_rs_r10_t2_c7,
++ arm_rs_r11_t2_c7,
++ arm_rs_r12_t2_c7,
++ arm_rs_r13_t2_c7,
++ arm_rs_r14_t2_c7,
++ arm_rs_r15_t2_c7,
++ arm_rs_r0_t3_c7,
++ arm_rs_r1_t3_c7,
++ arm_rs_r2_t3_c7,
++ arm_rs_r3_t3_c7,
++ arm_rs_r4_t3_c7,
++ arm_rs_r5_t3_c7,
++ arm_rs_r6_t3_c7,
++ arm_rs_r7_t3_c7,
++ arm_rs_r8_t3_c7,
++ arm_rs_r9_t3_c7,
++ arm_rs_r10_t3_c7,
++ arm_rs_r11_t3_c7,
++ arm_rs_r12_t3_c7,
++ arm_rs_r13_t3_c7,
++ arm_rs_r14_t3_c7,
++ arm_rs_r15_t3_c7,
++ arm_rs_r0_t4_c7,
++ arm_rs_r1_t4_c7,
++ arm_rs_r2_t4_c7,
++ arm_rs_r3_t4_c7,
++ arm_rs_r4_t4_c7,
++ arm_rs_r5_t4_c7,
++ arm_rs_r6_t4_c7,
++ arm_rs_r7_t4_c7,
++ arm_rs_r8_t4_c7,
++ arm_rs_r9_t4_c7,
++ arm_rs_r10_t4_c7,
++ arm_rs_r11_t4_c7,
++ arm_rs_r12_t4_c7,
++ arm_rs_r13_t4_c7,
++ arm_rs_r14_t4_c7,
++ arm_rs_r15_t4_c7,
++ arm_rs_r0_t5_c7,
++ arm_rs_r1_t5_c7,
++ arm_rs_r2_t5_c7,
++ arm_rs_r3_t5_c7,
++ arm_rs_r4_t5_c7,
++ arm_rs_r5_t5_c7,
++ arm_rs_r6_t5_c7,
++ arm_rs_r7_t5_c7,
++ arm_rs_r8_t5_c7,
++ arm_rs_r9_t5_c7,
++ arm_rs_r10_t5_c7,
++ arm_rs_r11_t5_c7,
++ arm_rs_r12_t5_c7,
++ arm_rs_r13_t5_c7,
++ arm_rs_r14_t5_c7,
++ arm_rs_r15_t5_c7,
++ arm_rs_r0_t6_c7,
++ arm_rs_r1_t6_c7,
++ arm_rs_r2_t6_c7,
++ arm_rs_r3_t6_c7,
++ arm_rs_r4_t6_c7,
++ arm_rs_r5_t6_c7,
++ arm_rs_r6_t6_c7,
++ arm_rs_r7_t6_c7,
++ arm_rs_r8_t6_c7,
++ arm_rs_r9_t6_c7,
++ arm_rs_r10_t6_c7,
++ arm_rs_r11_t6_c7,
++ arm_rs_r12_t6_c7,
++ arm_rs_r13_t6_c7,
++ arm_rs_r14_t6_c7,
++ arm_rs_r15_t6_c7,
++ arm_rs_r0_t7_c7,
++ arm_rs_r1_t7_c7,
++ arm_rs_r2_t7_c7,
++ arm_rs_r3_t7_c7,
++ arm_rs_r4_t7_c7,
++ arm_rs_r5_t7_c7,
++ arm_rs_r6_t7_c7,
++ arm_rs_r7_t7_c7,
++ arm_rs_r8_t7_c7,
++ arm_rs_r9_t7_c7,
++ arm_rs_r10_t7_c7,
++ arm_rs_r11_t7_c7,
++ arm_rs_r12_t7_c7,
++ arm_rs_r13_t7_c7,
++ arm_rs_r14_t7_c7,
++ arm_rs_r15_t7_c7,
++ arm_rs_r0_t0_c8,
++ arm_rs_r1_t0_c8,
++ arm_rs_r2_t0_c8,
++ arm_rs_r3_t0_c8,
++ arm_rs_r4_t0_c8,
++ arm_rs_r5_t0_c8,
++ arm_rs_r6_t0_c8,
++ arm_rs_r7_t0_c8,
++ arm_rs_r8_t0_c8,
++ arm_rs_r9_t0_c8,
++ arm_rs_r10_t0_c8,
++ arm_rs_r11_t0_c8,
++ arm_rs_r12_t0_c8,
++ arm_rs_r13_t0_c8,
++ arm_rs_r14_t0_c8,
++ arm_rs_r15_t0_c8,
++ arm_rs_r0_t1_c8,
++ arm_rs_r1_t1_c8,
++ arm_rs_r2_t1_c8,
++ arm_rs_r3_t1_c8,
++ arm_rs_r4_t1_c8,
++ arm_rs_r5_t1_c8,
++ arm_rs_r6_t1_c8,
++ arm_rs_r7_t1_c8,
++ arm_rs_r8_t1_c8,
++ arm_rs_r9_t1_c8,
++ arm_rs_r10_t1_c8,
++ arm_rs_r11_t1_c8,
++ arm_rs_r12_t1_c8,
++ arm_rs_r13_t1_c8,
++ arm_rs_r14_t1_c8,
++ arm_rs_r15_t1_c8,
++ arm_rs_r0_t2_c8,
++ arm_rs_r1_t2_c8,
++ arm_rs_r2_t2_c8,
++ arm_rs_r3_t2_c8,
++ arm_rs_r4_t2_c8,
++ arm_rs_r5_t2_c8,
++ arm_rs_r6_t2_c8,
++ arm_rs_r7_t2_c8,
++ arm_rs_r8_t2_c8,
++ arm_rs_r9_t2_c8,
++ arm_rs_r10_t2_c8,
++ arm_rs_r11_t2_c8,
++ arm_rs_r12_t2_c8,
++ arm_rs_r13_t2_c8,
++ arm_rs_r14_t2_c8,
++ arm_rs_r15_t2_c8,
++ arm_rs_r0_t3_c8,
++ arm_rs_r1_t3_c8,
++ arm_rs_r2_t3_c8,
++ arm_rs_r3_t3_c8,
++ arm_rs_r4_t3_c8,
++ arm_rs_r5_t3_c8,
++ arm_rs_r6_t3_c8,
++ arm_rs_r7_t3_c8,
++ arm_rs_r8_t3_c8,
++ arm_rs_r9_t3_c8,
++ arm_rs_r10_t3_c8,
++ arm_rs_r11_t3_c8,
++ arm_rs_r12_t3_c8,
++ arm_rs_r13_t3_c8,
++ arm_rs_r14_t3_c8,
++ arm_rs_r15_t3_c8,
++ arm_rs_r0_t4_c8,
++ arm_rs_r1_t4_c8,
++ arm_rs_r2_t4_c8,
++ arm_rs_r3_t4_c8,
++ arm_rs_r4_t4_c8,
++ arm_rs_r5_t4_c8,
++ arm_rs_r6_t4_c8,
++ arm_rs_r7_t4_c8,
++ arm_rs_r8_t4_c8,
++ arm_rs_r9_t4_c8,
++ arm_rs_r10_t4_c8,
++ arm_rs_r11_t4_c8,
++ arm_rs_r12_t4_c8,
++ arm_rs_r13_t4_c8,
++ arm_rs_r14_t4_c8,
++ arm_rs_r15_t4_c8,
++ arm_rs_r0_t5_c8,
++ arm_rs_r1_t5_c8,
++ arm_rs_r2_t5_c8,
++ arm_rs_r3_t5_c8,
++ arm_rs_r4_t5_c8,
++ arm_rs_r5_t5_c8,
++ arm_rs_r6_t5_c8,
++ arm_rs_r7_t5_c8,
++ arm_rs_r8_t5_c8,
++ arm_rs_r9_t5_c8,
++ arm_rs_r10_t5_c8,
++ arm_rs_r11_t5_c8,
++ arm_rs_r12_t5_c8,
++ arm_rs_r13_t5_c8,
++ arm_rs_r14_t5_c8,
++ arm_rs_r15_t5_c8,
++ arm_rs_r0_t6_c8,
++ arm_rs_r1_t6_c8,
++ arm_rs_r2_t6_c8,
++ arm_rs_r3_t6_c8,
++ arm_rs_r4_t6_c8,
++ arm_rs_r5_t6_c8,
++ arm_rs_r6_t6_c8,
++ arm_rs_r7_t6_c8,
++ arm_rs_r8_t6_c8,
++ arm_rs_r9_t6_c8,
++ arm_rs_r10_t6_c8,
++ arm_rs_r11_t6_c8,
++ arm_rs_r12_t6_c8,
++ arm_rs_r13_t6_c8,
++ arm_rs_r14_t6_c8,
++ arm_rs_r15_t6_c8,
++ arm_rs_r0_t7_c8,
++ arm_rs_r1_t7_c8,
++ arm_rs_r2_t7_c8,
++ arm_rs_r3_t7_c8,
++ arm_rs_r4_t7_c8,
++ arm_rs_r5_t7_c8,
++ arm_rs_r6_t7_c8,
++ arm_rs_r7_t7_c8,
++ arm_rs_r8_t7_c8,
++ arm_rs_r9_t7_c8,
++ arm_rs_r10_t7_c8,
++ arm_rs_r11_t7_c8,
++ arm_rs_r12_t7_c8,
++ arm_rs_r13_t7_c8,
++ arm_rs_r14_t7_c8,
++ arm_rs_r15_t7_c8,
++ arm_rs_r0_t0_c9,
++ arm_rs_r1_t0_c9,
++ arm_rs_r2_t0_c9,
++ arm_rs_r3_t0_c9,
++ arm_rs_r4_t0_c9,
++ arm_rs_r5_t0_c9,
++ arm_rs_r6_t0_c9,
++ arm_rs_r7_t0_c9,
++ arm_rs_r8_t0_c9,
++ arm_rs_r9_t0_c9,
++ arm_rs_r10_t0_c9,
++ arm_rs_r11_t0_c9,
++ arm_rs_r12_t0_c9,
++ arm_rs_r13_t0_c9,
++ arm_rs_r14_t0_c9,
++ arm_rs_r15_t0_c9,
++ arm_rs_r0_t1_c9,
++ arm_rs_r1_t1_c9,
++ arm_rs_r2_t1_c9,
++ arm_rs_r3_t1_c9,
++ arm_rs_r4_t1_c9,
++ arm_rs_r5_t1_c9,
++ arm_rs_r6_t1_c9,
++ arm_rs_r7_t1_c9,
++ arm_rs_r8_t1_c9,
++ arm_rs_r9_t1_c9,
++ arm_rs_r10_t1_c9,
++ arm_rs_r11_t1_c9,
++ arm_rs_r12_t1_c9,
++ arm_rs_r13_t1_c9,
++ arm_rs_r14_t1_c9,
++ arm_rs_r15_t1_c9,
++ arm_rs_r0_t2_c9,
++ arm_rs_r1_t2_c9,
++ arm_rs_r2_t2_c9,
++ arm_rs_r3_t2_c9,
++ arm_rs_r4_t2_c9,
++ arm_rs_r5_t2_c9,
++ arm_rs_r6_t2_c9,
++ arm_rs_r7_t2_c9,
++ arm_rs_r8_t2_c9,
++ arm_rs_r9_t2_c9,
++ arm_rs_r10_t2_c9,
++ arm_rs_r11_t2_c9,
++ arm_rs_r12_t2_c9,
++ arm_rs_r13_t2_c9,
++ arm_rs_r14_t2_c9,
++ arm_rs_r15_t2_c9,
++ arm_rs_r0_t3_c9,
++ arm_rs_r1_t3_c9,
++ arm_rs_r2_t3_c9,
++ arm_rs_r3_t3_c9,
++ arm_rs_r4_t3_c9,
++ arm_rs_r5_t3_c9,
++ arm_rs_r6_t3_c9,
++ arm_rs_r7_t3_c9,
++ arm_rs_r8_t3_c9,
++ arm_rs_r9_t3_c9,
++ arm_rs_r10_t3_c9,
++ arm_rs_r11_t3_c9,
++ arm_rs_r12_t3_c9,
++ arm_rs_r13_t3_c9,
++ arm_rs_r14_t3_c9,
++ arm_rs_r15_t3_c9,
++ arm_rs_r0_t4_c9,
++ arm_rs_r1_t4_c9,
++ arm_rs_r2_t4_c9,
++ arm_rs_r3_t4_c9,
++ arm_rs_r4_t4_c9,
++ arm_rs_r5_t4_c9,
++ arm_rs_r6_t4_c9,
++ arm_rs_r7_t4_c9,
++ arm_rs_r8_t4_c9,
++ arm_rs_r9_t4_c9,
++ arm_rs_r10_t4_c9,
++ arm_rs_r11_t4_c9,
++ arm_rs_r12_t4_c9,
++ arm_rs_r13_t4_c9,
++ arm_rs_r14_t4_c9,
++ arm_rs_r15_t4_c9,
++ arm_rs_r0_t5_c9,
++ arm_rs_r1_t5_c9,
++ arm_rs_r2_t5_c9,
++ arm_rs_r3_t5_c9,
++ arm_rs_r4_t5_c9,
++ arm_rs_r5_t5_c9,
++ arm_rs_r6_t5_c9,
++ arm_rs_r7_t5_c9,
++ arm_rs_r8_t5_c9,
++ arm_rs_r9_t5_c9,
++ arm_rs_r10_t5_c9,
++ arm_rs_r11_t5_c9,
++ arm_rs_r12_t5_c9,
++ arm_rs_r13_t5_c9,
++ arm_rs_r14_t5_c9,
++ arm_rs_r15_t5_c9,
++ arm_rs_r0_t6_c9,
++ arm_rs_r1_t6_c9,
++ arm_rs_r2_t6_c9,
++ arm_rs_r3_t6_c9,
++ arm_rs_r4_t6_c9,
++ arm_rs_r5_t6_c9,
++ arm_rs_r6_t6_c9,
++ arm_rs_r7_t6_c9,
++ arm_rs_r8_t6_c9,
++ arm_rs_r9_t6_c9,
++ arm_rs_r10_t6_c9,
++ arm_rs_r11_t6_c9,
++ arm_rs_r12_t6_c9,
++ arm_rs_r13_t6_c9,
++ arm_rs_r14_t6_c9,
++ arm_rs_r15_t6_c9,
++ arm_rs_r0_t7_c9,
++ arm_rs_r1_t7_c9,
++ arm_rs_r2_t7_c9,
++ arm_rs_r3_t7_c9,
++ arm_rs_r4_t7_c9,
++ arm_rs_r5_t7_c9,
++ arm_rs_r6_t7_c9,
++ arm_rs_r7_t7_c9,
++ arm_rs_r8_t7_c9,
++ arm_rs_r9_t7_c9,
++ arm_rs_r10_t7_c9,
++ arm_rs_r11_t7_c9,
++ arm_rs_r12_t7_c9,
++ arm_rs_r13_t7_c9,
++ arm_rs_r14_t7_c9,
++ arm_rs_r15_t7_c9,
++ arm_rs_r0_t0_c10,
++ arm_rs_r1_t0_c10,
++ arm_rs_r2_t0_c10,
++ arm_rs_r3_t0_c10,
++ arm_rs_r4_t0_c10,
++ arm_rs_r5_t0_c10,
++ arm_rs_r6_t0_c10,
++ arm_rs_r7_t0_c10,
++ arm_rs_r8_t0_c10,
++ arm_rs_r9_t0_c10,
++ arm_rs_r10_t0_c10,
++ arm_rs_r11_t0_c10,
++ arm_rs_r12_t0_c10,
++ arm_rs_r13_t0_c10,
++ arm_rs_r14_t0_c10,
++ arm_rs_r15_t0_c10,
++ arm_rs_r0_t1_c10,
++ arm_rs_r1_t1_c10,
++ arm_rs_r2_t1_c10,
++ arm_rs_r3_t1_c10,
++ arm_rs_r4_t1_c10,
++ arm_rs_r5_t1_c10,
++ arm_rs_r6_t1_c10,
++ arm_rs_r7_t1_c10,
++ arm_rs_r8_t1_c10,
++ arm_rs_r9_t1_c10,
++ arm_rs_r10_t1_c10,
++ arm_rs_r11_t1_c10,
++ arm_rs_r12_t1_c10,
++ arm_rs_r13_t1_c10,
++ arm_rs_r14_t1_c10,
++ arm_rs_r15_t1_c10,
++ arm_rs_r0_t2_c10,
++ arm_rs_r1_t2_c10,
++ arm_rs_r2_t2_c10,
++ arm_rs_r3_t2_c10,
++ arm_rs_r4_t2_c10,
++ arm_rs_r5_t2_c10,
++ arm_rs_r6_t2_c10,
++ arm_rs_r7_t2_c10,
++ arm_rs_r8_t2_c10,
++ arm_rs_r9_t2_c10,
++ arm_rs_r10_t2_c10,
++ arm_rs_r11_t2_c10,
++ arm_rs_r12_t2_c10,
++ arm_rs_r13_t2_c10,
++ arm_rs_r14_t2_c10,
++ arm_rs_r15_t2_c10,
++ arm_rs_r0_t3_c10,
++ arm_rs_r1_t3_c10,
++ arm_rs_r2_t3_c10,
++ arm_rs_r3_t3_c10,
++ arm_rs_r4_t3_c10,
++ arm_rs_r5_t3_c10,
++ arm_rs_r6_t3_c10,
++ arm_rs_r7_t3_c10,
++ arm_rs_r8_t3_c10,
++ arm_rs_r9_t3_c10,
++ arm_rs_r10_t3_c10,
++ arm_rs_r11_t3_c10,
++ arm_rs_r12_t3_c10,
++ arm_rs_r13_t3_c10,
++ arm_rs_r14_t3_c10,
++ arm_rs_r15_t3_c10,
++ arm_rs_r0_t4_c10,
++ arm_rs_r1_t4_c10,
++ arm_rs_r2_t4_c10,
++ arm_rs_r3_t4_c10,
++ arm_rs_r4_t4_c10,
++ arm_rs_r5_t4_c10,
++ arm_rs_r6_t4_c10,
++ arm_rs_r7_t4_c10,
++ arm_rs_r8_t4_c10,
++ arm_rs_r9_t4_c10,
++ arm_rs_r10_t4_c10,
++ arm_rs_r11_t4_c10,
++ arm_rs_r12_t4_c10,
++ arm_rs_r13_t4_c10,
++ arm_rs_r14_t4_c10,
++ arm_rs_r15_t4_c10,
++ arm_rs_r0_t5_c10,
++ arm_rs_r1_t5_c10,
++ arm_rs_r2_t5_c10,
++ arm_rs_r3_t5_c10,
++ arm_rs_r4_t5_c10,
++ arm_rs_r5_t5_c10,
++ arm_rs_r6_t5_c10,
++ arm_rs_r7_t5_c10,
++ arm_rs_r8_t5_c10,
++ arm_rs_r9_t5_c10,
++ arm_rs_r10_t5_c10,
++ arm_rs_r11_t5_c10,
++ arm_rs_r12_t5_c10,
++ arm_rs_r13_t5_c10,
++ arm_rs_r14_t5_c10,
++ arm_rs_r15_t5_c10,
++ arm_rs_r0_t6_c10,
++ arm_rs_r1_t6_c10,
++ arm_rs_r2_t6_c10,
++ arm_rs_r3_t6_c10,
++ arm_rs_r4_t6_c10,
++ arm_rs_r5_t6_c10,
++ arm_rs_r6_t6_c10,
++ arm_rs_r7_t6_c10,
++ arm_rs_r8_t6_c10,
++ arm_rs_r9_t6_c10,
++ arm_rs_r10_t6_c10,
++ arm_rs_r11_t6_c10,
++ arm_rs_r12_t6_c10,
++ arm_rs_r13_t6_c10,
++ arm_rs_r14_t6_c10,
++ arm_rs_r15_t6_c10,
++ arm_rs_r0_t7_c10,
++ arm_rs_r1_t7_c10,
++ arm_rs_r2_t7_c10,
++ arm_rs_r3_t7_c10,
++ arm_rs_r4_t7_c10,
++ arm_rs_r5_t7_c10,
++ arm_rs_r6_t7_c10,
++ arm_rs_r7_t7_c10,
++ arm_rs_r8_t7_c10,
++ arm_rs_r9_t7_c10,
++ arm_rs_r10_t7_c10,
++ arm_rs_r11_t7_c10,
++ arm_rs_r12_t7_c10,
++ arm_rs_r13_t7_c10,
++ arm_rs_r14_t7_c10,
++ arm_rs_r15_t7_c10,
++ arm_rs_r0_t0_c11,
++ arm_rs_r1_t0_c11,
++ arm_rs_r2_t0_c11,
++ arm_rs_r3_t0_c11,
++ arm_rs_r4_t0_c11,
++ arm_rs_r5_t0_c11,
++ arm_rs_r6_t0_c11,
++ arm_rs_r7_t0_c11,
++ arm_rs_r8_t0_c11,
++ arm_rs_r9_t0_c11,
++ arm_rs_r10_t0_c11,
++ arm_rs_r11_t0_c11,
++ arm_rs_r12_t0_c11,
++ arm_rs_r13_t0_c11,
++ arm_rs_r14_t0_c11,
++ arm_rs_r15_t0_c11,
++ arm_rs_r0_t1_c11,
++ arm_rs_r1_t1_c11,
++ arm_rs_r2_t1_c11,
++ arm_rs_r3_t1_c11,
++ arm_rs_r4_t1_c11,
++ arm_rs_r5_t1_c11,
++ arm_rs_r6_t1_c11,
++ arm_rs_r7_t1_c11,
++ arm_rs_r8_t1_c11,
++ arm_rs_r9_t1_c11,
++ arm_rs_r10_t1_c11,
++ arm_rs_r11_t1_c11,
++ arm_rs_r12_t1_c11,
++ arm_rs_r13_t1_c11,
++ arm_rs_r14_t1_c11,
++ arm_rs_r15_t1_c11,
++ arm_rs_r0_t2_c11,
++ arm_rs_r1_t2_c11,
++ arm_rs_r2_t2_c11,
++ arm_rs_r3_t2_c11,
++ arm_rs_r4_t2_c11,
++ arm_rs_r5_t2_c11,
++ arm_rs_r6_t2_c11,
++ arm_rs_r7_t2_c11,
++ arm_rs_r8_t2_c11,
++ arm_rs_r9_t2_c11,
++ arm_rs_r10_t2_c11,
++ arm_rs_r11_t2_c11,
++ arm_rs_r12_t2_c11,
++ arm_rs_r13_t2_c11,
++ arm_rs_r14_t2_c11,
++ arm_rs_r15_t2_c11,
++ arm_rs_r0_t3_c11,
++ arm_rs_r1_t3_c11,
++ arm_rs_r2_t3_c11,
++ arm_rs_r3_t3_c11,
++ arm_rs_r4_t3_c11,
++ arm_rs_r5_t3_c11,
++ arm_rs_r6_t3_c11,
++ arm_rs_r7_t3_c11,
++ arm_rs_r8_t3_c11,
++ arm_rs_r9_t3_c11,
++ arm_rs_r10_t3_c11,
++ arm_rs_r11_t3_c11,
++ arm_rs_r12_t3_c11,
++ arm_rs_r13_t3_c11,
++ arm_rs_r14_t3_c11,
++ arm_rs_r15_t3_c11,
++ arm_rs_r0_t4_c11,
++ arm_rs_r1_t4_c11,
++ arm_rs_r2_t4_c11,
++ arm_rs_r3_t4_c11,
++ arm_rs_r4_t4_c11,
++ arm_rs_r5_t4_c11,
++ arm_rs_r6_t4_c11,
++ arm_rs_r7_t4_c11,
++ arm_rs_r8_t4_c11,
++ arm_rs_r9_t4_c11,
++ arm_rs_r10_t4_c11,
++ arm_rs_r11_t4_c11,
++ arm_rs_r12_t4_c11,
++ arm_rs_r13_t4_c11,
++ arm_rs_r14_t4_c11,
++ arm_rs_r15_t4_c11,
++ arm_rs_r0_t5_c11,
++ arm_rs_r1_t5_c11,
++ arm_rs_r2_t5_c11,
++ arm_rs_r3_t5_c11,
++ arm_rs_r4_t5_c11,
++ arm_rs_r5_t5_c11,
++ arm_rs_r6_t5_c11,
++ arm_rs_r7_t5_c11,
++ arm_rs_r8_t5_c11,
++ arm_rs_r9_t5_c11,
++ arm_rs_r10_t5_c11,
++ arm_rs_r11_t5_c11,
++ arm_rs_r12_t5_c11,
++ arm_rs_r13_t5_c11,
++ arm_rs_r14_t5_c11,
++ arm_rs_r15_t5_c11,
++ arm_rs_r0_t6_c11,
++ arm_rs_r1_t6_c11,
++ arm_rs_r2_t6_c11,
++ arm_rs_r3_t6_c11,
++ arm_rs_r4_t6_c11,
++ arm_rs_r5_t6_c11,
++ arm_rs_r6_t6_c11,
++ arm_rs_r7_t6_c11,
++ arm_rs_r8_t6_c11,
++ arm_rs_r9_t6_c11,
++ arm_rs_r10_t6_c11,
++ arm_rs_r11_t6_c11,
++ arm_rs_r12_t6_c11,
++ arm_rs_r13_t6_c11,
++ arm_rs_r14_t6_c11,
++ arm_rs_r15_t6_c11,
++ arm_rs_r0_t7_c11,
++ arm_rs_r1_t7_c11,
++ arm_rs_r2_t7_c11,
++ arm_rs_r3_t7_c11,
++ arm_rs_r4_t7_c11,
++ arm_rs_r5_t7_c11,
++ arm_rs_r6_t7_c11,
++ arm_rs_r7_t7_c11,
++ arm_rs_r8_t7_c11,
++ arm_rs_r9_t7_c11,
++ arm_rs_r10_t7_c11,
++ arm_rs_r11_t7_c11,
++ arm_rs_r12_t7_c11,
++ arm_rs_r13_t7_c11,
++ arm_rs_r14_t7_c11,
++ arm_rs_r15_t7_c11,
++ arm_rs_r0_t0_c12,
++ arm_rs_r1_t0_c12,
++ arm_rs_r2_t0_c12,
++ arm_rs_r3_t0_c12,
++ arm_rs_r4_t0_c12,
++ arm_rs_r5_t0_c12,
++ arm_rs_r6_t0_c12,
++ arm_rs_r7_t0_c12,
++ arm_rs_r8_t0_c12,
++ arm_rs_r9_t0_c12,
++ arm_rs_r10_t0_c12,
++ arm_rs_r11_t0_c12,
++ arm_rs_r12_t0_c12,
++ arm_rs_r13_t0_c12,
++ arm_rs_r14_t0_c12,
++ arm_rs_r15_t0_c12,
++ arm_rs_r0_t1_c12,
++ arm_rs_r1_t1_c12,
++ arm_rs_r2_t1_c12,
++ arm_rs_r3_t1_c12,
++ arm_rs_r4_t1_c12,
++ arm_rs_r5_t1_c12,
++ arm_rs_r6_t1_c12,
++ arm_rs_r7_t1_c12,
++ arm_rs_r8_t1_c12,
++ arm_rs_r9_t1_c12,
++ arm_rs_r10_t1_c12,
++ arm_rs_r11_t1_c12,
++ arm_rs_r12_t1_c12,
++ arm_rs_r13_t1_c12,
++ arm_rs_r14_t1_c12,
++ arm_rs_r15_t1_c12,
++ arm_rs_r0_t2_c12,
++ arm_rs_r1_t2_c12,
++ arm_rs_r2_t2_c12,
++ arm_rs_r3_t2_c12,
++ arm_rs_r4_t2_c12,
++ arm_rs_r5_t2_c12,
++ arm_rs_r6_t2_c12,
++ arm_rs_r7_t2_c12,
++ arm_rs_r8_t2_c12,
++ arm_rs_r9_t2_c12,
++ arm_rs_r10_t2_c12,
++ arm_rs_r11_t2_c12,
++ arm_rs_r12_t2_c12,
++ arm_rs_r13_t2_c12,
++ arm_rs_r14_t2_c12,
++ arm_rs_r15_t2_c12,
++ arm_rs_r0_t3_c12,
++ arm_rs_r1_t3_c12,
++ arm_rs_r2_t3_c12,
++ arm_rs_r3_t3_c12,
++ arm_rs_r4_t3_c12,
++ arm_rs_r5_t3_c12,
++ arm_rs_r6_t3_c12,
++ arm_rs_r7_t3_c12,
++ arm_rs_r8_t3_c12,
++ arm_rs_r9_t3_c12,
++ arm_rs_r10_t3_c12,
++ arm_rs_r11_t3_c12,
++ arm_rs_r12_t3_c12,
++ arm_rs_r13_t3_c12,
++ arm_rs_r14_t3_c12,
++ arm_rs_r15_t3_c12,
++ arm_rs_r0_t4_c12,
++ arm_rs_r1_t4_c12,
++ arm_rs_r2_t4_c12,
++ arm_rs_r3_t4_c12,
++ arm_rs_r4_t4_c12,
++ arm_rs_r5_t4_c12,
++ arm_rs_r6_t4_c12,
++ arm_rs_r7_t4_c12,
++ arm_rs_r8_t4_c12,
++ arm_rs_r9_t4_c12,
++ arm_rs_r10_t4_c12,
++ arm_rs_r11_t4_c12,
++ arm_rs_r12_t4_c12,
++ arm_rs_r13_t4_c12,
++ arm_rs_r14_t4_c12,
++ arm_rs_r15_t4_c12,
++ arm_rs_r0_t5_c12,
++ arm_rs_r1_t5_c12,
++ arm_rs_r2_t5_c12,
++ arm_rs_r3_t5_c12,
++ arm_rs_r4_t5_c12,
++ arm_rs_r5_t5_c12,
++ arm_rs_r6_t5_c12,
++ arm_rs_r7_t5_c12,
++ arm_rs_r8_t5_c12,
++ arm_rs_r9_t5_c12,
++ arm_rs_r10_t5_c12,
++ arm_rs_r11_t5_c12,
++ arm_rs_r12_t5_c12,
++ arm_rs_r13_t5_c12,
++ arm_rs_r14_t5_c12,
++ arm_rs_r15_t5_c12,
++ arm_rs_r0_t6_c12,
++ arm_rs_r1_t6_c12,
++ arm_rs_r2_t6_c12,
++ arm_rs_r3_t6_c12,
++ arm_rs_r4_t6_c12,
++ arm_rs_r5_t6_c12,
++ arm_rs_r6_t6_c12,
++ arm_rs_r7_t6_c12,
++ arm_rs_r8_t6_c12,
++ arm_rs_r9_t6_c12,
++ arm_rs_r10_t6_c12,
++ arm_rs_r11_t6_c12,
++ arm_rs_r12_t6_c12,
++ arm_rs_r13_t6_c12,
++ arm_rs_r14_t6_c12,
++ arm_rs_r15_t6_c12,
++ arm_rs_r0_t7_c12,
++ arm_rs_r1_t7_c12,
++ arm_rs_r2_t7_c12,
++ arm_rs_r3_t7_c12,
++ arm_rs_r4_t7_c12,
++ arm_rs_r5_t7_c12,
++ arm_rs_r6_t7_c12,
++ arm_rs_r7_t7_c12,
++ arm_rs_r8_t7_c12,
++ arm_rs_r9_t7_c12,
++ arm_rs_r10_t7_c12,
++ arm_rs_r11_t7_c12,
++ arm_rs_r12_t7_c12,
++ arm_rs_r13_t7_c12,
++ arm_rs_r14_t7_c12,
++ arm_rs_r15_t7_c12,
++ arm_rs_r0_t0_c13,
++ arm_rs_r1_t0_c13,
++ arm_rs_r2_t0_c13,
++ arm_rs_r3_t0_c13,
++ arm_rs_r4_t0_c13,
++ arm_rs_r5_t0_c13,
++ arm_rs_r6_t0_c13,
++ arm_rs_r7_t0_c13,
++ arm_rs_r8_t0_c13,
++ arm_rs_r9_t0_c13,
++ arm_rs_r10_t0_c13,
++ arm_rs_r11_t0_c13,
++ arm_rs_r12_t0_c13,
++ arm_rs_r13_t0_c13,
++ arm_rs_r14_t0_c13,
++ arm_rs_r15_t0_c13,
++ arm_rs_r0_t1_c13,
++ arm_rs_r1_t1_c13,
++ arm_rs_r2_t1_c13,
++ arm_rs_r3_t1_c13,
++ arm_rs_r4_t1_c13,
++ arm_rs_r5_t1_c13,
++ arm_rs_r6_t1_c13,
++ arm_rs_r7_t1_c13,
++ arm_rs_r8_t1_c13,
++ arm_rs_r9_t1_c13,
++ arm_rs_r10_t1_c13,
++ arm_rs_r11_t1_c13,
++ arm_rs_r12_t1_c13,
++ arm_rs_r13_t1_c13,
++ arm_rs_r14_t1_c13,
++ arm_rs_r15_t1_c13,
++ arm_rs_r0_t2_c13,
++ arm_rs_r1_t2_c13,
++ arm_rs_r2_t2_c13,
++ arm_rs_r3_t2_c13,
++ arm_rs_r4_t2_c13,
++ arm_rs_r5_t2_c13,
++ arm_rs_r6_t2_c13,
++ arm_rs_r7_t2_c13,
++ arm_rs_r8_t2_c13,
++ arm_rs_r9_t2_c13,
++ arm_rs_r10_t2_c13,
++ arm_rs_r11_t2_c13,
++ arm_rs_r12_t2_c13,
++ arm_rs_r13_t2_c13,
++ arm_rs_r14_t2_c13,
++ arm_rs_r15_t2_c13,
++ arm_rs_r0_t3_c13,
++ arm_rs_r1_t3_c13,
++ arm_rs_r2_t3_c13,
++ arm_rs_r3_t3_c13,
++ arm_rs_r4_t3_c13,
++ arm_rs_r5_t3_c13,
++ arm_rs_r6_t3_c13,
++ arm_rs_r7_t3_c13,
++ arm_rs_r8_t3_c13,
++ arm_rs_r9_t3_c13,
++ arm_rs_r10_t3_c13,
++ arm_rs_r11_t3_c13,
++ arm_rs_r12_t3_c13,
++ arm_rs_r13_t3_c13,
++ arm_rs_r14_t3_c13,
++ arm_rs_r15_t3_c13,
++ arm_rs_r0_t4_c13,
++ arm_rs_r1_t4_c13,
++ arm_rs_r2_t4_c13,
++ arm_rs_r3_t4_c13,
++ arm_rs_r4_t4_c13,
++ arm_rs_r5_t4_c13,
++ arm_rs_r6_t4_c13,
++ arm_rs_r7_t4_c13,
++ arm_rs_r8_t4_c13,
++ arm_rs_r9_t4_c13,
++ arm_rs_r10_t4_c13,
++ arm_rs_r11_t4_c13,
++ arm_rs_r12_t4_c13,
++ arm_rs_r13_t4_c13,
++ arm_rs_r14_t4_c13,
++ arm_rs_r15_t4_c13,
++ arm_rs_r0_t5_c13,
++ arm_rs_r1_t5_c13,
++ arm_rs_r2_t5_c13,
++ arm_rs_r3_t5_c13,
++ arm_rs_r4_t5_c13,
++ arm_rs_r5_t5_c13,
++ arm_rs_r6_t5_c13,
++ arm_rs_r7_t5_c13,
++ arm_rs_r8_t5_c13,
++ arm_rs_r9_t5_c13,
++ arm_rs_r10_t5_c13,
++ arm_rs_r11_t5_c13,
++ arm_rs_r12_t5_c13,
++ arm_rs_r13_t5_c13,
++ arm_rs_r14_t5_c13,
++ arm_rs_r15_t5_c13,
++ arm_rs_r0_t6_c13,
++ arm_rs_r1_t6_c13,
++ arm_rs_r2_t6_c13,
++ arm_rs_r3_t6_c13,
++ arm_rs_r4_t6_c13,
++ arm_rs_r5_t6_c13,
++ arm_rs_r6_t6_c13,
++ arm_rs_r7_t6_c13,
++ arm_rs_r8_t6_c13,
++ arm_rs_r9_t6_c13,
++ arm_rs_r10_t6_c13,
++ arm_rs_r11_t6_c13,
++ arm_rs_r12_t6_c13,
++ arm_rs_r13_t6_c13,
++ arm_rs_r14_t6_c13,
++ arm_rs_r15_t6_c13,
++ arm_rs_r0_t7_c13,
++ arm_rs_r1_t7_c13,
++ arm_rs_r2_t7_c13,
++ arm_rs_r3_t7_c13,
++ arm_rs_r4_t7_c13,
++ arm_rs_r5_t7_c13,
++ arm_rs_r6_t7_c13,
++ arm_rs_r7_t7_c13,
++ arm_rs_r8_t7_c13,
++ arm_rs_r9_t7_c13,
++ arm_rs_r10_t7_c13,
++ arm_rs_r11_t7_c13,
++ arm_rs_r12_t7_c13,
++ arm_rs_r13_t7_c13,
++ arm_rs_r14_t7_c13,
++ arm_rs_r15_t7_c13,
++ arm_rs_r0_t0_c14,
++ arm_rs_r1_t0_c14,
++ arm_rs_r2_t0_c14,
++ arm_rs_r3_t0_c14,
++ arm_rs_r4_t0_c14,
++ arm_rs_r5_t0_c14,
++ arm_rs_r6_t0_c14,
++ arm_rs_r7_t0_c14,
++ arm_rs_r8_t0_c14,
++ arm_rs_r9_t0_c14,
++ arm_rs_r10_t0_c14,
++ arm_rs_r11_t0_c14,
++ arm_rs_r12_t0_c14,
++ arm_rs_r13_t0_c14,
++ arm_rs_r14_t0_c14,
++ arm_rs_r15_t0_c14,
++ arm_rs_r0_t1_c14,
++ arm_rs_r1_t1_c14,
++ arm_rs_r2_t1_c14,
++ arm_rs_r3_t1_c14,
++ arm_rs_r4_t1_c14,
++ arm_rs_r5_t1_c14,
++ arm_rs_r6_t1_c14,
++ arm_rs_r7_t1_c14,
++ arm_rs_r8_t1_c14,
++ arm_rs_r9_t1_c14,
++ arm_rs_r10_t1_c14,
++ arm_rs_r11_t1_c14,
++ arm_rs_r12_t1_c14,
++ arm_rs_r13_t1_c14,
++ arm_rs_r14_t1_c14,
++ arm_rs_r15_t1_c14,
++ arm_rs_r0_t2_c14,
++ arm_rs_r1_t2_c14,
++ arm_rs_r2_t2_c14,
++ arm_rs_r3_t2_c14,
++ arm_rs_r4_t2_c14,
++ arm_rs_r5_t2_c14,
++ arm_rs_r6_t2_c14,
++ arm_rs_r7_t2_c14,
++ arm_rs_r8_t2_c14,
++ arm_rs_r9_t2_c14,
++ arm_rs_r10_t2_c14,
++ arm_rs_r11_t2_c14,
++ arm_rs_r12_t2_c14,
++ arm_rs_r13_t2_c14,
++ arm_rs_r14_t2_c14,
++ arm_rs_r15_t2_c14,
++ arm_rs_r0_t3_c14,
++ arm_rs_r1_t3_c14,
++ arm_rs_r2_t3_c14,
++ arm_rs_r3_t3_c14,
++ arm_rs_r4_t3_c14,
++ arm_rs_r5_t3_c14,
++ arm_rs_r6_t3_c14,
++ arm_rs_r7_t3_c14,
++ arm_rs_r8_t3_c14,
++ arm_rs_r9_t3_c14,
++ arm_rs_r10_t3_c14,
++ arm_rs_r11_t3_c14,
++ arm_rs_r12_t3_c14,
++ arm_rs_r13_t3_c14,
++ arm_rs_r14_t3_c14,
++ arm_rs_r15_t3_c14,
++ arm_rs_r0_t4_c14,
++ arm_rs_r1_t4_c14,
++ arm_rs_r2_t4_c14,
++ arm_rs_r3_t4_c14,
++ arm_rs_r4_t4_c14,
++ arm_rs_r5_t4_c14,
++ arm_rs_r6_t4_c14,
++ arm_rs_r7_t4_c14,
++ arm_rs_r8_t4_c14,
++ arm_rs_r9_t4_c14,
++ arm_rs_r10_t4_c14,
++ arm_rs_r11_t4_c14,
++ arm_rs_r12_t4_c14,
++ arm_rs_r13_t4_c14,
++ arm_rs_r14_t4_c14,
++ arm_rs_r15_t4_c14,
++ arm_rs_r0_t5_c14,
++ arm_rs_r1_t5_c14,
++ arm_rs_r2_t5_c14,
++ arm_rs_r3_t5_c14,
++ arm_rs_r4_t5_c14,
++ arm_rs_r5_t5_c14,
++ arm_rs_r6_t5_c14,
++ arm_rs_r7_t5_c14,
++ arm_rs_r8_t5_c14,
++ arm_rs_r9_t5_c14,
++ arm_rs_r10_t5_c14,
++ arm_rs_r11_t5_c14,
++ arm_rs_r12_t5_c14,
++ arm_rs_r13_t5_c14,
++ arm_rs_r14_t5_c14,
++ arm_rs_r15_t5_c14,
++ arm_rs_r0_t6_c14,
++ arm_rs_r1_t6_c14,
++ arm_rs_r2_t6_c14,
++ arm_rs_r3_t6_c14,
++ arm_rs_r4_t6_c14,
++ arm_rs_r5_t6_c14,
++ arm_rs_r6_t6_c14,
++ arm_rs_r7_t6_c14,
++ arm_rs_r8_t6_c14,
++ arm_rs_r9_t6_c14,
++ arm_rs_r10_t6_c14,
++ arm_rs_r11_t6_c14,
++ arm_rs_r12_t6_c14,
++ arm_rs_r13_t6_c14,
++ arm_rs_r14_t6_c14,
++ arm_rs_r15_t6_c14,
++ arm_rs_r0_t7_c14,
++ arm_rs_r1_t7_c14,
++ arm_rs_r2_t7_c14,
++ arm_rs_r3_t7_c14,
++ arm_rs_r4_t7_c14,
++ arm_rs_r5_t7_c14,
++ arm_rs_r6_t7_c14,
++ arm_rs_r7_t7_c14,
++ arm_rs_r8_t7_c14,
++ arm_rs_r9_t7_c14,
++ arm_rs_r10_t7_c14,
++ arm_rs_r11_t7_c14,
++ arm_rs_r12_t7_c14,
++ arm_rs_r13_t7_c14,
++ arm_rs_r14_t7_c14,
++ arm_rs_r15_t7_c14,
++ arm_rs_r0_t0_c15,
++ arm_rs_r1_t0_c15,
++ arm_rs_r2_t0_c15,
++ arm_rs_r3_t0_c15,
++ arm_rs_r4_t0_c15,
++ arm_rs_r5_t0_c15,
++ arm_rs_r6_t0_c15,
++ arm_rs_r7_t0_c15,
++ arm_rs_r8_t0_c15,
++ arm_rs_r9_t0_c15,
++ arm_rs_r10_t0_c15,
++ arm_rs_r11_t0_c15,
++ arm_rs_r12_t0_c15,
++ arm_rs_r13_t0_c15,
++ arm_rs_r14_t0_c15,
++ arm_rs_r15_t0_c15,
++ arm_rs_r0_t1_c15,
++ arm_rs_r1_t1_c15,
++ arm_rs_r2_t1_c15,
++ arm_rs_r3_t1_c15,
++ arm_rs_r4_t1_c15,
++ arm_rs_r5_t1_c15,
++ arm_rs_r6_t1_c15,
++ arm_rs_r7_t1_c15,
++ arm_rs_r8_t1_c15,
++ arm_rs_r9_t1_c15,
++ arm_rs_r10_t1_c15,
++ arm_rs_r11_t1_c15,
++ arm_rs_r12_t1_c15,
++ arm_rs_r13_t1_c15,
++ arm_rs_r14_t1_c15,
++ arm_rs_r15_t1_c15,
++ arm_rs_r0_t2_c15,
++ arm_rs_r1_t2_c15,
++ arm_rs_r2_t2_c15,
++ arm_rs_r3_t2_c15,
++ arm_rs_r4_t2_c15,
++ arm_rs_r5_t2_c15,
++ arm_rs_r6_t2_c15,
++ arm_rs_r7_t2_c15,
++ arm_rs_r8_t2_c15,
++ arm_rs_r9_t2_c15,
++ arm_rs_r10_t2_c15,
++ arm_rs_r11_t2_c15,
++ arm_rs_r12_t2_c15,
++ arm_rs_r13_t2_c15,
++ arm_rs_r14_t2_c15,
++ arm_rs_r15_t2_c15,
++ arm_rs_r0_t3_c15,
++ arm_rs_r1_t3_c15,
++ arm_rs_r2_t3_c15,
++ arm_rs_r3_t3_c15,
++ arm_rs_r4_t3_c15,
++ arm_rs_r5_t3_c15,
++ arm_rs_r6_t3_c15,
++ arm_rs_r7_t3_c15,
++ arm_rs_r8_t3_c15,
++ arm_rs_r9_t3_c15,
++ arm_rs_r10_t3_c15,
++ arm_rs_r11_t3_c15,
++ arm_rs_r12_t3_c15,
++ arm_rs_r13_t3_c15,
++ arm_rs_r14_t3_c15,
++ arm_rs_r15_t3_c15,
++ arm_rs_r0_t4_c15,
++ arm_rs_r1_t4_c15,
++ arm_rs_r2_t4_c15,
++ arm_rs_r3_t4_c15,
++ arm_rs_r4_t4_c15,
++ arm_rs_r5_t4_c15,
++ arm_rs_r6_t4_c15,
++ arm_rs_r7_t4_c15,
++ arm_rs_r8_t4_c15,
++ arm_rs_r9_t4_c15,
++ arm_rs_r10_t4_c15,
++ arm_rs_r11_t4_c15,
++ arm_rs_r12_t4_c15,
++ arm_rs_r13_t4_c15,
++ arm_rs_r14_t4_c15,
++ arm_rs_r15_t4_c15,
++ arm_rs_r0_t5_c15,
++ arm_rs_r1_t5_c15,
++ arm_rs_r2_t5_c15,
++ arm_rs_r3_t5_c15,
++ arm_rs_r4_t5_c15,
++ arm_rs_r5_t5_c15,
++ arm_rs_r6_t5_c15,
++ arm_rs_r7_t5_c15,
++ arm_rs_r8_t5_c15,
++ arm_rs_r9_t5_c15,
++ arm_rs_r10_t5_c15,
++ arm_rs_r11_t5_c15,
++ arm_rs_r12_t5_c15,
++ arm_rs_r13_t5_c15,
++ arm_rs_r14_t5_c15,
++ arm_rs_r15_t5_c15,
++ arm_rs_r0_t6_c15,
++ arm_rs_r1_t6_c15,
++ arm_rs_r2_t6_c15,
++ arm_rs_r3_t6_c15,
++ arm_rs_r4_t6_c15,
++ arm_rs_r5_t6_c15,
++ arm_rs_r6_t6_c15,
++ arm_rs_r7_t6_c15,
++ arm_rs_r8_t6_c15,
++ arm_rs_r9_t6_c15,
++ arm_rs_r10_t6_c15,
++ arm_rs_r11_t6_c15,
++ arm_rs_r12_t6_c15,
++ arm_rs_r13_t6_c15,
++ arm_rs_r14_t6_c15,
++ arm_rs_r15_t6_c15,
++ arm_rs_r0_t7_c15,
++ arm_rs_r1_t7_c15,
++ arm_rs_r2_t7_c15,
++ arm_rs_r3_t7_c15,
++ arm_rs_r4_t7_c15,
++ arm_rs_r5_t7_c15,
++ arm_rs_r6_t7_c15,
++ arm_rs_r7_t7_c15,
++ arm_rs_r8_t7_c15,
++ arm_rs_r9_t7_c15,
++ arm_rs_r10_t7_c15,
++ arm_rs_r11_t7_c15,
++ arm_rs_r12_t7_c15,
++ arm_rs_r13_t7_c15,
++ arm_rs_r14_t7_c15,
++ arm_rs_r15_t7_c15,
++ arm_rs_r0_t0_c16,
++ arm_rs_r1_t0_c16,
++ arm_rs_r2_t0_c16,
++ arm_rs_r3_t0_c16,
++ arm_rs_r4_t0_c16,
++ arm_rs_r5_t0_c16,
++ arm_rs_r6_t0_c16,
++ arm_rs_r7_t0_c16,
++ arm_rs_r8_t0_c16,
++ arm_rs_r9_t0_c16,
++ arm_rs_r10_t0_c16,
++ arm_rs_r11_t0_c16,
++ arm_rs_r12_t0_c16,
++ arm_rs_r13_t0_c16,
++ arm_rs_r14_t0_c16,
++ arm_rs_r15_t0_c16,
++ arm_rs_r0_t1_c16,
++ arm_rs_r1_t1_c16,
++ arm_rs_r2_t1_c16,
++ arm_rs_r3_t1_c16,
++ arm_rs_r4_t1_c16,
++ arm_rs_r5_t1_c16,
++ arm_rs_r6_t1_c16,
++ arm_rs_r7_t1_c16,
++ arm_rs_r8_t1_c16,
++ arm_rs_r9_t1_c16,
++ arm_rs_r10_t1_c16,
++ arm_rs_r11_t1_c16,
++ arm_rs_r12_t1_c16,
++ arm_rs_r13_t1_c16,
++ arm_rs_r14_t1_c16,
++ arm_rs_r15_t1_c16,
++ arm_rs_r0_t2_c16,
++ arm_rs_r1_t2_c16,
++ arm_rs_r2_t2_c16,
++ arm_rs_r3_t2_c16,
++ arm_rs_r4_t2_c16,
++ arm_rs_r5_t2_c16,
++ arm_rs_r6_t2_c16,
++ arm_rs_r7_t2_c16,
++ arm_rs_r8_t2_c16,
++ arm_rs_r9_t2_c16,
++ arm_rs_r10_t2_c16,
++ arm_rs_r11_t2_c16,
++ arm_rs_r12_t2_c16,
++ arm_rs_r13_t2_c16,
++ arm_rs_r14_t2_c16,
++ arm_rs_r15_t2_c16,
++ arm_rs_r0_t3_c16,
++ arm_rs_r1_t3_c16,
++ arm_rs_r2_t3_c16,
++ arm_rs_r3_t3_c16,
++ arm_rs_r4_t3_c16,
++ arm_rs_r5_t3_c16,
++ arm_rs_r6_t3_c16,
++ arm_rs_r7_t3_c16,
++ arm_rs_r8_t3_c16,
++ arm_rs_r9_t3_c16,
++ arm_rs_r10_t3_c16,
++ arm_rs_r11_t3_c16,
++ arm_rs_r12_t3_c16,
++ arm_rs_r13_t3_c16,
++ arm_rs_r14_t3_c16,
++ arm_rs_r15_t3_c16,
++ arm_rs_r0_t4_c16,
++ arm_rs_r1_t4_c16,
++ arm_rs_r2_t4_c16,
++ arm_rs_r3_t4_c16,
++ arm_rs_r4_t4_c16,
++ arm_rs_r5_t4_c16,
++ arm_rs_r6_t4_c16,
++ arm_rs_r7_t4_c16,
++ arm_rs_r8_t4_c16,
++ arm_rs_r9_t4_c16,
++ arm_rs_r10_t4_c16,
++ arm_rs_r11_t4_c16,
++ arm_rs_r12_t4_c16,
++ arm_rs_r13_t4_c16,
++ arm_rs_r14_t4_c16,
++ arm_rs_r15_t4_c16,
++ arm_rs_r0_t5_c16,
++ arm_rs_r1_t5_c16,
++ arm_rs_r2_t5_c16,
++ arm_rs_r3_t5_c16,
++ arm_rs_r4_t5_c16,
++ arm_rs_r5_t5_c16,
++ arm_rs_r6_t5_c16,
++ arm_rs_r7_t5_c16,
++ arm_rs_r8_t5_c16,
++ arm_rs_r9_t5_c16,
++ arm_rs_r10_t5_c16,
++ arm_rs_r11_t5_c16,
++ arm_rs_r12_t5_c16,
++ arm_rs_r13_t5_c16,
++ arm_rs_r14_t5_c16,
++ arm_rs_r15_t5_c16,
++ arm_rs_r0_t6_c16,
++ arm_rs_r1_t6_c16,
++ arm_rs_r2_t6_c16,
++ arm_rs_r3_t6_c16,
++ arm_rs_r4_t6_c16,
++ arm_rs_r5_t6_c16,
++ arm_rs_r6_t6_c16,
++ arm_rs_r7_t6_c16,
++ arm_rs_r8_t6_c16,
++ arm_rs_r9_t6_c16,
++ arm_rs_r10_t6_c16,
++ arm_rs_r11_t6_c16,
++ arm_rs_r12_t6_c16,
++ arm_rs_r13_t6_c16,
++ arm_rs_r14_t6_c16,
++ arm_rs_r15_t6_c16,
++ arm_rs_r0_t7_c16,
++ arm_rs_r1_t7_c16,
++ arm_rs_r2_t7_c16,
++ arm_rs_r3_t7_c16,
++ arm_rs_r4_t7_c16,
++ arm_rs_r5_t7_c16,
++ arm_rs_r6_t7_c16,
++ arm_rs_r7_t7_c16,
++ arm_rs_r8_t7_c16,
++ arm_rs_r9_t7_c16,
++ arm_rs_r10_t7_c16,
++ arm_rs_r11_t7_c16,
++ arm_rs_r12_t7_c16,
++ arm_rs_r13_t7_c16,
++ arm_rs_r14_t7_c16,
++ arm_rs_r15_t7_c16,
++ arm_rs_r0_t0_c17,
++ arm_rs_r1_t0_c17,
++ arm_rs_r2_t0_c17,
++ arm_rs_r3_t0_c17,
++ arm_rs_r4_t0_c17,
++ arm_rs_r5_t0_c17,
++ arm_rs_r6_t0_c17,
++ arm_rs_r7_t0_c17,
++ arm_rs_r8_t0_c17,
++ arm_rs_r9_t0_c17,
++ arm_rs_r10_t0_c17,
++ arm_rs_r11_t0_c17,
++ arm_rs_r12_t0_c17,
++ arm_rs_r13_t0_c17,
++ arm_rs_r14_t0_c17,
++ arm_rs_r15_t0_c17,
++ arm_rs_r0_t1_c17,
++ arm_rs_r1_t1_c17,
++ arm_rs_r2_t1_c17,
++ arm_rs_r3_t1_c17,
++ arm_rs_r4_t1_c17,
++ arm_rs_r5_t1_c17,
++ arm_rs_r6_t1_c17,
++ arm_rs_r7_t1_c17,
++ arm_rs_r8_t1_c17,
++ arm_rs_r9_t1_c17,
++ arm_rs_r10_t1_c17,
++ arm_rs_r11_t1_c17,
++ arm_rs_r12_t1_c17,
++ arm_rs_r13_t1_c17,
++ arm_rs_r14_t1_c17,
++ arm_rs_r15_t1_c17,
++ arm_rs_r0_t2_c17,
++ arm_rs_r1_t2_c17,
++ arm_rs_r2_t2_c17,
++ arm_rs_r3_t2_c17,
++ arm_rs_r4_t2_c17,
++ arm_rs_r5_t2_c17,
++ arm_rs_r6_t2_c17,
++ arm_rs_r7_t2_c17,
++ arm_rs_r8_t2_c17,
++ arm_rs_r9_t2_c17,
++ arm_rs_r10_t2_c17,
++ arm_rs_r11_t2_c17,
++ arm_rs_r12_t2_c17,
++ arm_rs_r13_t2_c17,
++ arm_rs_r14_t2_c17,
++ arm_rs_r15_t2_c17,
++ arm_rs_r0_t3_c17,
++ arm_rs_r1_t3_c17,
++ arm_rs_r2_t3_c17,
++ arm_rs_r3_t3_c17,
++ arm_rs_r4_t3_c17,
++ arm_rs_r5_t3_c17,
++ arm_rs_r6_t3_c17,
++ arm_rs_r7_t3_c17,
++ arm_rs_r8_t3_c17,
++ arm_rs_r9_t3_c17,
++ arm_rs_r10_t3_c17,
++ arm_rs_r11_t3_c17,
++ arm_rs_r12_t3_c17,
++ arm_rs_r13_t3_c17,
++ arm_rs_r14_t3_c17,
++ arm_rs_r15_t3_c17,
++ arm_rs_r0_t4_c17,
++ arm_rs_r1_t4_c17,
++ arm_rs_r2_t4_c17,
++ arm_rs_r3_t4_c17,
++ arm_rs_r4_t4_c17,
++ arm_rs_r5_t4_c17,
++ arm_rs_r6_t4_c17,
++ arm_rs_r7_t4_c17,
++ arm_rs_r8_t4_c17,
++ arm_rs_r9_t4_c17,
++ arm_rs_r10_t4_c17,
++ arm_rs_r11_t4_c17,
++ arm_rs_r12_t4_c17,
++ arm_rs_r13_t4_c17,
++ arm_rs_r14_t4_c17,
++ arm_rs_r15_t4_c17,
++ arm_rs_r0_t5_c17,
++ arm_rs_r1_t5_c17,
++ arm_rs_r2_t5_c17,
++ arm_rs_r3_t5_c17,
++ arm_rs_r4_t5_c17,
++ arm_rs_r5_t5_c17,
++ arm_rs_r6_t5_c17,
++ arm_rs_r7_t5_c17,
++ arm_rs_r8_t5_c17,
++ arm_rs_r9_t5_c17,
++ arm_rs_r10_t5_c17,
++ arm_rs_r11_t5_c17,
++ arm_rs_r12_t5_c17,
++ arm_rs_r13_t5_c17,
++ arm_rs_r14_t5_c17,
++ arm_rs_r15_t5_c17,
++ arm_rs_r0_t6_c17,
++ arm_rs_r1_t6_c17,
++ arm_rs_r2_t6_c17,
++ arm_rs_r3_t6_c17,
++ arm_rs_r4_t6_c17,
++ arm_rs_r5_t6_c17,
++ arm_rs_r6_t6_c17,
++ arm_rs_r7_t6_c17,
++ arm_rs_r8_t6_c17,
++ arm_rs_r9_t6_c17,
++ arm_rs_r10_t6_c17,
++ arm_rs_r11_t6_c17,
++ arm_rs_r12_t6_c17,
++ arm_rs_r13_t6_c17,
++ arm_rs_r14_t6_c17,
++ arm_rs_r15_t6_c17,
++ arm_rs_r0_t7_c17,
++ arm_rs_r1_t7_c17,
++ arm_rs_r2_t7_c17,
++ arm_rs_r3_t7_c17,
++ arm_rs_r4_t7_c17,
++ arm_rs_r5_t7_c17,
++ arm_rs_r6_t7_c17,
++ arm_rs_r7_t7_c17,
++ arm_rs_r8_t7_c17,
++ arm_rs_r9_t7_c17,
++ arm_rs_r10_t7_c17,
++ arm_rs_r11_t7_c17,
++ arm_rs_r12_t7_c17,
++ arm_rs_r13_t7_c17,
++ arm_rs_r14_t7_c17,
++ arm_rs_r15_t7_c17,
++ arm_rs_r0_t0_c18,
++ arm_rs_r1_t0_c18,
++ arm_rs_r2_t0_c18,
++ arm_rs_r3_t0_c18,
++ arm_rs_r4_t0_c18,
++ arm_rs_r5_t0_c18,
++ arm_rs_r6_t0_c18,
++ arm_rs_r7_t0_c18,
++ arm_rs_r8_t0_c18,
++ arm_rs_r9_t0_c18,
++ arm_rs_r10_t0_c18,
++ arm_rs_r11_t0_c18,
++ arm_rs_r12_t0_c18,
++ arm_rs_r13_t0_c18,
++ arm_rs_r14_t0_c18,
++ arm_rs_r15_t0_c18,
++ arm_rs_r0_t1_c18,
++ arm_rs_r1_t1_c18,
++ arm_rs_r2_t1_c18,
++ arm_rs_r3_t1_c18,
++ arm_rs_r4_t1_c18,
++ arm_rs_r5_t1_c18,
++ arm_rs_r6_t1_c18,
++ arm_rs_r7_t1_c18,
++ arm_rs_r8_t1_c18,
++ arm_rs_r9_t1_c18,
++ arm_rs_r10_t1_c18,
++ arm_rs_r11_t1_c18,
++ arm_rs_r12_t1_c18,
++ arm_rs_r13_t1_c18,
++ arm_rs_r14_t1_c18,
++ arm_rs_r15_t1_c18,
++ arm_rs_r0_t2_c18,
++ arm_rs_r1_t2_c18,
++ arm_rs_r2_t2_c18,
++ arm_rs_r3_t2_c18,
++ arm_rs_r4_t2_c18,
++ arm_rs_r5_t2_c18,
++ arm_rs_r6_t2_c18,
++ arm_rs_r7_t2_c18,
++ arm_rs_r8_t2_c18,
++ arm_rs_r9_t2_c18,
++ arm_rs_r10_t2_c18,
++ arm_rs_r11_t2_c18,
++ arm_rs_r12_t2_c18,
++ arm_rs_r13_t2_c18,
++ arm_rs_r14_t2_c18,
++ arm_rs_r15_t2_c18,
++ arm_rs_r0_t3_c18,
++ arm_rs_r1_t3_c18,
++ arm_rs_r2_t3_c18,
++ arm_rs_r3_t3_c18,
++ arm_rs_r4_t3_c18,
++ arm_rs_r5_t3_c18,
++ arm_rs_r6_t3_c18,
++ arm_rs_r7_t3_c18,
++ arm_rs_r8_t3_c18,
++ arm_rs_r9_t3_c18,
++ arm_rs_r10_t3_c18,
++ arm_rs_r11_t3_c18,
++ arm_rs_r12_t3_c18,
++ arm_rs_r13_t3_c18,
++ arm_rs_r14_t3_c18,
++ arm_rs_r15_t3_c18,
++ arm_rs_r0_t4_c18,
++ arm_rs_r1_t4_c18,
++ arm_rs_r2_t4_c18,
++ arm_rs_r3_t4_c18,
++ arm_rs_r4_t4_c18,
++ arm_rs_r5_t4_c18,
++ arm_rs_r6_t4_c18,
++ arm_rs_r7_t4_c18,
++ arm_rs_r8_t4_c18,
++ arm_rs_r9_t4_c18,
++ arm_rs_r10_t4_c18,
++ arm_rs_r11_t4_c18,
++ arm_rs_r12_t4_c18,
++ arm_rs_r13_t4_c18,
++ arm_rs_r14_t4_c18,
++ arm_rs_r15_t4_c18,
++ arm_rs_r0_t5_c18,
++ arm_rs_r1_t5_c18,
++ arm_rs_r2_t5_c18,
++ arm_rs_r3_t5_c18,
++ arm_rs_r4_t5_c18,
++ arm_rs_r5_t5_c18,
++ arm_rs_r6_t5_c18,
++ arm_rs_r7_t5_c18,
++ arm_rs_r8_t5_c18,
++ arm_rs_r9_t5_c18,
++ arm_rs_r10_t5_c18,
++ arm_rs_r11_t5_c18,
++ arm_rs_r12_t5_c18,
++ arm_rs_r13_t5_c18,
++ arm_rs_r14_t5_c18,
++ arm_rs_r15_t5_c18,
++ arm_rs_r0_t6_c18,
++ arm_rs_r1_t6_c18,
++ arm_rs_r2_t6_c18,
++ arm_rs_r3_t6_c18,
++ arm_rs_r4_t6_c18,
++ arm_rs_r5_t6_c18,
++ arm_rs_r6_t6_c18,
++ arm_rs_r7_t6_c18,
++ arm_rs_r8_t6_c18,
++ arm_rs_r9_t6_c18,
++ arm_rs_r10_t6_c18,
++ arm_rs_r11_t6_c18,
++ arm_rs_r12_t6_c18,
++ arm_rs_r13_t6_c18,
++ arm_rs_r14_t6_c18,
++ arm_rs_r15_t6_c18,
++ arm_rs_r0_t7_c18,
++ arm_rs_r1_t7_c18,
++ arm_rs_r2_t7_c18,
++ arm_rs_r3_t7_c18,
++ arm_rs_r4_t7_c18,
++ arm_rs_r5_t7_c18,
++ arm_rs_r6_t7_c18,
++ arm_rs_r7_t7_c18,
++ arm_rs_r8_t7_c18,
++ arm_rs_r9_t7_c18,
++ arm_rs_r10_t7_c18,
++ arm_rs_r11_t7_c18,
++ arm_rs_r12_t7_c18,
++ arm_rs_r13_t7_c18,
++ arm_rs_r14_t7_c18,
++ arm_rs_r15_t7_c18,
++ arm_rs_r0_t0_c19,
++ arm_rs_r1_t0_c19,
++ arm_rs_r2_t0_c19,
++ arm_rs_r3_t0_c19,
++ arm_rs_r4_t0_c19,
++ arm_rs_r5_t0_c19,
++ arm_rs_r6_t0_c19,
++ arm_rs_r7_t0_c19,
++ arm_rs_r8_t0_c19,
++ arm_rs_r9_t0_c19,
++ arm_rs_r10_t0_c19,
++ arm_rs_r11_t0_c19,
++ arm_rs_r12_t0_c19,
++ arm_rs_r13_t0_c19,
++ arm_rs_r14_t0_c19,
++ arm_rs_r15_t0_c19,
++ arm_rs_r0_t1_c19,
++ arm_rs_r1_t1_c19,
++ arm_rs_r2_t1_c19,
++ arm_rs_r3_t1_c19,
++ arm_rs_r4_t1_c19,
++ arm_rs_r5_t1_c19,
++ arm_rs_r6_t1_c19,
++ arm_rs_r7_t1_c19,
++ arm_rs_r8_t1_c19,
++ arm_rs_r9_t1_c19,
++ arm_rs_r10_t1_c19,
++ arm_rs_r11_t1_c19,
++ arm_rs_r12_t1_c19,
++ arm_rs_r13_t1_c19,
++ arm_rs_r14_t1_c19,
++ arm_rs_r15_t1_c19,
++ arm_rs_r0_t2_c19,
++ arm_rs_r1_t2_c19,
++ arm_rs_r2_t2_c19,
++ arm_rs_r3_t2_c19,
++ arm_rs_r4_t2_c19,
++ arm_rs_r5_t2_c19,
++ arm_rs_r6_t2_c19,
++ arm_rs_r7_t2_c19,
++ arm_rs_r8_t2_c19,
++ arm_rs_r9_t2_c19,
++ arm_rs_r10_t2_c19,
++ arm_rs_r11_t2_c19,
++ arm_rs_r12_t2_c19,
++ arm_rs_r13_t2_c19,
++ arm_rs_r14_t2_c19,
++ arm_rs_r15_t2_c19,
++ arm_rs_r0_t3_c19,
++ arm_rs_r1_t3_c19,
++ arm_rs_r2_t3_c19,
++ arm_rs_r3_t3_c19,
++ arm_rs_r4_t3_c19,
++ arm_rs_r5_t3_c19,
++ arm_rs_r6_t3_c19,
++ arm_rs_r7_t3_c19,
++ arm_rs_r8_t3_c19,
++ arm_rs_r9_t3_c19,
++ arm_rs_r10_t3_c19,
++ arm_rs_r11_t3_c19,
++ arm_rs_r12_t3_c19,
++ arm_rs_r13_t3_c19,
++ arm_rs_r14_t3_c19,
++ arm_rs_r15_t3_c19,
++ arm_rs_r0_t4_c19,
++ arm_rs_r1_t4_c19,
++ arm_rs_r2_t4_c19,
++ arm_rs_r3_t4_c19,
++ arm_rs_r4_t4_c19,
++ arm_rs_r5_t4_c19,
++ arm_rs_r6_t4_c19,
++ arm_rs_r7_t4_c19,
++ arm_rs_r8_t4_c19,
++ arm_rs_r9_t4_c19,
++ arm_rs_r10_t4_c19,
++ arm_rs_r11_t4_c19,
++ arm_rs_r12_t4_c19,
++ arm_rs_r13_t4_c19,
++ arm_rs_r14_t4_c19,
++ arm_rs_r15_t4_c19,
++ arm_rs_r0_t5_c19,
++ arm_rs_r1_t5_c19,
++ arm_rs_r2_t5_c19,
++ arm_rs_r3_t5_c19,
++ arm_rs_r4_t5_c19,
++ arm_rs_r5_t5_c19,
++ arm_rs_r6_t5_c19,
++ arm_rs_r7_t5_c19,
++ arm_rs_r8_t5_c19,
++ arm_rs_r9_t5_c19,
++ arm_rs_r10_t5_c19,
++ arm_rs_r11_t5_c19,
++ arm_rs_r12_t5_c19,
++ arm_rs_r13_t5_c19,
++ arm_rs_r14_t5_c19,
++ arm_rs_r15_t5_c19,
++ arm_rs_r0_t6_c19,
++ arm_rs_r1_t6_c19,
++ arm_rs_r2_t6_c19,
++ arm_rs_r3_t6_c19,
++ arm_rs_r4_t6_c19,
++ arm_rs_r5_t6_c19,
++ arm_rs_r6_t6_c19,
++ arm_rs_r7_t6_c19,
++ arm_rs_r8_t6_c19,
++ arm_rs_r9_t6_c19,
++ arm_rs_r10_t6_c19,
++ arm_rs_r11_t6_c19,
++ arm_rs_r12_t6_c19,
++ arm_rs_r13_t6_c19,
++ arm_rs_r14_t6_c19,
++ arm_rs_r15_t6_c19,
++ arm_rs_r0_t7_c19,
++ arm_rs_r1_t7_c19,
++ arm_rs_r2_t7_c19,
++ arm_rs_r3_t7_c19,
++ arm_rs_r4_t7_c19,
++ arm_rs_r5_t7_c19,
++ arm_rs_r6_t7_c19,
++ arm_rs_r7_t7_c19,
++ arm_rs_r8_t7_c19,
++ arm_rs_r9_t7_c19,
++ arm_rs_r10_t7_c19,
++ arm_rs_r11_t7_c19,
++ arm_rs_r12_t7_c19,
++ arm_rs_r13_t7_c19,
++ arm_rs_r14_t7_c19,
++ arm_rs_r15_t7_c19,
++ arm_rs_r0_t0_c20,
++ arm_rs_r1_t0_c20,
++ arm_rs_r2_t0_c20,
++ arm_rs_r3_t0_c20,
++ arm_rs_r4_t0_c20,
++ arm_rs_r5_t0_c20,
++ arm_rs_r6_t0_c20,
++ arm_rs_r7_t0_c20,
++ arm_rs_r8_t0_c20,
++ arm_rs_r9_t0_c20,
++ arm_rs_r10_t0_c20,
++ arm_rs_r11_t0_c20,
++ arm_rs_r12_t0_c20,
++ arm_rs_r13_t0_c20,
++ arm_rs_r14_t0_c20,
++ arm_rs_r15_t0_c20,
++ arm_rs_r0_t1_c20,
++ arm_rs_r1_t1_c20,
++ arm_rs_r2_t1_c20,
++ arm_rs_r3_t1_c20,
++ arm_rs_r4_t1_c20,
++ arm_rs_r5_t1_c20,
++ arm_rs_r6_t1_c20,
++ arm_rs_r7_t1_c20,
++ arm_rs_r8_t1_c20,
++ arm_rs_r9_t1_c20,
++ arm_rs_r10_t1_c20,
++ arm_rs_r11_t1_c20,
++ arm_rs_r12_t1_c20,
++ arm_rs_r13_t1_c20,
++ arm_rs_r14_t1_c20,
++ arm_rs_r15_t1_c20,
++ arm_rs_r0_t2_c20,
++ arm_rs_r1_t2_c20,
++ arm_rs_r2_t2_c20,
++ arm_rs_r3_t2_c20,
++ arm_rs_r4_t2_c20,
++ arm_rs_r5_t2_c20,
++ arm_rs_r6_t2_c20,
++ arm_rs_r7_t2_c20,
++ arm_rs_r8_t2_c20,
++ arm_rs_r9_t2_c20,
++ arm_rs_r10_t2_c20,
++ arm_rs_r11_t2_c20,
++ arm_rs_r12_t2_c20,
++ arm_rs_r13_t2_c20,
++ arm_rs_r14_t2_c20,
++ arm_rs_r15_t2_c20,
++ arm_rs_r0_t3_c20,
++ arm_rs_r1_t3_c20,
++ arm_rs_r2_t3_c20,
++ arm_rs_r3_t3_c20,
++ arm_rs_r4_t3_c20,
++ arm_rs_r5_t3_c20,
++ arm_rs_r6_t3_c20,
++ arm_rs_r7_t3_c20,
++ arm_rs_r8_t3_c20,
++ arm_rs_r9_t3_c20,
++ arm_rs_r10_t3_c20,
++ arm_rs_r11_t3_c20,
++ arm_rs_r12_t3_c20,
++ arm_rs_r13_t3_c20,
++ arm_rs_r14_t3_c20,
++ arm_rs_r15_t3_c20,
++ arm_rs_r0_t4_c20,
++ arm_rs_r1_t4_c20,
++ arm_rs_r2_t4_c20,
++ arm_rs_r3_t4_c20,
++ arm_rs_r4_t4_c20,
++ arm_rs_r5_t4_c20,
++ arm_rs_r6_t4_c20,
++ arm_rs_r7_t4_c20,
++ arm_rs_r8_t4_c20,
++ arm_rs_r9_t4_c20,
++ arm_rs_r10_t4_c20,
++ arm_rs_r11_t4_c20,
++ arm_rs_r12_t4_c20,
++ arm_rs_r13_t4_c20,
++ arm_rs_r14_t4_c20,
++ arm_rs_r15_t4_c20,
++ arm_rs_r0_t5_c20,
++ arm_rs_r1_t5_c20,
++ arm_rs_r2_t5_c20,
++ arm_rs_r3_t5_c20,
++ arm_rs_r4_t5_c20,
++ arm_rs_r5_t5_c20,
++ arm_rs_r6_t5_c20,
++ arm_rs_r7_t5_c20,
++ arm_rs_r8_t5_c20,
++ arm_rs_r9_t5_c20,
++ arm_rs_r10_t5_c20,
++ arm_rs_r11_t5_c20,
++ arm_rs_r12_t5_c20,
++ arm_rs_r13_t5_c20,
++ arm_rs_r14_t5_c20,
++ arm_rs_r15_t5_c20,
++ arm_rs_r0_t6_c20,
++ arm_rs_r1_t6_c20,
++ arm_rs_r2_t6_c20,
++ arm_rs_r3_t6_c20,
++ arm_rs_r4_t6_c20,
++ arm_rs_r5_t6_c20,
++ arm_rs_r6_t6_c20,
++ arm_rs_r7_t6_c20,
++ arm_rs_r8_t6_c20,
++ arm_rs_r9_t6_c20,
++ arm_rs_r10_t6_c20,
++ arm_rs_r11_t6_c20,
++ arm_rs_r12_t6_c20,
++ arm_rs_r13_t6_c20,
++ arm_rs_r14_t6_c20,
++ arm_rs_r15_t6_c20,
++ arm_rs_r0_t7_c20,
++ arm_rs_r1_t7_c20,
++ arm_rs_r2_t7_c20,
++ arm_rs_r3_t7_c20,
++ arm_rs_r4_t7_c20,
++ arm_rs_r5_t7_c20,
++ arm_rs_r6_t7_c20,
++ arm_rs_r7_t7_c20,
++ arm_rs_r8_t7_c20,
++ arm_rs_r9_t7_c20,
++ arm_rs_r10_t7_c20,
++ arm_rs_r11_t7_c20,
++ arm_rs_r12_t7_c20,
++ arm_rs_r13_t7_c20,
++ arm_rs_r14_t7_c20,
++ arm_rs_r15_t7_c20,
++ arm_rs_r0_t0_c21,
++ arm_rs_r1_t0_c21,
++ arm_rs_r2_t0_c21,
++ arm_rs_r3_t0_c21,
++ arm_rs_r4_t0_c21,
++ arm_rs_r5_t0_c21,
++ arm_rs_r6_t0_c21,
++ arm_rs_r7_t0_c21,
++ arm_rs_r8_t0_c21,
++ arm_rs_r9_t0_c21,
++ arm_rs_r10_t0_c21,
++ arm_rs_r11_t0_c21,
++ arm_rs_r12_t0_c21,
++ arm_rs_r13_t0_c21,
++ arm_rs_r14_t0_c21,
++ arm_rs_r15_t0_c21,
++ arm_rs_r0_t1_c21,
++ arm_rs_r1_t1_c21,
++ arm_rs_r2_t1_c21,
++ arm_rs_r3_t1_c21,
++ arm_rs_r4_t1_c21,
++ arm_rs_r5_t1_c21,
++ arm_rs_r6_t1_c21,
++ arm_rs_r7_t1_c21,
++ arm_rs_r8_t1_c21,
++ arm_rs_r9_t1_c21,
++ arm_rs_r10_t1_c21,
++ arm_rs_r11_t1_c21,
++ arm_rs_r12_t1_c21,
++ arm_rs_r13_t1_c21,
++ arm_rs_r14_t1_c21,
++ arm_rs_r15_t1_c21,
++ arm_rs_r0_t2_c21,
++ arm_rs_r1_t2_c21,
++ arm_rs_r2_t2_c21,
++ arm_rs_r3_t2_c21,
++ arm_rs_r4_t2_c21,
++ arm_rs_r5_t2_c21,
++ arm_rs_r6_t2_c21,
++ arm_rs_r7_t2_c21,
++ arm_rs_r8_t2_c21,
++ arm_rs_r9_t2_c21,
++ arm_rs_r10_t2_c21,
++ arm_rs_r11_t2_c21,
++ arm_rs_r12_t2_c21,
++ arm_rs_r13_t2_c21,
++ arm_rs_r14_t2_c21,
++ arm_rs_r15_t2_c21,
++ arm_rs_r0_t3_c21,
++ arm_rs_r1_t3_c21,
++ arm_rs_r2_t3_c21,
++ arm_rs_r3_t3_c21,
++ arm_rs_r4_t3_c21,
++ arm_rs_r5_t3_c21,
++ arm_rs_r6_t3_c21,
++ arm_rs_r7_t3_c21,
++ arm_rs_r8_t3_c21,
++ arm_rs_r9_t3_c21,
++ arm_rs_r10_t3_c21,
++ arm_rs_r11_t3_c21,
++ arm_rs_r12_t3_c21,
++ arm_rs_r13_t3_c21,
++ arm_rs_r14_t3_c21,
++ arm_rs_r15_t3_c21,
++ arm_rs_r0_t4_c21,
++ arm_rs_r1_t4_c21,
++ arm_rs_r2_t4_c21,
++ arm_rs_r3_t4_c21,
++ arm_rs_r4_t4_c21,
++ arm_rs_r5_t4_c21,
++ arm_rs_r6_t4_c21,
++ arm_rs_r7_t4_c21,
++ arm_rs_r8_t4_c21,
++ arm_rs_r9_t4_c21,
++ arm_rs_r10_t4_c21,
++ arm_rs_r11_t4_c21,
++ arm_rs_r12_t4_c21,
++ arm_rs_r13_t4_c21,
++ arm_rs_r14_t4_c21,
++ arm_rs_r15_t4_c21,
++ arm_rs_r0_t5_c21,
++ arm_rs_r1_t5_c21,
++ arm_rs_r2_t5_c21,
++ arm_rs_r3_t5_c21,
++ arm_rs_r4_t5_c21,
++ arm_rs_r5_t5_c21,
++ arm_rs_r6_t5_c21,
++ arm_rs_r7_t5_c21,
++ arm_rs_r8_t5_c21,
++ arm_rs_r9_t5_c21,
++ arm_rs_r10_t5_c21,
++ arm_rs_r11_t5_c21,
++ arm_rs_r12_t5_c21,
++ arm_rs_r13_t5_c21,
++ arm_rs_r14_t5_c21,
++ arm_rs_r15_t5_c21,
++ arm_rs_r0_t6_c21,
++ arm_rs_r1_t6_c21,
++ arm_rs_r2_t6_c21,
++ arm_rs_r3_t6_c21,
++ arm_rs_r4_t6_c21,
++ arm_rs_r5_t6_c21,
++ arm_rs_r6_t6_c21,
++ arm_rs_r7_t6_c21,
++ arm_rs_r8_t6_c21,
++ arm_rs_r9_t6_c21,
++ arm_rs_r10_t6_c21,
++ arm_rs_r11_t6_c21,
++ arm_rs_r12_t6_c21,
++ arm_rs_r13_t6_c21,
++ arm_rs_r14_t6_c21,
++ arm_rs_r15_t6_c21,
++ arm_rs_r0_t7_c21,
++ arm_rs_r1_t7_c21,
++ arm_rs_r2_t7_c21,
++ arm_rs_r3_t7_c21,
++ arm_rs_r4_t7_c21,
++ arm_rs_r5_t7_c21,
++ arm_rs_r6_t7_c21,
++ arm_rs_r7_t7_c21,
++ arm_rs_r8_t7_c21,
++ arm_rs_r9_t7_c21,
++ arm_rs_r10_t7_c21,
++ arm_rs_r11_t7_c21,
++ arm_rs_r12_t7_c21,
++ arm_rs_r13_t7_c21,
++ arm_rs_r14_t7_c21,
++ arm_rs_r15_t7_c21,
++ arm_rs_r0_t0_c22,
++ arm_rs_r1_t0_c22,
++ arm_rs_r2_t0_c22,
++ arm_rs_r3_t0_c22,
++ arm_rs_r4_t0_c22,
++ arm_rs_r5_t0_c22,
++ arm_rs_r6_t0_c22,
++ arm_rs_r7_t0_c22,
++ arm_rs_r8_t0_c22,
++ arm_rs_r9_t0_c22,
++ arm_rs_r10_t0_c22,
++ arm_rs_r11_t0_c22,
++ arm_rs_r12_t0_c22,
++ arm_rs_r13_t0_c22,
++ arm_rs_r14_t0_c22,
++ arm_rs_r15_t0_c22,
++ arm_rs_r0_t1_c22,
++ arm_rs_r1_t1_c22,
++ arm_rs_r2_t1_c22,
++ arm_rs_r3_t1_c22,
++ arm_rs_r4_t1_c22,
++ arm_rs_r5_t1_c22,
++ arm_rs_r6_t1_c22,
++ arm_rs_r7_t1_c22,
++ arm_rs_r8_t1_c22,
++ arm_rs_r9_t1_c22,
++ arm_rs_r10_t1_c22,
++ arm_rs_r11_t1_c22,
++ arm_rs_r12_t1_c22,
++ arm_rs_r13_t1_c22,
++ arm_rs_r14_t1_c22,
++ arm_rs_r15_t1_c22,
++ arm_rs_r0_t2_c22,
++ arm_rs_r1_t2_c22,
++ arm_rs_r2_t2_c22,
++ arm_rs_r3_t2_c22,
++ arm_rs_r4_t2_c22,
++ arm_rs_r5_t2_c22,
++ arm_rs_r6_t2_c22,
++ arm_rs_r7_t2_c22,
++ arm_rs_r8_t2_c22,
++ arm_rs_r9_t2_c22,
++ arm_rs_r10_t2_c22,
++ arm_rs_r11_t2_c22,
++ arm_rs_r12_t2_c22,
++ arm_rs_r13_t2_c22,
++ arm_rs_r14_t2_c22,
++ arm_rs_r15_t2_c22,
++ arm_rs_r0_t3_c22,
++ arm_rs_r1_t3_c22,
++ arm_rs_r2_t3_c22,
++ arm_rs_r3_t3_c22,
++ arm_rs_r4_t3_c22,
++ arm_rs_r5_t3_c22,
++ arm_rs_r6_t3_c22,
++ arm_rs_r7_t3_c22,
++ arm_rs_r8_t3_c22,
++ arm_rs_r9_t3_c22,
++ arm_rs_r10_t3_c22,
++ arm_rs_r11_t3_c22,
++ arm_rs_r12_t3_c22,
++ arm_rs_r13_t3_c22,
++ arm_rs_r14_t3_c22,
++ arm_rs_r15_t3_c22,
++ arm_rs_r0_t4_c22,
++ arm_rs_r1_t4_c22,
++ arm_rs_r2_t4_c22,
++ arm_rs_r3_t4_c22,
++ arm_rs_r4_t4_c22,
++ arm_rs_r5_t4_c22,
++ arm_rs_r6_t4_c22,
++ arm_rs_r7_t4_c22,
++ arm_rs_r8_t4_c22,
++ arm_rs_r9_t4_c22,
++ arm_rs_r10_t4_c22,
++ arm_rs_r11_t4_c22,
++ arm_rs_r12_t4_c22,
++ arm_rs_r13_t4_c22,
++ arm_rs_r14_t4_c22,
++ arm_rs_r15_t4_c22,
++ arm_rs_r0_t5_c22,
++ arm_rs_r1_t5_c22,
++ arm_rs_r2_t5_c22,
++ arm_rs_r3_t5_c22,
++ arm_rs_r4_t5_c22,
++ arm_rs_r5_t5_c22,
++ arm_rs_r6_t5_c22,
++ arm_rs_r7_t5_c22,
++ arm_rs_r8_t5_c22,
++ arm_rs_r9_t5_c22,
++ arm_rs_r10_t5_c22,
++ arm_rs_r11_t5_c22,
++ arm_rs_r12_t5_c22,
++ arm_rs_r13_t5_c22,
++ arm_rs_r14_t5_c22,
++ arm_rs_r15_t5_c22,
++ arm_rs_r0_t6_c22,
++ arm_rs_r1_t6_c22,
++ arm_rs_r2_t6_c22,
++ arm_rs_r3_t6_c22,
++ arm_rs_r4_t6_c22,
++ arm_rs_r5_t6_c22,
++ arm_rs_r6_t6_c22,
++ arm_rs_r7_t6_c22,
++ arm_rs_r8_t6_c22,
++ arm_rs_r9_t6_c22,
++ arm_rs_r10_t6_c22,
++ arm_rs_r11_t6_c22,
++ arm_rs_r12_t6_c22,
++ arm_rs_r13_t6_c22,
++ arm_rs_r14_t6_c22,
++ arm_rs_r15_t6_c22,
++ arm_rs_r0_t7_c22,
++ arm_rs_r1_t7_c22,
++ arm_rs_r2_t7_c22,
++ arm_rs_r3_t7_c22,
++ arm_rs_r4_t7_c22,
++ arm_rs_r5_t7_c22,
++ arm_rs_r6_t7_c22,
++ arm_rs_r7_t7_c22,
++ arm_rs_r8_t7_c22,
++ arm_rs_r9_t7_c22,
++ arm_rs_r10_t7_c22,
++ arm_rs_r11_t7_c22,
++ arm_rs_r12_t7_c22,
++ arm_rs_r13_t7_c22,
++ arm_rs_r14_t7_c22,
++ arm_rs_r15_t7_c22,
++ arm_rs_r0_t0_c23,
++ arm_rs_r1_t0_c23,
++ arm_rs_r2_t0_c23,
++ arm_rs_r3_t0_c23,
++ arm_rs_r4_t0_c23,
++ arm_rs_r5_t0_c23,
++ arm_rs_r6_t0_c23,
++ arm_rs_r7_t0_c23,
++ arm_rs_r8_t0_c23,
++ arm_rs_r9_t0_c23,
++ arm_rs_r10_t0_c23,
++ arm_rs_r11_t0_c23,
++ arm_rs_r12_t0_c23,
++ arm_rs_r13_t0_c23,
++ arm_rs_r14_t0_c23,
++ arm_rs_r15_t0_c23,
++ arm_rs_r0_t1_c23,
++ arm_rs_r1_t1_c23,
++ arm_rs_r2_t1_c23,
++ arm_rs_r3_t1_c23,
++ arm_rs_r4_t1_c23,
++ arm_rs_r5_t1_c23,
++ arm_rs_r6_t1_c23,
++ arm_rs_r7_t1_c23,
++ arm_rs_r8_t1_c23,
++ arm_rs_r9_t1_c23,
++ arm_rs_r10_t1_c23,
++ arm_rs_r11_t1_c23,
++ arm_rs_r12_t1_c23,
++ arm_rs_r13_t1_c23,
++ arm_rs_r14_t1_c23,
++ arm_rs_r15_t1_c23,
++ arm_rs_r0_t2_c23,
++ arm_rs_r1_t2_c23,
++ arm_rs_r2_t2_c23,
++ arm_rs_r3_t2_c23,
++ arm_rs_r4_t2_c23,
++ arm_rs_r5_t2_c23,
++ arm_rs_r6_t2_c23,
++ arm_rs_r7_t2_c23,
++ arm_rs_r8_t2_c23,
++ arm_rs_r9_t2_c23,
++ arm_rs_r10_t2_c23,
++ arm_rs_r11_t2_c23,
++ arm_rs_r12_t2_c23,
++ arm_rs_r13_t2_c23,
++ arm_rs_r14_t2_c23,
++ arm_rs_r15_t2_c23,
++ arm_rs_r0_t3_c23,
++ arm_rs_r1_t3_c23,
++ arm_rs_r2_t3_c23,
++ arm_rs_r3_t3_c23,
++ arm_rs_r4_t3_c23,
++ arm_rs_r5_t3_c23,
++ arm_rs_r6_t3_c23,
++ arm_rs_r7_t3_c23,
++ arm_rs_r8_t3_c23,
++ arm_rs_r9_t3_c23,
++ arm_rs_r10_t3_c23,
++ arm_rs_r11_t3_c23,
++ arm_rs_r12_t3_c23,
++ arm_rs_r13_t3_c23,
++ arm_rs_r14_t3_c23,
++ arm_rs_r15_t3_c23,
++ arm_rs_r0_t4_c23,
++ arm_rs_r1_t4_c23,
++ arm_rs_r2_t4_c23,
++ arm_rs_r3_t4_c23,
++ arm_rs_r4_t4_c23,
++ arm_rs_r5_t4_c23,
++ arm_rs_r6_t4_c23,
++ arm_rs_r7_t4_c23,
++ arm_rs_r8_t4_c23,
++ arm_rs_r9_t4_c23,
++ arm_rs_r10_t4_c23,
++ arm_rs_r11_t4_c23,
++ arm_rs_r12_t4_c23,
++ arm_rs_r13_t4_c23,
++ arm_rs_r14_t4_c23,
++ arm_rs_r15_t4_c23,
++ arm_rs_r0_t5_c23,
++ arm_rs_r1_t5_c23,
++ arm_rs_r2_t5_c23,
++ arm_rs_r3_t5_c23,
++ arm_rs_r4_t5_c23,
++ arm_rs_r5_t5_c23,
++ arm_rs_r6_t5_c23,
++ arm_rs_r7_t5_c23,
++ arm_rs_r8_t5_c23,
++ arm_rs_r9_t5_c23,
++ arm_rs_r10_t5_c23,
++ arm_rs_r11_t5_c23,
++ arm_rs_r12_t5_c23,
++ arm_rs_r13_t5_c23,
++ arm_rs_r14_t5_c23,
++ arm_rs_r15_t5_c23,
++ arm_rs_r0_t6_c23,
++ arm_rs_r1_t6_c23,
++ arm_rs_r2_t6_c23,
++ arm_rs_r3_t6_c23,
++ arm_rs_r4_t6_c23,
++ arm_rs_r5_t6_c23,
++ arm_rs_r6_t6_c23,
++ arm_rs_r7_t6_c23,
++ arm_rs_r8_t6_c23,
++ arm_rs_r9_t6_c23,
++ arm_rs_r10_t6_c23,
++ arm_rs_r11_t6_c23,
++ arm_rs_r12_t6_c23,
++ arm_rs_r13_t6_c23,
++ arm_rs_r14_t6_c23,
++ arm_rs_r15_t6_c23,
++ arm_rs_r0_t7_c23,
++ arm_rs_r1_t7_c23,
++ arm_rs_r2_t7_c23,
++ arm_rs_r3_t7_c23,
++ arm_rs_r4_t7_c23,
++ arm_rs_r5_t7_c23,
++ arm_rs_r6_t7_c23,
++ arm_rs_r7_t7_c23,
++ arm_rs_r8_t7_c23,
++ arm_rs_r9_t7_c23,
++ arm_rs_r10_t7_c23,
++ arm_rs_r11_t7_c23,
++ arm_rs_r12_t7_c23,
++ arm_rs_r13_t7_c23,
++ arm_rs_r14_t7_c23,
++ arm_rs_r15_t7_c23,
++ arm_rs_r0_t0_c24,
++ arm_rs_r1_t0_c24,
++ arm_rs_r2_t0_c24,
++ arm_rs_r3_t0_c24,
++ arm_rs_r4_t0_c24,
++ arm_rs_r5_t0_c24,
++ arm_rs_r6_t0_c24,
++ arm_rs_r7_t0_c24,
++ arm_rs_r8_t0_c24,
++ arm_rs_r9_t0_c24,
++ arm_rs_r10_t0_c24,
++ arm_rs_r11_t0_c24,
++ arm_rs_r12_t0_c24,
++ arm_rs_r13_t0_c24,
++ arm_rs_r14_t0_c24,
++ arm_rs_r15_t0_c24,
++ arm_rs_r0_t1_c24,
++ arm_rs_r1_t1_c24,
++ arm_rs_r2_t1_c24,
++ arm_rs_r3_t1_c24,
++ arm_rs_r4_t1_c24,
++ arm_rs_r5_t1_c24,
++ arm_rs_r6_t1_c24,
++ arm_rs_r7_t1_c24,
++ arm_rs_r8_t1_c24,
++ arm_rs_r9_t1_c24,
++ arm_rs_r10_t1_c24,
++ arm_rs_r11_t1_c24,
++ arm_rs_r12_t1_c24,
++ arm_rs_r13_t1_c24,
++ arm_rs_r14_t1_c24,
++ arm_rs_r15_t1_c24,
++ arm_rs_r0_t2_c24,
++ arm_rs_r1_t2_c24,
++ arm_rs_r2_t2_c24,
++ arm_rs_r3_t2_c24,
++ arm_rs_r4_t2_c24,
++ arm_rs_r5_t2_c24,
++ arm_rs_r6_t2_c24,
++ arm_rs_r7_t2_c24,
++ arm_rs_r8_t2_c24,
++ arm_rs_r9_t2_c24,
++ arm_rs_r10_t2_c24,
++ arm_rs_r11_t2_c24,
++ arm_rs_r12_t2_c24,
++ arm_rs_r13_t2_c24,
++ arm_rs_r14_t2_c24,
++ arm_rs_r15_t2_c24,
++ arm_rs_r0_t3_c24,
++ arm_rs_r1_t3_c24,
++ arm_rs_r2_t3_c24,
++ arm_rs_r3_t3_c24,
++ arm_rs_r4_t3_c24,
++ arm_rs_r5_t3_c24,
++ arm_rs_r6_t3_c24,
++ arm_rs_r7_t3_c24,
++ arm_rs_r8_t3_c24,
++ arm_rs_r9_t3_c24,
++ arm_rs_r10_t3_c24,
++ arm_rs_r11_t3_c24,
++ arm_rs_r12_t3_c24,
++ arm_rs_r13_t3_c24,
++ arm_rs_r14_t3_c24,
++ arm_rs_r15_t3_c24,
++ arm_rs_r0_t4_c24,
++ arm_rs_r1_t4_c24,
++ arm_rs_r2_t4_c24,
++ arm_rs_r3_t4_c24,
++ arm_rs_r4_t4_c24,
++ arm_rs_r5_t4_c24,
++ arm_rs_r6_t4_c24,
++ arm_rs_r7_t4_c24,
++ arm_rs_r8_t4_c24,
++ arm_rs_r9_t4_c24,
++ arm_rs_r10_t4_c24,
++ arm_rs_r11_t4_c24,
++ arm_rs_r12_t4_c24,
++ arm_rs_r13_t4_c24,
++ arm_rs_r14_t4_c24,
++ arm_rs_r15_t4_c24,
++ arm_rs_r0_t5_c24,
++ arm_rs_r1_t5_c24,
++ arm_rs_r2_t5_c24,
++ arm_rs_r3_t5_c24,
++ arm_rs_r4_t5_c24,
++ arm_rs_r5_t5_c24,
++ arm_rs_r6_t5_c24,
++ arm_rs_r7_t5_c24,
++ arm_rs_r8_t5_c24,
++ arm_rs_r9_t5_c24,
++ arm_rs_r10_t5_c24,
++ arm_rs_r11_t5_c24,
++ arm_rs_r12_t5_c24,
++ arm_rs_r13_t5_c24,
++ arm_rs_r14_t5_c24,
++ arm_rs_r15_t5_c24,
++ arm_rs_r0_t6_c24,
++ arm_rs_r1_t6_c24,
++ arm_rs_r2_t6_c24,
++ arm_rs_r3_t6_c24,
++ arm_rs_r4_t6_c24,
++ arm_rs_r5_t6_c24,
++ arm_rs_r6_t6_c24,
++ arm_rs_r7_t6_c24,
++ arm_rs_r8_t6_c24,
++ arm_rs_r9_t6_c24,
++ arm_rs_r10_t6_c24,
++ arm_rs_r11_t6_c24,
++ arm_rs_r12_t6_c24,
++ arm_rs_r13_t6_c24,
++ arm_rs_r14_t6_c24,
++ arm_rs_r15_t6_c24,
++ arm_rs_r0_t7_c24,
++ arm_rs_r1_t7_c24,
++ arm_rs_r2_t7_c24,
++ arm_rs_r3_t7_c24,
++ arm_rs_r4_t7_c24,
++ arm_rs_r5_t7_c24,
++ arm_rs_r6_t7_c24,
++ arm_rs_r7_t7_c24,
++ arm_rs_r8_t7_c24,
++ arm_rs_r9_t7_c24,
++ arm_rs_r10_t7_c24,
++ arm_rs_r11_t7_c24,
++ arm_rs_r12_t7_c24,
++ arm_rs_r13_t7_c24,
++ arm_rs_r14_t7_c24,
++ arm_rs_r15_t7_c24,
++ arm_rs_r0_t0_c25,
++ arm_rs_r1_t0_c25,
++ arm_rs_r2_t0_c25,
++ arm_rs_r3_t0_c25,
++ arm_rs_r4_t0_c25,
++ arm_rs_r5_t0_c25,
++ arm_rs_r6_t0_c25,
++ arm_rs_r7_t0_c25,
++ arm_rs_r8_t0_c25,
++ arm_rs_r9_t0_c25,
++ arm_rs_r10_t0_c25,
++ arm_rs_r11_t0_c25,
++ arm_rs_r12_t0_c25,
++ arm_rs_r13_t0_c25,
++ arm_rs_r14_t0_c25,
++ arm_rs_r15_t0_c25,
++ arm_rs_r0_t1_c25,
++ arm_rs_r1_t1_c25,
++ arm_rs_r2_t1_c25,
++ arm_rs_r3_t1_c25,
++ arm_rs_r4_t1_c25,
++ arm_rs_r5_t1_c25,
++ arm_rs_r6_t1_c25,
++ arm_rs_r7_t1_c25,
++ arm_rs_r8_t1_c25,
++ arm_rs_r9_t1_c25,
++ arm_rs_r10_t1_c25,
++ arm_rs_r11_t1_c25,
++ arm_rs_r12_t1_c25,
++ arm_rs_r13_t1_c25,
++ arm_rs_r14_t1_c25,
++ arm_rs_r15_t1_c25,
++ arm_rs_r0_t2_c25,
++ arm_rs_r1_t2_c25,
++ arm_rs_r2_t2_c25,
++ arm_rs_r3_t2_c25,
++ arm_rs_r4_t2_c25,
++ arm_rs_r5_t2_c25,
++ arm_rs_r6_t2_c25,
++ arm_rs_r7_t2_c25,
++ arm_rs_r8_t2_c25,
++ arm_rs_r9_t2_c25,
++ arm_rs_r10_t2_c25,
++ arm_rs_r11_t2_c25,
++ arm_rs_r12_t2_c25,
++ arm_rs_r13_t2_c25,
++ arm_rs_r14_t2_c25,
++ arm_rs_r15_t2_c25,
++ arm_rs_r0_t3_c25,
++ arm_rs_r1_t3_c25,
++ arm_rs_r2_t3_c25,
++ arm_rs_r3_t3_c25,
++ arm_rs_r4_t3_c25,
++ arm_rs_r5_t3_c25,
++ arm_rs_r6_t3_c25,
++ arm_rs_r7_t3_c25,
++ arm_rs_r8_t3_c25,
++ arm_rs_r9_t3_c25,
++ arm_rs_r10_t3_c25,
++ arm_rs_r11_t3_c25,
++ arm_rs_r12_t3_c25,
++ arm_rs_r13_t3_c25,
++ arm_rs_r14_t3_c25,
++ arm_rs_r15_t3_c25,
++ arm_rs_r0_t4_c25,
++ arm_rs_r1_t4_c25,
++ arm_rs_r2_t4_c25,
++ arm_rs_r3_t4_c25,
++ arm_rs_r4_t4_c25,
++ arm_rs_r5_t4_c25,
++ arm_rs_r6_t4_c25,
++ arm_rs_r7_t4_c25,
++ arm_rs_r8_t4_c25,
++ arm_rs_r9_t4_c25,
++ arm_rs_r10_t4_c25,
++ arm_rs_r11_t4_c25,
++ arm_rs_r12_t4_c25,
++ arm_rs_r13_t4_c25,
++ arm_rs_r14_t4_c25,
++ arm_rs_r15_t4_c25,
++ arm_rs_r0_t5_c25,
++ arm_rs_r1_t5_c25,
++ arm_rs_r2_t5_c25,
++ arm_rs_r3_t5_c25,
++ arm_rs_r4_t5_c25,
++ arm_rs_r5_t5_c25,
++ arm_rs_r6_t5_c25,
++ arm_rs_r7_t5_c25,
++ arm_rs_r8_t5_c25,
++ arm_rs_r9_t5_c25,
++ arm_rs_r10_t5_c25,
++ arm_rs_r11_t5_c25,
++ arm_rs_r12_t5_c25,
++ arm_rs_r13_t5_c25,
++ arm_rs_r14_t5_c25,
++ arm_rs_r15_t5_c25,
++ arm_rs_r0_t6_c25,
++ arm_rs_r1_t6_c25,
++ arm_rs_r2_t6_c25,
++ arm_rs_r3_t6_c25,
++ arm_rs_r4_t6_c25,
++ arm_rs_r5_t6_c25,
++ arm_rs_r6_t6_c25,
++ arm_rs_r7_t6_c25,
++ arm_rs_r8_t6_c25,
++ arm_rs_r9_t6_c25,
++ arm_rs_r10_t6_c25,
++ arm_rs_r11_t6_c25,
++ arm_rs_r12_t6_c25,
++ arm_rs_r13_t6_c25,
++ arm_rs_r14_t6_c25,
++ arm_rs_r15_t6_c25,
++ arm_rs_r0_t7_c25,
++ arm_rs_r1_t7_c25,
++ arm_rs_r2_t7_c25,
++ arm_rs_r3_t7_c25,
++ arm_rs_r4_t7_c25,
++ arm_rs_r5_t7_c25,
++ arm_rs_r6_t7_c25,
++ arm_rs_r7_t7_c25,
++ arm_rs_r8_t7_c25,
++ arm_rs_r9_t7_c25,
++ arm_rs_r10_t7_c25,
++ arm_rs_r11_t7_c25,
++ arm_rs_r12_t7_c25,
++ arm_rs_r13_t7_c25,
++ arm_rs_r14_t7_c25,
++ arm_rs_r15_t7_c25,
++ arm_rs_r0_t0_c26,
++ arm_rs_r1_t0_c26,
++ arm_rs_r2_t0_c26,
++ arm_rs_r3_t0_c26,
++ arm_rs_r4_t0_c26,
++ arm_rs_r5_t0_c26,
++ arm_rs_r6_t0_c26,
++ arm_rs_r7_t0_c26,
++ arm_rs_r8_t0_c26,
++ arm_rs_r9_t0_c26,
++ arm_rs_r10_t0_c26,
++ arm_rs_r11_t0_c26,
++ arm_rs_r12_t0_c26,
++ arm_rs_r13_t0_c26,
++ arm_rs_r14_t0_c26,
++ arm_rs_r15_t0_c26,
++ arm_rs_r0_t1_c26,
++ arm_rs_r1_t1_c26,
++ arm_rs_r2_t1_c26,
++ arm_rs_r3_t1_c26,
++ arm_rs_r4_t1_c26,
++ arm_rs_r5_t1_c26,
++ arm_rs_r6_t1_c26,
++ arm_rs_r7_t1_c26,
++ arm_rs_r8_t1_c26,
++ arm_rs_r9_t1_c26,
++ arm_rs_r10_t1_c26,
++ arm_rs_r11_t1_c26,
++ arm_rs_r12_t1_c26,
++ arm_rs_r13_t1_c26,
++ arm_rs_r14_t1_c26,
++ arm_rs_r15_t1_c26,
++ arm_rs_r0_t2_c26,
++ arm_rs_r1_t2_c26,
++ arm_rs_r2_t2_c26,
++ arm_rs_r3_t2_c26,
++ arm_rs_r4_t2_c26,
++ arm_rs_r5_t2_c26,
++ arm_rs_r6_t2_c26,
++ arm_rs_r7_t2_c26,
++ arm_rs_r8_t2_c26,
++ arm_rs_r9_t2_c26,
++ arm_rs_r10_t2_c26,
++ arm_rs_r11_t2_c26,
++ arm_rs_r12_t2_c26,
++ arm_rs_r13_t2_c26,
++ arm_rs_r14_t2_c26,
++ arm_rs_r15_t2_c26,
++ arm_rs_r0_t3_c26,
++ arm_rs_r1_t3_c26,
++ arm_rs_r2_t3_c26,
++ arm_rs_r3_t3_c26,
++ arm_rs_r4_t3_c26,
++ arm_rs_r5_t3_c26,
++ arm_rs_r6_t3_c26,
++ arm_rs_r7_t3_c26,
++ arm_rs_r8_t3_c26,
++ arm_rs_r9_t3_c26,
++ arm_rs_r10_t3_c26,
++ arm_rs_r11_t3_c26,
++ arm_rs_r12_t3_c26,
++ arm_rs_r13_t3_c26,
++ arm_rs_r14_t3_c26,
++ arm_rs_r15_t3_c26,
++ arm_rs_r0_t4_c26,
++ arm_rs_r1_t4_c26,
++ arm_rs_r2_t4_c26,
++ arm_rs_r3_t4_c26,
++ arm_rs_r4_t4_c26,
++ arm_rs_r5_t4_c26,
++ arm_rs_r6_t4_c26,
++ arm_rs_r7_t4_c26,
++ arm_rs_r8_t4_c26,
++ arm_rs_r9_t4_c26,
++ arm_rs_r10_t4_c26,
++ arm_rs_r11_t4_c26,
++ arm_rs_r12_t4_c26,
++ arm_rs_r13_t4_c26,
++ arm_rs_r14_t4_c26,
++ arm_rs_r15_t4_c26,
++ arm_rs_r0_t5_c26,
++ arm_rs_r1_t5_c26,
++ arm_rs_r2_t5_c26,
++ arm_rs_r3_t5_c26,
++ arm_rs_r4_t5_c26,
++ arm_rs_r5_t5_c26,
++ arm_rs_r6_t5_c26,
++ arm_rs_r7_t5_c26,
++ arm_rs_r8_t5_c26,
++ arm_rs_r9_t5_c26,
++ arm_rs_r10_t5_c26,
++ arm_rs_r11_t5_c26,
++ arm_rs_r12_t5_c26,
++ arm_rs_r13_t5_c26,
++ arm_rs_r14_t5_c26,
++ arm_rs_r15_t5_c26,
++ arm_rs_r0_t6_c26,
++ arm_rs_r1_t6_c26,
++ arm_rs_r2_t6_c26,
++ arm_rs_r3_t6_c26,
++ arm_rs_r4_t6_c26,
++ arm_rs_r5_t6_c26,
++ arm_rs_r6_t6_c26,
++ arm_rs_r7_t6_c26,
++ arm_rs_r8_t6_c26,
++ arm_rs_r9_t6_c26,
++ arm_rs_r10_t6_c26,
++ arm_rs_r11_t6_c26,
++ arm_rs_r12_t6_c26,
++ arm_rs_r13_t6_c26,
++ arm_rs_r14_t6_c26,
++ arm_rs_r15_t6_c26,
++ arm_rs_r0_t7_c26,
++ arm_rs_r1_t7_c26,
++ arm_rs_r2_t7_c26,
++ arm_rs_r3_t7_c26,
++ arm_rs_r4_t7_c26,
++ arm_rs_r5_t7_c26,
++ arm_rs_r6_t7_c26,
++ arm_rs_r7_t7_c26,
++ arm_rs_r8_t7_c26,
++ arm_rs_r9_t7_c26,
++ arm_rs_r10_t7_c26,
++ arm_rs_r11_t7_c26,
++ arm_rs_r12_t7_c26,
++ arm_rs_r13_t7_c26,
++ arm_rs_r14_t7_c26,
++ arm_rs_r15_t7_c26,
++ arm_rs_r0_t0_c27,
++ arm_rs_r1_t0_c27,
++ arm_rs_r2_t0_c27,
++ arm_rs_r3_t0_c27,
++ arm_rs_r4_t0_c27,
++ arm_rs_r5_t0_c27,
++ arm_rs_r6_t0_c27,
++ arm_rs_r7_t0_c27,
++ arm_rs_r8_t0_c27,
++ arm_rs_r9_t0_c27,
++ arm_rs_r10_t0_c27,
++ arm_rs_r11_t0_c27,
++ arm_rs_r12_t0_c27,
++ arm_rs_r13_t0_c27,
++ arm_rs_r14_t0_c27,
++ arm_rs_r15_t0_c27,
++ arm_rs_r0_t1_c27,
++ arm_rs_r1_t1_c27,
++ arm_rs_r2_t1_c27,
++ arm_rs_r3_t1_c27,
++ arm_rs_r4_t1_c27,
++ arm_rs_r5_t1_c27,
++ arm_rs_r6_t1_c27,
++ arm_rs_r7_t1_c27,
++ arm_rs_r8_t1_c27,
++ arm_rs_r9_t1_c27,
++ arm_rs_r10_t1_c27,
++ arm_rs_r11_t1_c27,
++ arm_rs_r12_t1_c27,
++ arm_rs_r13_t1_c27,
++ arm_rs_r14_t1_c27,
++ arm_rs_r15_t1_c27,
++ arm_rs_r0_t2_c27,
++ arm_rs_r1_t2_c27,
++ arm_rs_r2_t2_c27,
++ arm_rs_r3_t2_c27,
++ arm_rs_r4_t2_c27,
++ arm_rs_r5_t2_c27,
++ arm_rs_r6_t2_c27,
++ arm_rs_r7_t2_c27,
++ arm_rs_r8_t2_c27,
++ arm_rs_r9_t2_c27,
++ arm_rs_r10_t2_c27,
++ arm_rs_r11_t2_c27,
++ arm_rs_r12_t2_c27,
++ arm_rs_r13_t2_c27,
++ arm_rs_r14_t2_c27,
++ arm_rs_r15_t2_c27,
++ arm_rs_r0_t3_c27,
++ arm_rs_r1_t3_c27,
++ arm_rs_r2_t3_c27,
++ arm_rs_r3_t3_c27,
++ arm_rs_r4_t3_c27,
++ arm_rs_r5_t3_c27,
++ arm_rs_r6_t3_c27,
++ arm_rs_r7_t3_c27,
++ arm_rs_r8_t3_c27,
++ arm_rs_r9_t3_c27,
++ arm_rs_r10_t3_c27,
++ arm_rs_r11_t3_c27,
++ arm_rs_r12_t3_c27,
++ arm_rs_r13_t3_c27,
++ arm_rs_r14_t3_c27,
++ arm_rs_r15_t3_c27,
++ arm_rs_r0_t4_c27,
++ arm_rs_r1_t4_c27,
++ arm_rs_r2_t4_c27,
++ arm_rs_r3_t4_c27,
++ arm_rs_r4_t4_c27,
++ arm_rs_r5_t4_c27,
++ arm_rs_r6_t4_c27,
++ arm_rs_r7_t4_c27,
++ arm_rs_r8_t4_c27,
++ arm_rs_r9_t4_c27,
++ arm_rs_r10_t4_c27,
++ arm_rs_r11_t4_c27,
++ arm_rs_r12_t4_c27,
++ arm_rs_r13_t4_c27,
++ arm_rs_r14_t4_c27,
++ arm_rs_r15_t4_c27,
++ arm_rs_r0_t5_c27,
++ arm_rs_r1_t5_c27,
++ arm_rs_r2_t5_c27,
++ arm_rs_r3_t5_c27,
++ arm_rs_r4_t5_c27,
++ arm_rs_r5_t5_c27,
++ arm_rs_r6_t5_c27,
++ arm_rs_r7_t5_c27,
++ arm_rs_r8_t5_c27,
++ arm_rs_r9_t5_c27,
++ arm_rs_r10_t5_c27,
++ arm_rs_r11_t5_c27,
++ arm_rs_r12_t5_c27,
++ arm_rs_r13_t5_c27,
++ arm_rs_r14_t5_c27,
++ arm_rs_r15_t5_c27,
++ arm_rs_r0_t6_c27,
++ arm_rs_r1_t6_c27,
++ arm_rs_r2_t6_c27,
++ arm_rs_r3_t6_c27,
++ arm_rs_r4_t6_c27,
++ arm_rs_r5_t6_c27,
++ arm_rs_r6_t6_c27,
++ arm_rs_r7_t6_c27,
++ arm_rs_r8_t6_c27,
++ arm_rs_r9_t6_c27,
++ arm_rs_r10_t6_c27,
++ arm_rs_r11_t6_c27,
++ arm_rs_r12_t6_c27,
++ arm_rs_r13_t6_c27,
++ arm_rs_r14_t6_c27,
++ arm_rs_r15_t6_c27,
++ arm_rs_r0_t7_c27,
++ arm_rs_r1_t7_c27,
++ arm_rs_r2_t7_c27,
++ arm_rs_r3_t7_c27,
++ arm_rs_r4_t7_c27,
++ arm_rs_r5_t7_c27,
++ arm_rs_r6_t7_c27,
++ arm_rs_r7_t7_c27,
++ arm_rs_r8_t7_c27,
++ arm_rs_r9_t7_c27,
++ arm_rs_r10_t7_c27,
++ arm_rs_r11_t7_c27,
++ arm_rs_r12_t7_c27,
++ arm_rs_r13_t7_c27,
++ arm_rs_r14_t7_c27,
++ arm_rs_r15_t7_c27,
++ arm_rs_r0_t0_c28,
++ arm_rs_r1_t0_c28,
++ arm_rs_r2_t0_c28,
++ arm_rs_r3_t0_c28,
++ arm_rs_r4_t0_c28,
++ arm_rs_r5_t0_c28,
++ arm_rs_r6_t0_c28,
++ arm_rs_r7_t0_c28,
++ arm_rs_r8_t0_c28,
++ arm_rs_r9_t0_c28,
++ arm_rs_r10_t0_c28,
++ arm_rs_r11_t0_c28,
++ arm_rs_r12_t0_c28,
++ arm_rs_r13_t0_c28,
++ arm_rs_r14_t0_c28,
++ arm_rs_r15_t0_c28,
++ arm_rs_r0_t1_c28,
++ arm_rs_r1_t1_c28,
++ arm_rs_r2_t1_c28,
++ arm_rs_r3_t1_c28,
++ arm_rs_r4_t1_c28,
++ arm_rs_r5_t1_c28,
++ arm_rs_r6_t1_c28,
++ arm_rs_r7_t1_c28,
++ arm_rs_r8_t1_c28,
++ arm_rs_r9_t1_c28,
++ arm_rs_r10_t1_c28,
++ arm_rs_r11_t1_c28,
++ arm_rs_r12_t1_c28,
++ arm_rs_r13_t1_c28,
++ arm_rs_r14_t1_c28,
++ arm_rs_r15_t1_c28,
++ arm_rs_r0_t2_c28,
++ arm_rs_r1_t2_c28,
++ arm_rs_r2_t2_c28,
++ arm_rs_r3_t2_c28,
++ arm_rs_r4_t2_c28,
++ arm_rs_r5_t2_c28,
++ arm_rs_r6_t2_c28,
++ arm_rs_r7_t2_c28,
++ arm_rs_r8_t2_c28,
++ arm_rs_r9_t2_c28,
++ arm_rs_r10_t2_c28,
++ arm_rs_r11_t2_c28,
++ arm_rs_r12_t2_c28,
++ arm_rs_r13_t2_c28,
++ arm_rs_r14_t2_c28,
++ arm_rs_r15_t2_c28,
++ arm_rs_r0_t3_c28,
++ arm_rs_r1_t3_c28,
++ arm_rs_r2_t3_c28,
++ arm_rs_r3_t3_c28,
++ arm_rs_r4_t3_c28,
++ arm_rs_r5_t3_c28,
++ arm_rs_r6_t3_c28,
++ arm_rs_r7_t3_c28,
++ arm_rs_r8_t3_c28,
++ arm_rs_r9_t3_c28,
++ arm_rs_r10_t3_c28,
++ arm_rs_r11_t3_c28,
++ arm_rs_r12_t3_c28,
++ arm_rs_r13_t3_c28,
++ arm_rs_r14_t3_c28,
++ arm_rs_r15_t3_c28,
++ arm_rs_r0_t4_c28,
++ arm_rs_r1_t4_c28,
++ arm_rs_r2_t4_c28,
++ arm_rs_r3_t4_c28,
++ arm_rs_r4_t4_c28,
++ arm_rs_r5_t4_c28,
++ arm_rs_r6_t4_c28,
++ arm_rs_r7_t4_c28,
++ arm_rs_r8_t4_c28,
++ arm_rs_r9_t4_c28,
++ arm_rs_r10_t4_c28,
++ arm_rs_r11_t4_c28,
++ arm_rs_r12_t4_c28,
++ arm_rs_r13_t4_c28,
++ arm_rs_r14_t4_c28,
++ arm_rs_r15_t4_c28,
++ arm_rs_r0_t5_c28,
++ arm_rs_r1_t5_c28,
++ arm_rs_r2_t5_c28,
++ arm_rs_r3_t5_c28,
++ arm_rs_r4_t5_c28,
++ arm_rs_r5_t5_c28,
++ arm_rs_r6_t5_c28,
++ arm_rs_r7_t5_c28,
++ arm_rs_r8_t5_c28,
++ arm_rs_r9_t5_c28,
++ arm_rs_r10_t5_c28,
++ arm_rs_r11_t5_c28,
++ arm_rs_r12_t5_c28,
++ arm_rs_r13_t5_c28,
++ arm_rs_r14_t5_c28,
++ arm_rs_r15_t5_c28,
++ arm_rs_r0_t6_c28,
++ arm_rs_r1_t6_c28,
++ arm_rs_r2_t6_c28,
++ arm_rs_r3_t6_c28,
++ arm_rs_r4_t6_c28,
++ arm_rs_r5_t6_c28,
++ arm_rs_r6_t6_c28,
++ arm_rs_r7_t6_c28,
++ arm_rs_r8_t6_c28,
++ arm_rs_r9_t6_c28,
++ arm_rs_r10_t6_c28,
++ arm_rs_r11_t6_c28,
++ arm_rs_r12_t6_c28,
++ arm_rs_r13_t6_c28,
++ arm_rs_r14_t6_c28,
++ arm_rs_r15_t6_c28,
++ arm_rs_r0_t7_c28,
++ arm_rs_r1_t7_c28,
++ arm_rs_r2_t7_c28,
++ arm_rs_r3_t7_c28,
++ arm_rs_r4_t7_c28,
++ arm_rs_r5_t7_c28,
++ arm_rs_r6_t7_c28,
++ arm_rs_r7_t7_c28,
++ arm_rs_r8_t7_c28,
++ arm_rs_r9_t7_c28,
++ arm_rs_r10_t7_c28,
++ arm_rs_r11_t7_c28,
++ arm_rs_r12_t7_c28,
++ arm_rs_r13_t7_c28,
++ arm_rs_r14_t7_c28,
++ arm_rs_r15_t7_c28,
++ arm_rs_r0_t0_c29,
++ arm_rs_r1_t0_c29,
++ arm_rs_r2_t0_c29,
++ arm_rs_r3_t0_c29,
++ arm_rs_r4_t0_c29,
++ arm_rs_r5_t0_c29,
++ arm_rs_r6_t0_c29,
++ arm_rs_r7_t0_c29,
++ arm_rs_r8_t0_c29,
++ arm_rs_r9_t0_c29,
++ arm_rs_r10_t0_c29,
++ arm_rs_r11_t0_c29,
++ arm_rs_r12_t0_c29,
++ arm_rs_r13_t0_c29,
++ arm_rs_r14_t0_c29,
++ arm_rs_r15_t0_c29,
++ arm_rs_r0_t1_c29,
++ arm_rs_r1_t1_c29,
++ arm_rs_r2_t1_c29,
++ arm_rs_r3_t1_c29,
++ arm_rs_r4_t1_c29,
++ arm_rs_r5_t1_c29,
++ arm_rs_r6_t1_c29,
++ arm_rs_r7_t1_c29,
++ arm_rs_r8_t1_c29,
++ arm_rs_r9_t1_c29,
++ arm_rs_r10_t1_c29,
++ arm_rs_r11_t1_c29,
++ arm_rs_r12_t1_c29,
++ arm_rs_r13_t1_c29,
++ arm_rs_r14_t1_c29,
++ arm_rs_r15_t1_c29,
++ arm_rs_r0_t2_c29,
++ arm_rs_r1_t2_c29,
++ arm_rs_r2_t2_c29,
++ arm_rs_r3_t2_c29,
++ arm_rs_r4_t2_c29,
++ arm_rs_r5_t2_c29,
++ arm_rs_r6_t2_c29,
++ arm_rs_r7_t2_c29,
++ arm_rs_r8_t2_c29,
++ arm_rs_r9_t2_c29,
++ arm_rs_r10_t2_c29,
++ arm_rs_r11_t2_c29,
++ arm_rs_r12_t2_c29,
++ arm_rs_r13_t2_c29,
++ arm_rs_r14_t2_c29,
++ arm_rs_r15_t2_c29,
++ arm_rs_r0_t3_c29,
++ arm_rs_r1_t3_c29,
++ arm_rs_r2_t3_c29,
++ arm_rs_r3_t3_c29,
++ arm_rs_r4_t3_c29,
++ arm_rs_r5_t3_c29,
++ arm_rs_r6_t3_c29,
++ arm_rs_r7_t3_c29,
++ arm_rs_r8_t3_c29,
++ arm_rs_r9_t3_c29,
++ arm_rs_r10_t3_c29,
++ arm_rs_r11_t3_c29,
++ arm_rs_r12_t3_c29,
++ arm_rs_r13_t3_c29,
++ arm_rs_r14_t3_c29,
++ arm_rs_r15_t3_c29,
++ arm_rs_r0_t4_c29,
++ arm_rs_r1_t4_c29,
++ arm_rs_r2_t4_c29,
++ arm_rs_r3_t4_c29,
++ arm_rs_r4_t4_c29,
++ arm_rs_r5_t4_c29,
++ arm_rs_r6_t4_c29,
++ arm_rs_r7_t4_c29,
++ arm_rs_r8_t4_c29,
++ arm_rs_r9_t4_c29,
++ arm_rs_r10_t4_c29,
++ arm_rs_r11_t4_c29,
++ arm_rs_r12_t4_c29,
++ arm_rs_r13_t4_c29,
++ arm_rs_r14_t4_c29,
++ arm_rs_r15_t4_c29,
++ arm_rs_r0_t5_c29,
++ arm_rs_r1_t5_c29,
++ arm_rs_r2_t5_c29,
++ arm_rs_r3_t5_c29,
++ arm_rs_r4_t5_c29,
++ arm_rs_r5_t5_c29,
++ arm_rs_r6_t5_c29,
++ arm_rs_r7_t5_c29,
++ arm_rs_r8_t5_c29,
++ arm_rs_r9_t5_c29,
++ arm_rs_r10_t5_c29,
++ arm_rs_r11_t5_c29,
++ arm_rs_r12_t5_c29,
++ arm_rs_r13_t5_c29,
++ arm_rs_r14_t5_c29,
++ arm_rs_r15_t5_c29,
++ arm_rs_r0_t6_c29,
++ arm_rs_r1_t6_c29,
++ arm_rs_r2_t6_c29,
++ arm_rs_r3_t6_c29,
++ arm_rs_r4_t6_c29,
++ arm_rs_r5_t6_c29,
++ arm_rs_r6_t6_c29,
++ arm_rs_r7_t6_c29,
++ arm_rs_r8_t6_c29,
++ arm_rs_r9_t6_c29,
++ arm_rs_r10_t6_c29,
++ arm_rs_r11_t6_c29,
++ arm_rs_r12_t6_c29,
++ arm_rs_r13_t6_c29,
++ arm_rs_r14_t6_c29,
++ arm_rs_r15_t6_c29,
++ arm_rs_r0_t7_c29,
++ arm_rs_r1_t7_c29,
++ arm_rs_r2_t7_c29,
++ arm_rs_r3_t7_c29,
++ arm_rs_r4_t7_c29,
++ arm_rs_r5_t7_c29,
++ arm_rs_r6_t7_c29,
++ arm_rs_r7_t7_c29,
++ arm_rs_r8_t7_c29,
++ arm_rs_r9_t7_c29,
++ arm_rs_r10_t7_c29,
++ arm_rs_r11_t7_c29,
++ arm_rs_r12_t7_c29,
++ arm_rs_r13_t7_c29,
++ arm_rs_r14_t7_c29,
++ arm_rs_r15_t7_c29,
++ arm_rs_r0_t0_c30,
++ arm_rs_r1_t0_c30,
++ arm_rs_r2_t0_c30,
++ arm_rs_r3_t0_c30,
++ arm_rs_r4_t0_c30,
++ arm_rs_r5_t0_c30,
++ arm_rs_r6_t0_c30,
++ arm_rs_r7_t0_c30,
++ arm_rs_r8_t0_c30,
++ arm_rs_r9_t0_c30,
++ arm_rs_r10_t0_c30,
++ arm_rs_r11_t0_c30,
++ arm_rs_r12_t0_c30,
++ arm_rs_r13_t0_c30,
++ arm_rs_r14_t0_c30,
++ arm_rs_r15_t0_c30,
++ arm_rs_r0_t1_c30,
++ arm_rs_r1_t1_c30,
++ arm_rs_r2_t1_c30,
++ arm_rs_r3_t1_c30,
++ arm_rs_r4_t1_c30,
++ arm_rs_r5_t1_c30,
++ arm_rs_r6_t1_c30,
++ arm_rs_r7_t1_c30,
++ arm_rs_r8_t1_c30,
++ arm_rs_r9_t1_c30,
++ arm_rs_r10_t1_c30,
++ arm_rs_r11_t1_c30,
++ arm_rs_r12_t1_c30,
++ arm_rs_r13_t1_c30,
++ arm_rs_r14_t1_c30,
++ arm_rs_r15_t1_c30,
++ arm_rs_r0_t2_c30,
++ arm_rs_r1_t2_c30,
++ arm_rs_r2_t2_c30,
++ arm_rs_r3_t2_c30,
++ arm_rs_r4_t2_c30,
++ arm_rs_r5_t2_c30,
++ arm_rs_r6_t2_c30,
++ arm_rs_r7_t2_c30,
++ arm_rs_r8_t2_c30,
++ arm_rs_r9_t2_c30,
++ arm_rs_r10_t2_c30,
++ arm_rs_r11_t2_c30,
++ arm_rs_r12_t2_c30,
++ arm_rs_r13_t2_c30,
++ arm_rs_r14_t2_c30,
++ arm_rs_r15_t2_c30,
++ arm_rs_r0_t3_c30,
++ arm_rs_r1_t3_c30,
++ arm_rs_r2_t3_c30,
++ arm_rs_r3_t3_c30,
++ arm_rs_r4_t3_c30,
++ arm_rs_r5_t3_c30,
++ arm_rs_r6_t3_c30,
++ arm_rs_r7_t3_c30,
++ arm_rs_r8_t3_c30,
++ arm_rs_r9_t3_c30,
++ arm_rs_r10_t3_c30,
++ arm_rs_r11_t3_c30,
++ arm_rs_r12_t3_c30,
++ arm_rs_r13_t3_c30,
++ arm_rs_r14_t3_c30,
++ arm_rs_r15_t3_c30,
++ arm_rs_r0_t4_c30,
++ arm_rs_r1_t4_c30,
++ arm_rs_r2_t4_c30,
++ arm_rs_r3_t4_c30,
++ arm_rs_r4_t4_c30,
++ arm_rs_r5_t4_c30,
++ arm_rs_r6_t4_c30,
++ arm_rs_r7_t4_c30,
++ arm_rs_r8_t4_c30,
++ arm_rs_r9_t4_c30,
++ arm_rs_r10_t4_c30,
++ arm_rs_r11_t4_c30,
++ arm_rs_r12_t4_c30,
++ arm_rs_r13_t4_c30,
++ arm_rs_r14_t4_c30,
++ arm_rs_r15_t4_c30,
++ arm_rs_r0_t5_c30,
++ arm_rs_r1_t5_c30,
++ arm_rs_r2_t5_c30,
++ arm_rs_r3_t5_c30,
++ arm_rs_r4_t5_c30,
++ arm_rs_r5_t5_c30,
++ arm_rs_r6_t5_c30,
++ arm_rs_r7_t5_c30,
++ arm_rs_r8_t5_c30,
++ arm_rs_r9_t5_c30,
++ arm_rs_r10_t5_c30,
++ arm_rs_r11_t5_c30,
++ arm_rs_r12_t5_c30,
++ arm_rs_r13_t5_c30,
++ arm_rs_r14_t5_c30,
++ arm_rs_r15_t5_c30,
++ arm_rs_r0_t6_c30,
++ arm_rs_r1_t6_c30,
++ arm_rs_r2_t6_c30,
++ arm_rs_r3_t6_c30,
++ arm_rs_r4_t6_c30,
++ arm_rs_r5_t6_c30,
++ arm_rs_r6_t6_c30,
++ arm_rs_r7_t6_c30,
++ arm_rs_r8_t6_c30,
++ arm_rs_r9_t6_c30,
++ arm_rs_r10_t6_c30,
++ arm_rs_r11_t6_c30,
++ arm_rs_r12_t6_c30,
++ arm_rs_r13_t6_c30,
++ arm_rs_r14_t6_c30,
++ arm_rs_r15_t6_c30,
++ arm_rs_r0_t7_c30,
++ arm_rs_r1_t7_c30,
++ arm_rs_r2_t7_c30,
++ arm_rs_r3_t7_c30,
++ arm_rs_r4_t7_c30,
++ arm_rs_r5_t7_c30,
++ arm_rs_r6_t7_c30,
++ arm_rs_r7_t7_c30,
++ arm_rs_r8_t7_c30,
++ arm_rs_r9_t7_c30,
++ arm_rs_r10_t7_c30,
++ arm_rs_r11_t7_c30,
++ arm_rs_r12_t7_c30,
++ arm_rs_r13_t7_c30,
++ arm_rs_r14_t7_c30,
++ arm_rs_r15_t7_c30,
++ arm_rs_r0_t0_c31,
++ arm_rs_r1_t0_c31,
++ arm_rs_r2_t0_c31,
++ arm_rs_r3_t0_c31,
++ arm_rs_r4_t0_c31,
++ arm_rs_r5_t0_c31,
++ arm_rs_r6_t0_c31,
++ arm_rs_r7_t0_c31,
++ arm_rs_r8_t0_c31,
++ arm_rs_r9_t0_c31,
++ arm_rs_r10_t0_c31,
++ arm_rs_r11_t0_c31,
++ arm_rs_r12_t0_c31,
++ arm_rs_r13_t0_c31,
++ arm_rs_r14_t0_c31,
++ arm_rs_r15_t0_c31,
++ arm_rs_r0_t1_c31,
++ arm_rs_r1_t1_c31,
++ arm_rs_r2_t1_c31,
++ arm_rs_r3_t1_c31,
++ arm_rs_r4_t1_c31,
++ arm_rs_r5_t1_c31,
++ arm_rs_r6_t1_c31,
++ arm_rs_r7_t1_c31,
++ arm_rs_r8_t1_c31,
++ arm_rs_r9_t1_c31,
++ arm_rs_r10_t1_c31,
++ arm_rs_r11_t1_c31,
++ arm_rs_r12_t1_c31,
++ arm_rs_r13_t1_c31,
++ arm_rs_r14_t1_c31,
++ arm_rs_r15_t1_c31,
++ arm_rs_r0_t2_c31,
++ arm_rs_r1_t2_c31,
++ arm_rs_r2_t2_c31,
++ arm_rs_r3_t2_c31,
++ arm_rs_r4_t2_c31,
++ arm_rs_r5_t2_c31,
++ arm_rs_r6_t2_c31,
++ arm_rs_r7_t2_c31,
++ arm_rs_r8_t2_c31,
++ arm_rs_r9_t2_c31,
++ arm_rs_r10_t2_c31,
++ arm_rs_r11_t2_c31,
++ arm_rs_r12_t2_c31,
++ arm_rs_r13_t2_c31,
++ arm_rs_r14_t2_c31,
++ arm_rs_r15_t2_c31,
++ arm_rs_r0_t3_c31,
++ arm_rs_r1_t3_c31,
++ arm_rs_r2_t3_c31,
++ arm_rs_r3_t3_c31,
++ arm_rs_r4_t3_c31,
++ arm_rs_r5_t3_c31,
++ arm_rs_r6_t3_c31,
++ arm_rs_r7_t3_c31,
++ arm_rs_r8_t3_c31,
++ arm_rs_r9_t3_c31,
++ arm_rs_r10_t3_c31,
++ arm_rs_r11_t3_c31,
++ arm_rs_r12_t3_c31,
++ arm_rs_r13_t3_c31,
++ arm_rs_r14_t3_c31,
++ arm_rs_r15_t3_c31,
++ arm_rs_r0_t4_c31,
++ arm_rs_r1_t4_c31,
++ arm_rs_r2_t4_c31,
++ arm_rs_r3_t4_c31,
++ arm_rs_r4_t4_c31,
++ arm_rs_r5_t4_c31,
++ arm_rs_r6_t4_c31,
++ arm_rs_r7_t4_c31,
++ arm_rs_r8_t4_c31,
++ arm_rs_r9_t4_c31,
++ arm_rs_r10_t4_c31,
++ arm_rs_r11_t4_c31,
++ arm_rs_r12_t4_c31,
++ arm_rs_r13_t4_c31,
++ arm_rs_r14_t4_c31,
++ arm_rs_r15_t4_c31,
++ arm_rs_r0_t5_c31,
++ arm_rs_r1_t5_c31,
++ arm_rs_r2_t5_c31,
++ arm_rs_r3_t5_c31,
++ arm_rs_r4_t5_c31,
++ arm_rs_r5_t5_c31,
++ arm_rs_r6_t5_c31,
++ arm_rs_r7_t5_c31,
++ arm_rs_r8_t5_c31,
++ arm_rs_r9_t5_c31,
++ arm_rs_r10_t5_c31,
++ arm_rs_r11_t5_c31,
++ arm_rs_r12_t5_c31,
++ arm_rs_r13_t5_c31,
++ arm_rs_r14_t5_c31,
++ arm_rs_r15_t5_c31,
++ arm_rs_r0_t6_c31,
++ arm_rs_r1_t6_c31,
++ arm_rs_r2_t6_c31,
++ arm_rs_r3_t6_c31,
++ arm_rs_r4_t6_c31,
++ arm_rs_r5_t6_c31,
++ arm_rs_r6_t6_c31,
++ arm_rs_r7_t6_c31,
++ arm_rs_r8_t6_c31,
++ arm_rs_r9_t6_c31,
++ arm_rs_r10_t6_c31,
++ arm_rs_r11_t6_c31,
++ arm_rs_r12_t6_c31,
++ arm_rs_r13_t6_c31,
++ arm_rs_r14_t6_c31,
++ arm_rs_r15_t6_c31,
++ arm_rs_r0_t7_c31,
++ arm_rs_r1_t7_c31,
++ arm_rs_r2_t7_c31,
++ arm_rs_r3_t7_c31,
++ arm_rs_r4_t7_c31,
++ arm_rs_r5_t7_c31,
++ arm_rs_r6_t7_c31,
++ arm_rs_r7_t7_c31,
++ arm_rs_r8_t7_c31,
++ arm_rs_r9_t7_c31,
++ arm_rs_r10_t7_c31,
++ arm_rs_r11_t7_c31,
++ arm_rs_r12_t7_c31,
++ arm_rs_r13_t7_c31,
++ arm_rs_r14_t7_c31,
++ arm_rs_r15_t7_c31
++};
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r0.c gxemul-0.7.0/src/cpus/tmp_arm_r0.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r0.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r0.c 2022-10-18 16:37:22.086747400 +0000
+@@ -0,0 +1,3210 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0];
++}
++uint32_t arm_r_r1_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1];
++}
++uint32_t arm_r_r2_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2];
++}
++uint32_t arm_r_r3_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3];
++}
++uint32_t arm_r_r4_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4];
++}
++uint32_t arm_r_r5_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5];
++}
++uint32_t arm_r_r6_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6];
++}
++uint32_t arm_r_r7_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7];
++}
++uint32_t arm_r_r8_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8];
++}
++uint32_t arm_r_r9_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9];
++}
++uint32_t arm_r_r10_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10];
++}
++uint32_t arm_r_r11_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11];
++}
++uint32_t arm_r_r12_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12];
++}
++uint32_t arm_r_r13_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13];
++}
++uint32_t arm_r_r14_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14];
++}
++uint32_t arm_r_r15_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp;
++}
++uint32_t arm_r_r0_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r1_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r2_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r3_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r4_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r5_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r6_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r7_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r8_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r9_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r10_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r11_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r12_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r13_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r14_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return 0;
++}
++uint32_t arm_r_r15_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return 0;
++}
++uint32_t arm_r_r0_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r1_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r2_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r3_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r4_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r5_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r6_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r7_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r8_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r9_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r10_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r11_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r12_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r13_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r14_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r15_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp & 0x80000000? 0xffffffff : 0;
++}
++uint32_t arm_r_r0_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r1_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r2_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r3_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r4_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r5_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r6_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r7_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r8_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r9_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r10_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r11_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r12_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r13_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r14_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r15_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;return x >> 1; }
++}
++uint32_t arm_r_r0_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 1;
++}
++uint32_t arm_r_r1_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 1;
++}
++uint32_t arm_r_r2_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 1;
++}
++uint32_t arm_r_r3_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 1;
++}
++uint32_t arm_r_r4_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 1;
++}
++uint32_t arm_r_r5_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 1;
++}
++uint32_t arm_r_r6_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 1;
++}
++uint32_t arm_r_r7_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 1;
++}
++uint32_t arm_r_r8_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 1;
++}
++uint32_t arm_r_r9_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 1;
++}
++uint32_t arm_r_r10_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 1;
++}
++uint32_t arm_r_r11_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 1;
++}
++uint32_t arm_r_r12_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 1;
++}
++uint32_t arm_r_r13_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 1;
++}
++uint32_t arm_r_r14_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 1;
++}
++uint32_t arm_r_r15_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 1;
++}
++uint32_t arm_r_r0_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[0] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 1;
++}
++uint32_t arm_r_r1_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 1;
++}
++uint32_t arm_r_r2_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 1;
++}
++uint32_t arm_r_r3_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 1;
++}
++uint32_t arm_r_r4_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 1;
++}
++uint32_t arm_r_r5_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 1;
++}
++uint32_t arm_r_r6_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 1;
++}
++uint32_t arm_r_r7_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 1;
++}
++uint32_t arm_r_r8_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 1;
++}
++uint32_t arm_r_r9_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 1;
++}
++uint32_t arm_r_r10_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 1;
++}
++uint32_t arm_r_r11_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 1;
++}
++uint32_t arm_r_r12_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 1;
++}
++uint32_t arm_r_r13_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 1;
++}
++uint32_t arm_r_r14_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 1;
++}
++uint32_t arm_r_r15_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 1;
++}
++uint32_t arm_r_r0_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[0]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 1;
++}
++uint32_t arm_r_r1_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 1;
++}
++uint32_t arm_r_r2_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 1;
++}
++uint32_t arm_r_r3_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 1;
++}
++uint32_t arm_r_r4_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 1;
++}
++uint32_t arm_r_r5_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 1;
++}
++uint32_t arm_r_r6_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 1;
++}
++uint32_t arm_r_r7_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 1;
++}
++uint32_t arm_r_r8_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 1;
++}
++uint32_t arm_r_r9_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 1;
++}
++uint32_t arm_r_r10_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 1;
++}
++uint32_t arm_r_r11_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 1;
++}
++uint32_t arm_r_r12_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 1;
++}
++uint32_t arm_r_r13_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 1;
++}
++uint32_t arm_r_r14_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 1;
++}
++uint32_t arm_r_r15_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 1;
++}
++uint32_t arm_r_r0_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[0]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r1_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r2_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r3_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r4_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r5_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r6_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r7_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r8_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r9_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r10_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r11_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r12_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r13_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r14_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r15_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 1; }
++}
++uint32_t arm_r_r0_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[0]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = 0;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x = (x<0)? 0xffffffff : 0;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r1_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r2_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r3_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r4_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r5_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r6_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r7_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r8_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r9_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r10_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r11_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r12_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r13_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r14_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r15_t6_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; if (cpu->cd.arm.flags & ARM_F_C) x |= 0x100000000ULL;cpu->cd.arm.flags &= ~ARM_F_C;if(x&1) cpu->cd.arm.flags |= ARM_F_C;return x >> 1; }
++}
++uint32_t arm_rs_r0_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c0(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 1;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[0] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 1;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t6_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c1(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[0]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r1.c gxemul-0.7.0/src/cpus/tmp_arm_r1.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r1.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r1.c 2022-10-18 16:37:22.086747400 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 2;
++}
++uint32_t arm_r_r1_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 2;
++}
++uint32_t arm_r_r2_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 2;
++}
++uint32_t arm_r_r3_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 2;
++}
++uint32_t arm_r_r4_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 2;
++}
++uint32_t arm_r_r5_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 2;
++}
++uint32_t arm_r_r6_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 2;
++}
++uint32_t arm_r_r7_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 2;
++}
++uint32_t arm_r_r8_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 2;
++}
++uint32_t arm_r_r9_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 2;
++}
++uint32_t arm_r_r10_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 2;
++}
++uint32_t arm_r_r11_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 2;
++}
++uint32_t arm_r_r12_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 2;
++}
++uint32_t arm_r_r13_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 2;
++}
++uint32_t arm_r_r14_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 2;
++}
++uint32_t arm_r_r15_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 2;
++}
++uint32_t arm_r_r0_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 2;
++}
++uint32_t arm_r_r1_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 2;
++}
++uint32_t arm_r_r2_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 2;
++}
++uint32_t arm_r_r3_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 2;
++}
++uint32_t arm_r_r4_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 2;
++}
++uint32_t arm_r_r5_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 2;
++}
++uint32_t arm_r_r6_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 2;
++}
++uint32_t arm_r_r7_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 2;
++}
++uint32_t arm_r_r8_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 2;
++}
++uint32_t arm_r_r9_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 2;
++}
++uint32_t arm_r_r10_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 2;
++}
++uint32_t arm_r_r11_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 2;
++}
++uint32_t arm_r_r12_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 2;
++}
++uint32_t arm_r_r13_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 2;
++}
++uint32_t arm_r_r14_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 2;
++}
++uint32_t arm_r_r15_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 2;
++}
++uint32_t arm_r_r0_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 2;
++}
++uint32_t arm_r_r1_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 2;
++}
++uint32_t arm_r_r2_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 2;
++}
++uint32_t arm_r_r3_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 2;
++}
++uint32_t arm_r_r4_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 2;
++}
++uint32_t arm_r_r5_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 2;
++}
++uint32_t arm_r_r6_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 2;
++}
++uint32_t arm_r_r7_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 2;
++}
++uint32_t arm_r_r8_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 2;
++}
++uint32_t arm_r_r9_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 2;
++}
++uint32_t arm_r_r10_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 2;
++}
++uint32_t arm_r_r11_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 2;
++}
++uint32_t arm_r_r12_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 2;
++}
++uint32_t arm_r_r13_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 2;
++}
++uint32_t arm_r_r14_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 2;
++}
++uint32_t arm_r_r15_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 2;
++}
++uint32_t arm_r_r0_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r1_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r2_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r3_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r4_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r5_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r6_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r7_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r8_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r9_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r10_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r11_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r12_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r13_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r14_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r15_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 2; }
++}
++uint32_t arm_r_r0_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 3;
++}
++uint32_t arm_r_r1_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 3;
++}
++uint32_t arm_r_r2_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 3;
++}
++uint32_t arm_r_r3_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 3;
++}
++uint32_t arm_r_r4_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 3;
++}
++uint32_t arm_r_r5_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 3;
++}
++uint32_t arm_r_r6_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 3;
++}
++uint32_t arm_r_r7_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 3;
++}
++uint32_t arm_r_r8_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 3;
++}
++uint32_t arm_r_r9_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 3;
++}
++uint32_t arm_r_r10_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 3;
++}
++uint32_t arm_r_r11_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 3;
++}
++uint32_t arm_r_r12_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 3;
++}
++uint32_t arm_r_r13_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 3;
++}
++uint32_t arm_r_r14_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 3;
++}
++uint32_t arm_r_r15_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 3;
++}
++uint32_t arm_r_r0_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[1] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 3;
++}
++uint32_t arm_r_r1_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 3;
++}
++uint32_t arm_r_r2_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 3;
++}
++uint32_t arm_r_r3_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 3;
++}
++uint32_t arm_r_r4_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 3;
++}
++uint32_t arm_r_r5_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 3;
++}
++uint32_t arm_r_r6_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 3;
++}
++uint32_t arm_r_r7_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 3;
++}
++uint32_t arm_r_r8_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 3;
++}
++uint32_t arm_r_r9_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 3;
++}
++uint32_t arm_r_r10_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 3;
++}
++uint32_t arm_r_r11_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 3;
++}
++uint32_t arm_r_r12_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 3;
++}
++uint32_t arm_r_r13_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 3;
++}
++uint32_t arm_r_r14_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 3;
++}
++uint32_t arm_r_r15_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 3;
++}
++uint32_t arm_r_r0_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[1]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 3;
++}
++uint32_t arm_r_r1_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 3;
++}
++uint32_t arm_r_r2_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 3;
++}
++uint32_t arm_r_r3_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 3;
++}
++uint32_t arm_r_r4_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 3;
++}
++uint32_t arm_r_r5_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 3;
++}
++uint32_t arm_r_r6_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 3;
++}
++uint32_t arm_r_r7_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 3;
++}
++uint32_t arm_r_r8_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 3;
++}
++uint32_t arm_r_r9_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 3;
++}
++uint32_t arm_r_r10_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 3;
++}
++uint32_t arm_r_r11_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 3;
++}
++uint32_t arm_r_r12_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 3;
++}
++uint32_t arm_r_r13_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 3;
++}
++uint32_t arm_r_r14_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 3;
++}
++uint32_t arm_r_r15_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 3;
++}
++uint32_t arm_r_r0_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[1]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r1_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r2_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r3_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r4_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r5_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r6_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r7_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r8_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r9_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r10_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r11_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r12_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r13_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r14_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r15_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 3; }
++}
++uint32_t arm_r_r0_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[1]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 2;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 2;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r1_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r2_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r3_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r4_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r5_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r6_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r7_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r8_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r9_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r10_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r11_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r12_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r13_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r14_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r15_t6_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 2; }
++}
++uint32_t arm_rs_r0_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c2(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 3;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[1] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 3;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r1_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r2_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r3_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r4_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r5_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r6_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r7_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r8_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r9_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r10_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r11_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r12_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r13_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r14_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r15_t6_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 3; }
++}
++uint32_t arm_rs_r0_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c3(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[1]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r2.c gxemul-0.7.0/src/cpus/tmp_arm_r2.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r2.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r2.c 2022-10-18 16:37:22.087748600 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 4;
++}
++uint32_t arm_r_r1_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 4;
++}
++uint32_t arm_r_r2_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 4;
++}
++uint32_t arm_r_r3_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 4;
++}
++uint32_t arm_r_r4_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 4;
++}
++uint32_t arm_r_r5_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 4;
++}
++uint32_t arm_r_r6_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 4;
++}
++uint32_t arm_r_r7_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 4;
++}
++uint32_t arm_r_r8_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 4;
++}
++uint32_t arm_r_r9_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 4;
++}
++uint32_t arm_r_r10_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 4;
++}
++uint32_t arm_r_r11_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 4;
++}
++uint32_t arm_r_r12_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 4;
++}
++uint32_t arm_r_r13_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 4;
++}
++uint32_t arm_r_r14_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 4;
++}
++uint32_t arm_r_r15_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 4;
++}
++uint32_t arm_r_r0_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 4;
++}
++uint32_t arm_r_r1_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 4;
++}
++uint32_t arm_r_r2_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 4;
++}
++uint32_t arm_r_r3_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 4;
++}
++uint32_t arm_r_r4_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 4;
++}
++uint32_t arm_r_r5_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 4;
++}
++uint32_t arm_r_r6_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 4;
++}
++uint32_t arm_r_r7_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 4;
++}
++uint32_t arm_r_r8_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 4;
++}
++uint32_t arm_r_r9_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 4;
++}
++uint32_t arm_r_r10_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 4;
++}
++uint32_t arm_r_r11_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 4;
++}
++uint32_t arm_r_r12_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 4;
++}
++uint32_t arm_r_r13_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 4;
++}
++uint32_t arm_r_r14_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 4;
++}
++uint32_t arm_r_r15_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 4;
++}
++uint32_t arm_r_r0_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 4;
++}
++uint32_t arm_r_r1_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 4;
++}
++uint32_t arm_r_r2_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 4;
++}
++uint32_t arm_r_r3_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 4;
++}
++uint32_t arm_r_r4_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 4;
++}
++uint32_t arm_r_r5_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 4;
++}
++uint32_t arm_r_r6_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 4;
++}
++uint32_t arm_r_r7_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 4;
++}
++uint32_t arm_r_r8_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 4;
++}
++uint32_t arm_r_r9_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 4;
++}
++uint32_t arm_r_r10_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 4;
++}
++uint32_t arm_r_r11_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 4;
++}
++uint32_t arm_r_r12_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 4;
++}
++uint32_t arm_r_r13_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 4;
++}
++uint32_t arm_r_r14_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 4;
++}
++uint32_t arm_r_r15_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 4;
++}
++uint32_t arm_r_r0_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r1_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r2_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r3_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r4_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r5_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r6_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r7_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r8_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r9_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r10_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r11_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r12_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r13_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r14_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r15_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 4; }
++}
++uint32_t arm_r_r0_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 5;
++}
++uint32_t arm_r_r1_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 5;
++}
++uint32_t arm_r_r2_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 5;
++}
++uint32_t arm_r_r3_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 5;
++}
++uint32_t arm_r_r4_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 5;
++}
++uint32_t arm_r_r5_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 5;
++}
++uint32_t arm_r_r6_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 5;
++}
++uint32_t arm_r_r7_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 5;
++}
++uint32_t arm_r_r8_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 5;
++}
++uint32_t arm_r_r9_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 5;
++}
++uint32_t arm_r_r10_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 5;
++}
++uint32_t arm_r_r11_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 5;
++}
++uint32_t arm_r_r12_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 5;
++}
++uint32_t arm_r_r13_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 5;
++}
++uint32_t arm_r_r14_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 5;
++}
++uint32_t arm_r_r15_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 5;
++}
++uint32_t arm_r_r0_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[2] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 5;
++}
++uint32_t arm_r_r1_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 5;
++}
++uint32_t arm_r_r2_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 5;
++}
++uint32_t arm_r_r3_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 5;
++}
++uint32_t arm_r_r4_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 5;
++}
++uint32_t arm_r_r5_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 5;
++}
++uint32_t arm_r_r6_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 5;
++}
++uint32_t arm_r_r7_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 5;
++}
++uint32_t arm_r_r8_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 5;
++}
++uint32_t arm_r_r9_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 5;
++}
++uint32_t arm_r_r10_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 5;
++}
++uint32_t arm_r_r11_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 5;
++}
++uint32_t arm_r_r12_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 5;
++}
++uint32_t arm_r_r13_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 5;
++}
++uint32_t arm_r_r14_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 5;
++}
++uint32_t arm_r_r15_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 5;
++}
++uint32_t arm_r_r0_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[2]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 5;
++}
++uint32_t arm_r_r1_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 5;
++}
++uint32_t arm_r_r2_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 5;
++}
++uint32_t arm_r_r3_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 5;
++}
++uint32_t arm_r_r4_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 5;
++}
++uint32_t arm_r_r5_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 5;
++}
++uint32_t arm_r_r6_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 5;
++}
++uint32_t arm_r_r7_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 5;
++}
++uint32_t arm_r_r8_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 5;
++}
++uint32_t arm_r_r9_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 5;
++}
++uint32_t arm_r_r10_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 5;
++}
++uint32_t arm_r_r11_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 5;
++}
++uint32_t arm_r_r12_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 5;
++}
++uint32_t arm_r_r13_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 5;
++}
++uint32_t arm_r_r14_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 5;
++}
++uint32_t arm_r_r15_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 5;
++}
++uint32_t arm_r_r0_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[2]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r1_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r2_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r3_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r4_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r5_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r6_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r7_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r8_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r9_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r10_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r11_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r12_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r13_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r14_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r15_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 5; }
++}
++uint32_t arm_r_r0_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[2]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 4;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 4;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r1_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r2_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r3_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r4_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r5_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r6_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r7_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r8_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r9_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r10_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r11_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r12_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r13_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r14_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r15_t6_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 4; }
++}
++uint32_t arm_rs_r0_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c4(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 5;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[2] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 5;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r1_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r2_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r3_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r4_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r5_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r6_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r7_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r8_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r9_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r10_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r11_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r12_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r13_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r14_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r15_t6_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 5; }
++}
++uint32_t arm_rs_r0_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c5(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[2]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r3.c gxemul-0.7.0/src/cpus/tmp_arm_r3.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r3.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r3.c 2022-10-18 16:37:22.088749100 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 6;
++}
++uint32_t arm_r_r1_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 6;
++}
++uint32_t arm_r_r2_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 6;
++}
++uint32_t arm_r_r3_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 6;
++}
++uint32_t arm_r_r4_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 6;
++}
++uint32_t arm_r_r5_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 6;
++}
++uint32_t arm_r_r6_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 6;
++}
++uint32_t arm_r_r7_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 6;
++}
++uint32_t arm_r_r8_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 6;
++}
++uint32_t arm_r_r9_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 6;
++}
++uint32_t arm_r_r10_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 6;
++}
++uint32_t arm_r_r11_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 6;
++}
++uint32_t arm_r_r12_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 6;
++}
++uint32_t arm_r_r13_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 6;
++}
++uint32_t arm_r_r14_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 6;
++}
++uint32_t arm_r_r15_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 6;
++}
++uint32_t arm_r_r0_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 6;
++}
++uint32_t arm_r_r1_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 6;
++}
++uint32_t arm_r_r2_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 6;
++}
++uint32_t arm_r_r3_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 6;
++}
++uint32_t arm_r_r4_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 6;
++}
++uint32_t arm_r_r5_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 6;
++}
++uint32_t arm_r_r6_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 6;
++}
++uint32_t arm_r_r7_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 6;
++}
++uint32_t arm_r_r8_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 6;
++}
++uint32_t arm_r_r9_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 6;
++}
++uint32_t arm_r_r10_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 6;
++}
++uint32_t arm_r_r11_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 6;
++}
++uint32_t arm_r_r12_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 6;
++}
++uint32_t arm_r_r13_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 6;
++}
++uint32_t arm_r_r14_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 6;
++}
++uint32_t arm_r_r15_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 6;
++}
++uint32_t arm_r_r0_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 6;
++}
++uint32_t arm_r_r1_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 6;
++}
++uint32_t arm_r_r2_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 6;
++}
++uint32_t arm_r_r3_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 6;
++}
++uint32_t arm_r_r4_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 6;
++}
++uint32_t arm_r_r5_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 6;
++}
++uint32_t arm_r_r6_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 6;
++}
++uint32_t arm_r_r7_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 6;
++}
++uint32_t arm_r_r8_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 6;
++}
++uint32_t arm_r_r9_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 6;
++}
++uint32_t arm_r_r10_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 6;
++}
++uint32_t arm_r_r11_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 6;
++}
++uint32_t arm_r_r12_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 6;
++}
++uint32_t arm_r_r13_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 6;
++}
++uint32_t arm_r_r14_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 6;
++}
++uint32_t arm_r_r15_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 6;
++}
++uint32_t arm_r_r0_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r1_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r2_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r3_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r4_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r5_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r6_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r7_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r8_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r9_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r10_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r11_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r12_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r13_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r14_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r15_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 6; }
++}
++uint32_t arm_r_r0_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 7;
++}
++uint32_t arm_r_r1_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 7;
++}
++uint32_t arm_r_r2_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 7;
++}
++uint32_t arm_r_r3_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 7;
++}
++uint32_t arm_r_r4_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 7;
++}
++uint32_t arm_r_r5_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 7;
++}
++uint32_t arm_r_r6_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 7;
++}
++uint32_t arm_r_r7_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 7;
++}
++uint32_t arm_r_r8_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 7;
++}
++uint32_t arm_r_r9_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 7;
++}
++uint32_t arm_r_r10_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 7;
++}
++uint32_t arm_r_r11_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 7;
++}
++uint32_t arm_r_r12_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 7;
++}
++uint32_t arm_r_r13_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 7;
++}
++uint32_t arm_r_r14_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 7;
++}
++uint32_t arm_r_r15_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 7;
++}
++uint32_t arm_r_r0_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[3] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 7;
++}
++uint32_t arm_r_r1_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 7;
++}
++uint32_t arm_r_r2_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 7;
++}
++uint32_t arm_r_r3_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 7;
++}
++uint32_t arm_r_r4_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 7;
++}
++uint32_t arm_r_r5_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 7;
++}
++uint32_t arm_r_r6_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 7;
++}
++uint32_t arm_r_r7_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 7;
++}
++uint32_t arm_r_r8_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 7;
++}
++uint32_t arm_r_r9_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 7;
++}
++uint32_t arm_r_r10_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 7;
++}
++uint32_t arm_r_r11_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 7;
++}
++uint32_t arm_r_r12_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 7;
++}
++uint32_t arm_r_r13_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 7;
++}
++uint32_t arm_r_r14_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 7;
++}
++uint32_t arm_r_r15_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 7;
++}
++uint32_t arm_r_r0_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[3]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 7;
++}
++uint32_t arm_r_r1_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 7;
++}
++uint32_t arm_r_r2_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 7;
++}
++uint32_t arm_r_r3_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 7;
++}
++uint32_t arm_r_r4_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 7;
++}
++uint32_t arm_r_r5_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 7;
++}
++uint32_t arm_r_r6_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 7;
++}
++uint32_t arm_r_r7_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 7;
++}
++uint32_t arm_r_r8_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 7;
++}
++uint32_t arm_r_r9_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 7;
++}
++uint32_t arm_r_r10_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 7;
++}
++uint32_t arm_r_r11_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 7;
++}
++uint32_t arm_r_r12_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 7;
++}
++uint32_t arm_r_r13_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 7;
++}
++uint32_t arm_r_r14_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 7;
++}
++uint32_t arm_r_r15_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 7;
++}
++uint32_t arm_r_r0_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[3]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r1_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r2_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r3_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r4_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r5_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r6_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r7_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r8_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r9_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r10_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r11_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r12_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r13_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r14_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r15_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 7; }
++}
++uint32_t arm_r_r0_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[3]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 6;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 6;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r1_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r2_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r3_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r4_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r5_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r6_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r7_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r8_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r9_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r10_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r11_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r12_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r13_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r14_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r15_t6_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 6; }
++}
++uint32_t arm_rs_r0_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c6(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 7;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[3] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 7;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r1_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r2_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r3_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r4_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r5_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r6_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r7_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r8_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r9_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r10_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r11_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r12_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r13_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r14_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r15_t6_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 7; }
++}
++uint32_t arm_rs_r0_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c7(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[3]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r4.c gxemul-0.7.0/src/cpus/tmp_arm_r4.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r4.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r4.c 2022-10-18 16:37:22.088749100 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 8;
++}
++uint32_t arm_r_r1_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 8;
++}
++uint32_t arm_r_r2_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 8;
++}
++uint32_t arm_r_r3_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 8;
++}
++uint32_t arm_r_r4_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 8;
++}
++uint32_t arm_r_r5_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 8;
++}
++uint32_t arm_r_r6_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 8;
++}
++uint32_t arm_r_r7_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 8;
++}
++uint32_t arm_r_r8_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 8;
++}
++uint32_t arm_r_r9_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 8;
++}
++uint32_t arm_r_r10_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 8;
++}
++uint32_t arm_r_r11_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 8;
++}
++uint32_t arm_r_r12_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 8;
++}
++uint32_t arm_r_r13_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 8;
++}
++uint32_t arm_r_r14_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 8;
++}
++uint32_t arm_r_r15_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 8;
++}
++uint32_t arm_r_r0_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 8;
++}
++uint32_t arm_r_r1_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 8;
++}
++uint32_t arm_r_r2_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 8;
++}
++uint32_t arm_r_r3_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 8;
++}
++uint32_t arm_r_r4_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 8;
++}
++uint32_t arm_r_r5_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 8;
++}
++uint32_t arm_r_r6_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 8;
++}
++uint32_t arm_r_r7_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 8;
++}
++uint32_t arm_r_r8_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 8;
++}
++uint32_t arm_r_r9_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 8;
++}
++uint32_t arm_r_r10_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 8;
++}
++uint32_t arm_r_r11_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 8;
++}
++uint32_t arm_r_r12_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 8;
++}
++uint32_t arm_r_r13_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 8;
++}
++uint32_t arm_r_r14_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 8;
++}
++uint32_t arm_r_r15_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 8;
++}
++uint32_t arm_r_r0_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 8;
++}
++uint32_t arm_r_r1_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 8;
++}
++uint32_t arm_r_r2_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 8;
++}
++uint32_t arm_r_r3_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 8;
++}
++uint32_t arm_r_r4_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 8;
++}
++uint32_t arm_r_r5_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 8;
++}
++uint32_t arm_r_r6_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 8;
++}
++uint32_t arm_r_r7_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 8;
++}
++uint32_t arm_r_r8_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 8;
++}
++uint32_t arm_r_r9_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 8;
++}
++uint32_t arm_r_r10_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 8;
++}
++uint32_t arm_r_r11_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 8;
++}
++uint32_t arm_r_r12_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 8;
++}
++uint32_t arm_r_r13_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 8;
++}
++uint32_t arm_r_r14_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 8;
++}
++uint32_t arm_r_r15_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 8;
++}
++uint32_t arm_r_r0_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r1_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r2_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r3_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r4_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r5_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r6_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r7_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r8_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r9_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r10_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r11_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r12_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r13_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r14_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r15_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 8; }
++}
++uint32_t arm_r_r0_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 9;
++}
++uint32_t arm_r_r1_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 9;
++}
++uint32_t arm_r_r2_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 9;
++}
++uint32_t arm_r_r3_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 9;
++}
++uint32_t arm_r_r4_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 9;
++}
++uint32_t arm_r_r5_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 9;
++}
++uint32_t arm_r_r6_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 9;
++}
++uint32_t arm_r_r7_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 9;
++}
++uint32_t arm_r_r8_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 9;
++}
++uint32_t arm_r_r9_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 9;
++}
++uint32_t arm_r_r10_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 9;
++}
++uint32_t arm_r_r11_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 9;
++}
++uint32_t arm_r_r12_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 9;
++}
++uint32_t arm_r_r13_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 9;
++}
++uint32_t arm_r_r14_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 9;
++}
++uint32_t arm_r_r15_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 9;
++}
++uint32_t arm_r_r0_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[4] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 9;
++}
++uint32_t arm_r_r1_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 9;
++}
++uint32_t arm_r_r2_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 9;
++}
++uint32_t arm_r_r3_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 9;
++}
++uint32_t arm_r_r4_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 9;
++}
++uint32_t arm_r_r5_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 9;
++}
++uint32_t arm_r_r6_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 9;
++}
++uint32_t arm_r_r7_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 9;
++}
++uint32_t arm_r_r8_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 9;
++}
++uint32_t arm_r_r9_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 9;
++}
++uint32_t arm_r_r10_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 9;
++}
++uint32_t arm_r_r11_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 9;
++}
++uint32_t arm_r_r12_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 9;
++}
++uint32_t arm_r_r13_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 9;
++}
++uint32_t arm_r_r14_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 9;
++}
++uint32_t arm_r_r15_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 9;
++}
++uint32_t arm_r_r0_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[4]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 9;
++}
++uint32_t arm_r_r1_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 9;
++}
++uint32_t arm_r_r2_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 9;
++}
++uint32_t arm_r_r3_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 9;
++}
++uint32_t arm_r_r4_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 9;
++}
++uint32_t arm_r_r5_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 9;
++}
++uint32_t arm_r_r6_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 9;
++}
++uint32_t arm_r_r7_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 9;
++}
++uint32_t arm_r_r8_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 9;
++}
++uint32_t arm_r_r9_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 9;
++}
++uint32_t arm_r_r10_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 9;
++}
++uint32_t arm_r_r11_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 9;
++}
++uint32_t arm_r_r12_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 9;
++}
++uint32_t arm_r_r13_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 9;
++}
++uint32_t arm_r_r14_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 9;
++}
++uint32_t arm_r_r15_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 9;
++}
++uint32_t arm_r_r0_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[4]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r1_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r2_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r3_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r4_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r5_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r6_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r7_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r8_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r9_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r10_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r11_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r12_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r13_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r14_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r15_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 9; }
++}
++uint32_t arm_r_r0_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[4]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 8;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 8;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r1_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r2_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r3_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r4_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r5_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r6_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r7_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r8_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r9_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r10_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r11_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r12_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r13_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r14_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r15_t6_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 8; }
++}
++uint32_t arm_rs_r0_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c8(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 9;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[4] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 9;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r1_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r2_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r3_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r4_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r5_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r6_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r7_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r8_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r9_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r10_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r11_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r12_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r13_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r14_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r15_t6_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 9; }
++}
++uint32_t arm_rs_r0_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c9(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[4]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r5.c gxemul-0.7.0/src/cpus/tmp_arm_r5.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r5.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r5.c 2022-10-18 16:37:22.089750000 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 10;
++}
++uint32_t arm_r_r1_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 10;
++}
++uint32_t arm_r_r2_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 10;
++}
++uint32_t arm_r_r3_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 10;
++}
++uint32_t arm_r_r4_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 10;
++}
++uint32_t arm_r_r5_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 10;
++}
++uint32_t arm_r_r6_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 10;
++}
++uint32_t arm_r_r7_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 10;
++}
++uint32_t arm_r_r8_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 10;
++}
++uint32_t arm_r_r9_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 10;
++}
++uint32_t arm_r_r10_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 10;
++}
++uint32_t arm_r_r11_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 10;
++}
++uint32_t arm_r_r12_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 10;
++}
++uint32_t arm_r_r13_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 10;
++}
++uint32_t arm_r_r14_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 10;
++}
++uint32_t arm_r_r15_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 10;
++}
++uint32_t arm_r_r0_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 10;
++}
++uint32_t arm_r_r1_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 10;
++}
++uint32_t arm_r_r2_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 10;
++}
++uint32_t arm_r_r3_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 10;
++}
++uint32_t arm_r_r4_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 10;
++}
++uint32_t arm_r_r5_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 10;
++}
++uint32_t arm_r_r6_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 10;
++}
++uint32_t arm_r_r7_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 10;
++}
++uint32_t arm_r_r8_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 10;
++}
++uint32_t arm_r_r9_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 10;
++}
++uint32_t arm_r_r10_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 10;
++}
++uint32_t arm_r_r11_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 10;
++}
++uint32_t arm_r_r12_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 10;
++}
++uint32_t arm_r_r13_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 10;
++}
++uint32_t arm_r_r14_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 10;
++}
++uint32_t arm_r_r15_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 10;
++}
++uint32_t arm_r_r0_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 10;
++}
++uint32_t arm_r_r1_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 10;
++}
++uint32_t arm_r_r2_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 10;
++}
++uint32_t arm_r_r3_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 10;
++}
++uint32_t arm_r_r4_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 10;
++}
++uint32_t arm_r_r5_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 10;
++}
++uint32_t arm_r_r6_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 10;
++}
++uint32_t arm_r_r7_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 10;
++}
++uint32_t arm_r_r8_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 10;
++}
++uint32_t arm_r_r9_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 10;
++}
++uint32_t arm_r_r10_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 10;
++}
++uint32_t arm_r_r11_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 10;
++}
++uint32_t arm_r_r12_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 10;
++}
++uint32_t arm_r_r13_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 10;
++}
++uint32_t arm_r_r14_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 10;
++}
++uint32_t arm_r_r15_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 10;
++}
++uint32_t arm_r_r0_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r1_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r2_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r3_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r4_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r5_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r6_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r7_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r8_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r9_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r10_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r11_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r12_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r13_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r14_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r15_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 10; }
++}
++uint32_t arm_r_r0_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 11;
++}
++uint32_t arm_r_r1_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 11;
++}
++uint32_t arm_r_r2_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 11;
++}
++uint32_t arm_r_r3_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 11;
++}
++uint32_t arm_r_r4_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 11;
++}
++uint32_t arm_r_r5_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 11;
++}
++uint32_t arm_r_r6_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 11;
++}
++uint32_t arm_r_r7_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 11;
++}
++uint32_t arm_r_r8_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 11;
++}
++uint32_t arm_r_r9_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 11;
++}
++uint32_t arm_r_r10_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 11;
++}
++uint32_t arm_r_r11_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 11;
++}
++uint32_t arm_r_r12_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 11;
++}
++uint32_t arm_r_r13_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 11;
++}
++uint32_t arm_r_r14_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 11;
++}
++uint32_t arm_r_r15_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 11;
++}
++uint32_t arm_r_r0_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[5] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 11;
++}
++uint32_t arm_r_r1_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 11;
++}
++uint32_t arm_r_r2_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 11;
++}
++uint32_t arm_r_r3_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 11;
++}
++uint32_t arm_r_r4_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 11;
++}
++uint32_t arm_r_r5_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 11;
++}
++uint32_t arm_r_r6_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 11;
++}
++uint32_t arm_r_r7_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 11;
++}
++uint32_t arm_r_r8_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 11;
++}
++uint32_t arm_r_r9_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 11;
++}
++uint32_t arm_r_r10_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 11;
++}
++uint32_t arm_r_r11_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 11;
++}
++uint32_t arm_r_r12_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 11;
++}
++uint32_t arm_r_r13_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 11;
++}
++uint32_t arm_r_r14_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 11;
++}
++uint32_t arm_r_r15_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 11;
++}
++uint32_t arm_r_r0_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[5]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 11;
++}
++uint32_t arm_r_r1_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 11;
++}
++uint32_t arm_r_r2_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 11;
++}
++uint32_t arm_r_r3_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 11;
++}
++uint32_t arm_r_r4_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 11;
++}
++uint32_t arm_r_r5_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 11;
++}
++uint32_t arm_r_r6_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 11;
++}
++uint32_t arm_r_r7_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 11;
++}
++uint32_t arm_r_r8_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 11;
++}
++uint32_t arm_r_r9_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 11;
++}
++uint32_t arm_r_r10_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 11;
++}
++uint32_t arm_r_r11_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 11;
++}
++uint32_t arm_r_r12_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 11;
++}
++uint32_t arm_r_r13_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 11;
++}
++uint32_t arm_r_r14_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 11;
++}
++uint32_t arm_r_r15_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 11;
++}
++uint32_t arm_r_r0_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[5]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r1_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r2_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r3_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r4_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r5_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r6_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r7_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r8_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r9_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r10_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r11_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r12_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r13_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r14_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r15_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 11; }
++}
++uint32_t arm_r_r0_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[5]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 10;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 10;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r1_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r2_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r3_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r4_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r5_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r6_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r7_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r8_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r9_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r10_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r11_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r12_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r13_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r14_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r15_t6_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 10; }
++}
++uint32_t arm_rs_r0_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c10(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 11;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[5] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 11;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r1_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r2_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r3_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r4_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r5_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r6_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r7_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r8_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r9_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r10_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r11_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r12_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r13_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r14_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r15_t6_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 11; }
++}
++uint32_t arm_rs_r0_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c11(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[5]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r6.c gxemul-0.7.0/src/cpus/tmp_arm_r6.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r6.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r6.c 2022-10-18 16:37:22.090751100 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 12;
++}
++uint32_t arm_r_r1_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 12;
++}
++uint32_t arm_r_r2_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 12;
++}
++uint32_t arm_r_r3_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 12;
++}
++uint32_t arm_r_r4_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 12;
++}
++uint32_t arm_r_r5_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 12;
++}
++uint32_t arm_r_r6_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 12;
++}
++uint32_t arm_r_r7_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 12;
++}
++uint32_t arm_r_r8_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 12;
++}
++uint32_t arm_r_r9_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 12;
++}
++uint32_t arm_r_r10_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 12;
++}
++uint32_t arm_r_r11_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 12;
++}
++uint32_t arm_r_r12_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 12;
++}
++uint32_t arm_r_r13_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 12;
++}
++uint32_t arm_r_r14_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 12;
++}
++uint32_t arm_r_r15_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 12;
++}
++uint32_t arm_r_r0_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 12;
++}
++uint32_t arm_r_r1_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 12;
++}
++uint32_t arm_r_r2_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 12;
++}
++uint32_t arm_r_r3_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 12;
++}
++uint32_t arm_r_r4_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 12;
++}
++uint32_t arm_r_r5_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 12;
++}
++uint32_t arm_r_r6_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 12;
++}
++uint32_t arm_r_r7_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 12;
++}
++uint32_t arm_r_r8_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 12;
++}
++uint32_t arm_r_r9_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 12;
++}
++uint32_t arm_r_r10_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 12;
++}
++uint32_t arm_r_r11_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 12;
++}
++uint32_t arm_r_r12_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 12;
++}
++uint32_t arm_r_r13_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 12;
++}
++uint32_t arm_r_r14_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 12;
++}
++uint32_t arm_r_r15_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 12;
++}
++uint32_t arm_r_r0_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 12;
++}
++uint32_t arm_r_r1_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 12;
++}
++uint32_t arm_r_r2_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 12;
++}
++uint32_t arm_r_r3_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 12;
++}
++uint32_t arm_r_r4_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 12;
++}
++uint32_t arm_r_r5_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 12;
++}
++uint32_t arm_r_r6_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 12;
++}
++uint32_t arm_r_r7_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 12;
++}
++uint32_t arm_r_r8_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 12;
++}
++uint32_t arm_r_r9_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 12;
++}
++uint32_t arm_r_r10_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 12;
++}
++uint32_t arm_r_r11_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 12;
++}
++uint32_t arm_r_r12_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 12;
++}
++uint32_t arm_r_r13_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 12;
++}
++uint32_t arm_r_r14_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 12;
++}
++uint32_t arm_r_r15_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 12;
++}
++uint32_t arm_r_r0_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r1_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r2_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r3_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r4_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r5_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r6_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r7_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r8_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r9_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r10_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r11_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r12_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r13_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r14_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r15_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 12; }
++}
++uint32_t arm_r_r0_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 13;
++}
++uint32_t arm_r_r1_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 13;
++}
++uint32_t arm_r_r2_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 13;
++}
++uint32_t arm_r_r3_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 13;
++}
++uint32_t arm_r_r4_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 13;
++}
++uint32_t arm_r_r5_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 13;
++}
++uint32_t arm_r_r6_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 13;
++}
++uint32_t arm_r_r7_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 13;
++}
++uint32_t arm_r_r8_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 13;
++}
++uint32_t arm_r_r9_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 13;
++}
++uint32_t arm_r_r10_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 13;
++}
++uint32_t arm_r_r11_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 13;
++}
++uint32_t arm_r_r12_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 13;
++}
++uint32_t arm_r_r13_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 13;
++}
++uint32_t arm_r_r14_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 13;
++}
++uint32_t arm_r_r15_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 13;
++}
++uint32_t arm_r_r0_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[6] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 13;
++}
++uint32_t arm_r_r1_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 13;
++}
++uint32_t arm_r_r2_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 13;
++}
++uint32_t arm_r_r3_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 13;
++}
++uint32_t arm_r_r4_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 13;
++}
++uint32_t arm_r_r5_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 13;
++}
++uint32_t arm_r_r6_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 13;
++}
++uint32_t arm_r_r7_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 13;
++}
++uint32_t arm_r_r8_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 13;
++}
++uint32_t arm_r_r9_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 13;
++}
++uint32_t arm_r_r10_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 13;
++}
++uint32_t arm_r_r11_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 13;
++}
++uint32_t arm_r_r12_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 13;
++}
++uint32_t arm_r_r13_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 13;
++}
++uint32_t arm_r_r14_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 13;
++}
++uint32_t arm_r_r15_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 13;
++}
++uint32_t arm_r_r0_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[6]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 13;
++}
++uint32_t arm_r_r1_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 13;
++}
++uint32_t arm_r_r2_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 13;
++}
++uint32_t arm_r_r3_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 13;
++}
++uint32_t arm_r_r4_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 13;
++}
++uint32_t arm_r_r5_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 13;
++}
++uint32_t arm_r_r6_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 13;
++}
++uint32_t arm_r_r7_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 13;
++}
++uint32_t arm_r_r8_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 13;
++}
++uint32_t arm_r_r9_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 13;
++}
++uint32_t arm_r_r10_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 13;
++}
++uint32_t arm_r_r11_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 13;
++}
++uint32_t arm_r_r12_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 13;
++}
++uint32_t arm_r_r13_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 13;
++}
++uint32_t arm_r_r14_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 13;
++}
++uint32_t arm_r_r15_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 13;
++}
++uint32_t arm_r_r0_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[6]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r1_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r2_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r3_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r4_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r5_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r6_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r7_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r8_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r9_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r10_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r11_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r12_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r13_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r14_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r15_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 13; }
++}
++uint32_t arm_r_r0_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[6]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 12;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 12;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r1_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r2_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r3_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r4_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r5_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r6_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r7_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r8_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r9_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r10_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r11_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r12_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r13_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r14_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r15_t6_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 12; }
++}
++uint32_t arm_rs_r0_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c12(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 13;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[6] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 13;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r1_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r2_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r3_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r4_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r5_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r6_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r7_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r8_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r9_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r10_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r11_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r12_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r13_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r14_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r15_t6_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 13; }
++}
++uint32_t arm_rs_r0_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c13(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[6]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r7.c gxemul-0.7.0/src/cpus/tmp_arm_r7.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r7.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r7.c 2022-10-18 16:37:22.091752400 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 14;
++}
++uint32_t arm_r_r1_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 14;
++}
++uint32_t arm_r_r2_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 14;
++}
++uint32_t arm_r_r3_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 14;
++}
++uint32_t arm_r_r4_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 14;
++}
++uint32_t arm_r_r5_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 14;
++}
++uint32_t arm_r_r6_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 14;
++}
++uint32_t arm_r_r7_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 14;
++}
++uint32_t arm_r_r8_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 14;
++}
++uint32_t arm_r_r9_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 14;
++}
++uint32_t arm_r_r10_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 14;
++}
++uint32_t arm_r_r11_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 14;
++}
++uint32_t arm_r_r12_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 14;
++}
++uint32_t arm_r_r13_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 14;
++}
++uint32_t arm_r_r14_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 14;
++}
++uint32_t arm_r_r15_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 14;
++}
++uint32_t arm_r_r0_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 14;
++}
++uint32_t arm_r_r1_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 14;
++}
++uint32_t arm_r_r2_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 14;
++}
++uint32_t arm_r_r3_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 14;
++}
++uint32_t arm_r_r4_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 14;
++}
++uint32_t arm_r_r5_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 14;
++}
++uint32_t arm_r_r6_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 14;
++}
++uint32_t arm_r_r7_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 14;
++}
++uint32_t arm_r_r8_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 14;
++}
++uint32_t arm_r_r9_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 14;
++}
++uint32_t arm_r_r10_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 14;
++}
++uint32_t arm_r_r11_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 14;
++}
++uint32_t arm_r_r12_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 14;
++}
++uint32_t arm_r_r13_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 14;
++}
++uint32_t arm_r_r14_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 14;
++}
++uint32_t arm_r_r15_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 14;
++}
++uint32_t arm_r_r0_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 14;
++}
++uint32_t arm_r_r1_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 14;
++}
++uint32_t arm_r_r2_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 14;
++}
++uint32_t arm_r_r3_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 14;
++}
++uint32_t arm_r_r4_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 14;
++}
++uint32_t arm_r_r5_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 14;
++}
++uint32_t arm_r_r6_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 14;
++}
++uint32_t arm_r_r7_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 14;
++}
++uint32_t arm_r_r8_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 14;
++}
++uint32_t arm_r_r9_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 14;
++}
++uint32_t arm_r_r10_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 14;
++}
++uint32_t arm_r_r11_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 14;
++}
++uint32_t arm_r_r12_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 14;
++}
++uint32_t arm_r_r13_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 14;
++}
++uint32_t arm_r_r14_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 14;
++}
++uint32_t arm_r_r15_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 14;
++}
++uint32_t arm_r_r0_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r1_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r2_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r3_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r4_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r5_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r6_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r7_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r8_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r9_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r10_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r11_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r12_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r13_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r14_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r15_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 14; }
++}
++uint32_t arm_r_r0_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 15;
++}
++uint32_t arm_r_r1_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 15;
++}
++uint32_t arm_r_r2_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 15;
++}
++uint32_t arm_r_r3_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 15;
++}
++uint32_t arm_r_r4_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 15;
++}
++uint32_t arm_r_r5_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 15;
++}
++uint32_t arm_r_r6_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 15;
++}
++uint32_t arm_r_r7_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 15;
++}
++uint32_t arm_r_r8_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 15;
++}
++uint32_t arm_r_r9_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 15;
++}
++uint32_t arm_r_r10_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 15;
++}
++uint32_t arm_r_r11_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 15;
++}
++uint32_t arm_r_r12_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 15;
++}
++uint32_t arm_r_r13_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 15;
++}
++uint32_t arm_r_r14_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 15;
++}
++uint32_t arm_r_r15_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 15;
++}
++uint32_t arm_r_r0_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[7] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 15;
++}
++uint32_t arm_r_r1_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 15;
++}
++uint32_t arm_r_r2_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 15;
++}
++uint32_t arm_r_r3_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 15;
++}
++uint32_t arm_r_r4_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 15;
++}
++uint32_t arm_r_r5_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 15;
++}
++uint32_t arm_r_r6_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 15;
++}
++uint32_t arm_r_r7_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 15;
++}
++uint32_t arm_r_r8_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 15;
++}
++uint32_t arm_r_r9_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 15;
++}
++uint32_t arm_r_r10_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 15;
++}
++uint32_t arm_r_r11_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 15;
++}
++uint32_t arm_r_r12_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 15;
++}
++uint32_t arm_r_r13_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 15;
++}
++uint32_t arm_r_r14_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 15;
++}
++uint32_t arm_r_r15_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 15;
++}
++uint32_t arm_r_r0_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[7]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 15;
++}
++uint32_t arm_r_r1_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 15;
++}
++uint32_t arm_r_r2_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 15;
++}
++uint32_t arm_r_r3_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 15;
++}
++uint32_t arm_r_r4_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 15;
++}
++uint32_t arm_r_r5_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 15;
++}
++uint32_t arm_r_r6_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 15;
++}
++uint32_t arm_r_r7_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 15;
++}
++uint32_t arm_r_r8_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 15;
++}
++uint32_t arm_r_r9_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 15;
++}
++uint32_t arm_r_r10_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 15;
++}
++uint32_t arm_r_r11_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 15;
++}
++uint32_t arm_r_r12_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 15;
++}
++uint32_t arm_r_r13_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 15;
++}
++uint32_t arm_r_r14_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 15;
++}
++uint32_t arm_r_r15_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 15;
++}
++uint32_t arm_r_r0_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[7]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r1_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r2_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r3_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r4_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r5_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r6_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r7_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r8_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r9_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r10_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r11_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r12_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r13_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r14_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r15_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 15; }
++}
++uint32_t arm_r_r0_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[7]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 14;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 14;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r1_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r2_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r3_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r4_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r5_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r6_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r7_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r8_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r9_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r10_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r11_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r12_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r13_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r14_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r15_t6_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 14; }
++}
++uint32_t arm_rs_r0_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c14(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 15;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[7] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 15;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r1_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r2_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r3_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r4_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r5_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r6_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r7_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r8_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r9_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r10_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r11_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r12_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r13_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r14_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r15_t6_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 15; }
++}
++uint32_t arm_rs_r0_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c15(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[7]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r8.c gxemul-0.7.0/src/cpus/tmp_arm_r8.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r8.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r8.c 2022-10-18 16:37:22.091752400 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 16;
++}
++uint32_t arm_r_r1_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 16;
++}
++uint32_t arm_r_r2_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 16;
++}
++uint32_t arm_r_r3_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 16;
++}
++uint32_t arm_r_r4_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 16;
++}
++uint32_t arm_r_r5_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 16;
++}
++uint32_t arm_r_r6_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 16;
++}
++uint32_t arm_r_r7_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 16;
++}
++uint32_t arm_r_r8_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 16;
++}
++uint32_t arm_r_r9_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 16;
++}
++uint32_t arm_r_r10_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 16;
++}
++uint32_t arm_r_r11_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 16;
++}
++uint32_t arm_r_r12_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 16;
++}
++uint32_t arm_r_r13_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 16;
++}
++uint32_t arm_r_r14_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 16;
++}
++uint32_t arm_r_r15_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 16;
++}
++uint32_t arm_r_r0_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 16;
++}
++uint32_t arm_r_r1_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 16;
++}
++uint32_t arm_r_r2_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 16;
++}
++uint32_t arm_r_r3_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 16;
++}
++uint32_t arm_r_r4_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 16;
++}
++uint32_t arm_r_r5_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 16;
++}
++uint32_t arm_r_r6_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 16;
++}
++uint32_t arm_r_r7_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 16;
++}
++uint32_t arm_r_r8_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 16;
++}
++uint32_t arm_r_r9_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 16;
++}
++uint32_t arm_r_r10_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 16;
++}
++uint32_t arm_r_r11_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 16;
++}
++uint32_t arm_r_r12_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 16;
++}
++uint32_t arm_r_r13_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 16;
++}
++uint32_t arm_r_r14_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 16;
++}
++uint32_t arm_r_r15_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 16;
++}
++uint32_t arm_r_r0_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 16;
++}
++uint32_t arm_r_r1_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 16;
++}
++uint32_t arm_r_r2_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 16;
++}
++uint32_t arm_r_r3_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 16;
++}
++uint32_t arm_r_r4_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 16;
++}
++uint32_t arm_r_r5_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 16;
++}
++uint32_t arm_r_r6_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 16;
++}
++uint32_t arm_r_r7_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 16;
++}
++uint32_t arm_r_r8_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 16;
++}
++uint32_t arm_r_r9_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 16;
++}
++uint32_t arm_r_r10_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 16;
++}
++uint32_t arm_r_r11_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 16;
++}
++uint32_t arm_r_r12_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 16;
++}
++uint32_t arm_r_r13_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 16;
++}
++uint32_t arm_r_r14_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 16;
++}
++uint32_t arm_r_r15_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 16;
++}
++uint32_t arm_r_r0_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r1_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r2_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r3_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r4_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r5_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r6_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r7_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r8_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r9_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r10_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r11_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r12_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r13_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r14_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r15_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 16; }
++}
++uint32_t arm_r_r0_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 17;
++}
++uint32_t arm_r_r1_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 17;
++}
++uint32_t arm_r_r2_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 17;
++}
++uint32_t arm_r_r3_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 17;
++}
++uint32_t arm_r_r4_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 17;
++}
++uint32_t arm_r_r5_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 17;
++}
++uint32_t arm_r_r6_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 17;
++}
++uint32_t arm_r_r7_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 17;
++}
++uint32_t arm_r_r8_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 17;
++}
++uint32_t arm_r_r9_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 17;
++}
++uint32_t arm_r_r10_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 17;
++}
++uint32_t arm_r_r11_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 17;
++}
++uint32_t arm_r_r12_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 17;
++}
++uint32_t arm_r_r13_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 17;
++}
++uint32_t arm_r_r14_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 17;
++}
++uint32_t arm_r_r15_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 17;
++}
++uint32_t arm_r_r0_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[8] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 17;
++}
++uint32_t arm_r_r1_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 17;
++}
++uint32_t arm_r_r2_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 17;
++}
++uint32_t arm_r_r3_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 17;
++}
++uint32_t arm_r_r4_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 17;
++}
++uint32_t arm_r_r5_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 17;
++}
++uint32_t arm_r_r6_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 17;
++}
++uint32_t arm_r_r7_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 17;
++}
++uint32_t arm_r_r8_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 17;
++}
++uint32_t arm_r_r9_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 17;
++}
++uint32_t arm_r_r10_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 17;
++}
++uint32_t arm_r_r11_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 17;
++}
++uint32_t arm_r_r12_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 17;
++}
++uint32_t arm_r_r13_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 17;
++}
++uint32_t arm_r_r14_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 17;
++}
++uint32_t arm_r_r15_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 17;
++}
++uint32_t arm_r_r0_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[8]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 17;
++}
++uint32_t arm_r_r1_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 17;
++}
++uint32_t arm_r_r2_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 17;
++}
++uint32_t arm_r_r3_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 17;
++}
++uint32_t arm_r_r4_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 17;
++}
++uint32_t arm_r_r5_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 17;
++}
++uint32_t arm_r_r6_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 17;
++}
++uint32_t arm_r_r7_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 17;
++}
++uint32_t arm_r_r8_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 17;
++}
++uint32_t arm_r_r9_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 17;
++}
++uint32_t arm_r_r10_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 17;
++}
++uint32_t arm_r_r11_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 17;
++}
++uint32_t arm_r_r12_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 17;
++}
++uint32_t arm_r_r13_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 17;
++}
++uint32_t arm_r_r14_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 17;
++}
++uint32_t arm_r_r15_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 17;
++}
++uint32_t arm_r_r0_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[8]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r1_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r2_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r3_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r4_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r5_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r6_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r7_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r8_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r9_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r10_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r11_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r12_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r13_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r14_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r15_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 17; }
++}
++uint32_t arm_r_r0_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[8]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 16;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 16;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r1_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r2_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r3_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r4_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r5_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r6_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r7_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r8_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r9_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r10_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r11_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r12_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r13_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r14_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r15_t6_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 16; }
++}
++uint32_t arm_rs_r0_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c16(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 17;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[8] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 17;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r1_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r2_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r3_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r4_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r5_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r6_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r7_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r8_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r9_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r10_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r11_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r12_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r13_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r14_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r15_t6_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 17; }
++}
++uint32_t arm_rs_r0_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c17(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[8]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_r9.c gxemul-0.7.0/src/cpus/tmp_arm_r9.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_r9.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_r9.c 2022-10-18 16:37:22.092752900 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 18;
++}
++uint32_t arm_r_r1_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 18;
++}
++uint32_t arm_r_r2_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 18;
++}
++uint32_t arm_r_r3_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 18;
++}
++uint32_t arm_r_r4_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 18;
++}
++uint32_t arm_r_r5_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 18;
++}
++uint32_t arm_r_r6_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 18;
++}
++uint32_t arm_r_r7_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 18;
++}
++uint32_t arm_r_r8_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 18;
++}
++uint32_t arm_r_r9_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 18;
++}
++uint32_t arm_r_r10_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 18;
++}
++uint32_t arm_r_r11_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 18;
++}
++uint32_t arm_r_r12_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 18;
++}
++uint32_t arm_r_r13_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 18;
++}
++uint32_t arm_r_r14_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 18;
++}
++uint32_t arm_r_r15_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 18;
++}
++uint32_t arm_r_r0_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 18;
++}
++uint32_t arm_r_r1_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 18;
++}
++uint32_t arm_r_r2_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 18;
++}
++uint32_t arm_r_r3_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 18;
++}
++uint32_t arm_r_r4_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 18;
++}
++uint32_t arm_r_r5_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 18;
++}
++uint32_t arm_r_r6_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 18;
++}
++uint32_t arm_r_r7_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 18;
++}
++uint32_t arm_r_r8_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 18;
++}
++uint32_t arm_r_r9_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 18;
++}
++uint32_t arm_r_r10_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 18;
++}
++uint32_t arm_r_r11_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 18;
++}
++uint32_t arm_r_r12_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 18;
++}
++uint32_t arm_r_r13_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 18;
++}
++uint32_t arm_r_r14_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 18;
++}
++uint32_t arm_r_r15_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 18;
++}
++uint32_t arm_r_r0_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 18;
++}
++uint32_t arm_r_r1_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 18;
++}
++uint32_t arm_r_r2_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 18;
++}
++uint32_t arm_r_r3_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 18;
++}
++uint32_t arm_r_r4_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 18;
++}
++uint32_t arm_r_r5_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 18;
++}
++uint32_t arm_r_r6_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 18;
++}
++uint32_t arm_r_r7_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 18;
++}
++uint32_t arm_r_r8_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 18;
++}
++uint32_t arm_r_r9_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 18;
++}
++uint32_t arm_r_r10_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 18;
++}
++uint32_t arm_r_r11_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 18;
++}
++uint32_t arm_r_r12_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 18;
++}
++uint32_t arm_r_r13_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 18;
++}
++uint32_t arm_r_r14_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 18;
++}
++uint32_t arm_r_r15_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 18;
++}
++uint32_t arm_r_r0_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r1_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r2_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r3_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r4_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r5_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r6_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r7_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r8_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r9_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r10_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r11_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r12_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r13_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r14_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r15_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 18; }
++}
++uint32_t arm_r_r0_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 19;
++}
++uint32_t arm_r_r1_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 19;
++}
++uint32_t arm_r_r2_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 19;
++}
++uint32_t arm_r_r3_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 19;
++}
++uint32_t arm_r_r4_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 19;
++}
++uint32_t arm_r_r5_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 19;
++}
++uint32_t arm_r_r6_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 19;
++}
++uint32_t arm_r_r7_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 19;
++}
++uint32_t arm_r_r8_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 19;
++}
++uint32_t arm_r_r9_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 19;
++}
++uint32_t arm_r_r10_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 19;
++}
++uint32_t arm_r_r11_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 19;
++}
++uint32_t arm_r_r12_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 19;
++}
++uint32_t arm_r_r13_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 19;
++}
++uint32_t arm_r_r14_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 19;
++}
++uint32_t arm_r_r15_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 19;
++}
++uint32_t arm_r_r0_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[9] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 19;
++}
++uint32_t arm_r_r1_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 19;
++}
++uint32_t arm_r_r2_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 19;
++}
++uint32_t arm_r_r3_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 19;
++}
++uint32_t arm_r_r4_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 19;
++}
++uint32_t arm_r_r5_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 19;
++}
++uint32_t arm_r_r6_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 19;
++}
++uint32_t arm_r_r7_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 19;
++}
++uint32_t arm_r_r8_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 19;
++}
++uint32_t arm_r_r9_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 19;
++}
++uint32_t arm_r_r10_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 19;
++}
++uint32_t arm_r_r11_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 19;
++}
++uint32_t arm_r_r12_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 19;
++}
++uint32_t arm_r_r13_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 19;
++}
++uint32_t arm_r_r14_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 19;
++}
++uint32_t arm_r_r15_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 19;
++}
++uint32_t arm_r_r0_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[9]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 19;
++}
++uint32_t arm_r_r1_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 19;
++}
++uint32_t arm_r_r2_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 19;
++}
++uint32_t arm_r_r3_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 19;
++}
++uint32_t arm_r_r4_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 19;
++}
++uint32_t arm_r_r5_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 19;
++}
++uint32_t arm_r_r6_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 19;
++}
++uint32_t arm_r_r7_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 19;
++}
++uint32_t arm_r_r8_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 19;
++}
++uint32_t arm_r_r9_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 19;
++}
++uint32_t arm_r_r10_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 19;
++}
++uint32_t arm_r_r11_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 19;
++}
++uint32_t arm_r_r12_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 19;
++}
++uint32_t arm_r_r13_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 19;
++}
++uint32_t arm_r_r14_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 19;
++}
++uint32_t arm_r_r15_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 19;
++}
++uint32_t arm_r_r0_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[9]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r1_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r2_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r3_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r4_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r5_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r6_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r7_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r8_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r9_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r10_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r11_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r12_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r13_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r14_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r15_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 19; }
++}
++uint32_t arm_r_r0_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[9]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 18;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 18;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r1_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r2_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r3_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r4_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r5_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r6_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r7_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r8_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r9_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r10_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r11_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r12_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r13_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r14_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r15_t6_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 18; }
++}
++uint32_t arm_rs_r0_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c18(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 19;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[9] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 19;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r1_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r2_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r3_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r4_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r5_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r6_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r7_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r8_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r9_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r10_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r11_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r12_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r13_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r14_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r15_t6_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 19; }
++}
++uint32_t arm_rs_r0_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c19(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[9]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_ra.c gxemul-0.7.0/src/cpus/tmp_arm_ra.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_ra.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_ra.c 2022-10-18 16:37:22.093753900 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 20;
++}
++uint32_t arm_r_r1_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 20;
++}
++uint32_t arm_r_r2_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 20;
++}
++uint32_t arm_r_r3_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 20;
++}
++uint32_t arm_r_r4_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 20;
++}
++uint32_t arm_r_r5_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 20;
++}
++uint32_t arm_r_r6_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 20;
++}
++uint32_t arm_r_r7_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 20;
++}
++uint32_t arm_r_r8_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 20;
++}
++uint32_t arm_r_r9_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 20;
++}
++uint32_t arm_r_r10_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 20;
++}
++uint32_t arm_r_r11_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 20;
++}
++uint32_t arm_r_r12_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 20;
++}
++uint32_t arm_r_r13_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 20;
++}
++uint32_t arm_r_r14_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 20;
++}
++uint32_t arm_r_r15_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 20;
++}
++uint32_t arm_r_r0_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 20;
++}
++uint32_t arm_r_r1_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 20;
++}
++uint32_t arm_r_r2_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 20;
++}
++uint32_t arm_r_r3_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 20;
++}
++uint32_t arm_r_r4_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 20;
++}
++uint32_t arm_r_r5_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 20;
++}
++uint32_t arm_r_r6_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 20;
++}
++uint32_t arm_r_r7_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 20;
++}
++uint32_t arm_r_r8_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 20;
++}
++uint32_t arm_r_r9_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 20;
++}
++uint32_t arm_r_r10_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 20;
++}
++uint32_t arm_r_r11_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 20;
++}
++uint32_t arm_r_r12_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 20;
++}
++uint32_t arm_r_r13_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 20;
++}
++uint32_t arm_r_r14_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 20;
++}
++uint32_t arm_r_r15_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 20;
++}
++uint32_t arm_r_r0_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 20;
++}
++uint32_t arm_r_r1_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 20;
++}
++uint32_t arm_r_r2_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 20;
++}
++uint32_t arm_r_r3_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 20;
++}
++uint32_t arm_r_r4_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 20;
++}
++uint32_t arm_r_r5_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 20;
++}
++uint32_t arm_r_r6_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 20;
++}
++uint32_t arm_r_r7_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 20;
++}
++uint32_t arm_r_r8_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 20;
++}
++uint32_t arm_r_r9_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 20;
++}
++uint32_t arm_r_r10_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 20;
++}
++uint32_t arm_r_r11_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 20;
++}
++uint32_t arm_r_r12_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 20;
++}
++uint32_t arm_r_r13_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 20;
++}
++uint32_t arm_r_r14_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 20;
++}
++uint32_t arm_r_r15_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 20;
++}
++uint32_t arm_r_r0_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r1_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r2_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r3_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r4_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r5_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r6_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r7_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r8_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r9_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r10_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r11_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r12_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r13_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r14_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r15_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 20; }
++}
++uint32_t arm_r_r0_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 21;
++}
++uint32_t arm_r_r1_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 21;
++}
++uint32_t arm_r_r2_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 21;
++}
++uint32_t arm_r_r3_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 21;
++}
++uint32_t arm_r_r4_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 21;
++}
++uint32_t arm_r_r5_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 21;
++}
++uint32_t arm_r_r6_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 21;
++}
++uint32_t arm_r_r7_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 21;
++}
++uint32_t arm_r_r8_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 21;
++}
++uint32_t arm_r_r9_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 21;
++}
++uint32_t arm_r_r10_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 21;
++}
++uint32_t arm_r_r11_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 21;
++}
++uint32_t arm_r_r12_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 21;
++}
++uint32_t arm_r_r13_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 21;
++}
++uint32_t arm_r_r14_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 21;
++}
++uint32_t arm_r_r15_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 21;
++}
++uint32_t arm_r_r0_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[10] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 21;
++}
++uint32_t arm_r_r1_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 21;
++}
++uint32_t arm_r_r2_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 21;
++}
++uint32_t arm_r_r3_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 21;
++}
++uint32_t arm_r_r4_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 21;
++}
++uint32_t arm_r_r5_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 21;
++}
++uint32_t arm_r_r6_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 21;
++}
++uint32_t arm_r_r7_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 21;
++}
++uint32_t arm_r_r8_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 21;
++}
++uint32_t arm_r_r9_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 21;
++}
++uint32_t arm_r_r10_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 21;
++}
++uint32_t arm_r_r11_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 21;
++}
++uint32_t arm_r_r12_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 21;
++}
++uint32_t arm_r_r13_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 21;
++}
++uint32_t arm_r_r14_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 21;
++}
++uint32_t arm_r_r15_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 21;
++}
++uint32_t arm_r_r0_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[10]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 21;
++}
++uint32_t arm_r_r1_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 21;
++}
++uint32_t arm_r_r2_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 21;
++}
++uint32_t arm_r_r3_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 21;
++}
++uint32_t arm_r_r4_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 21;
++}
++uint32_t arm_r_r5_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 21;
++}
++uint32_t arm_r_r6_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 21;
++}
++uint32_t arm_r_r7_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 21;
++}
++uint32_t arm_r_r8_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 21;
++}
++uint32_t arm_r_r9_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 21;
++}
++uint32_t arm_r_r10_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 21;
++}
++uint32_t arm_r_r11_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 21;
++}
++uint32_t arm_r_r12_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 21;
++}
++uint32_t arm_r_r13_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 21;
++}
++uint32_t arm_r_r14_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 21;
++}
++uint32_t arm_r_r15_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 21;
++}
++uint32_t arm_r_r0_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[10]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r1_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r2_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r3_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r4_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r5_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r6_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r7_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r8_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r9_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r10_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r11_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r12_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r13_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r14_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r15_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 21; }
++}
++uint32_t arm_r_r0_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[10]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 20;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 20;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r1_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r2_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r3_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r4_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r5_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r6_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r7_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r8_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r9_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r10_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r11_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r12_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r13_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r14_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r15_t6_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 20; }
++}
++uint32_t arm_rs_r0_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c20(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 21;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[10] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 21;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r1_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r2_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r3_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r4_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r5_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r6_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r7_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r8_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r9_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r10_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r11_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r12_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r13_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r14_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r15_t6_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 21; }
++}
++uint32_t arm_rs_r0_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c21(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[10]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_rb.c gxemul-0.7.0/src/cpus/tmp_arm_rb.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_rb.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_rb.c 2022-10-18 16:37:22.093753900 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 22;
++}
++uint32_t arm_r_r1_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 22;
++}
++uint32_t arm_r_r2_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 22;
++}
++uint32_t arm_r_r3_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 22;
++}
++uint32_t arm_r_r4_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 22;
++}
++uint32_t arm_r_r5_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 22;
++}
++uint32_t arm_r_r6_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 22;
++}
++uint32_t arm_r_r7_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 22;
++}
++uint32_t arm_r_r8_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 22;
++}
++uint32_t arm_r_r9_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 22;
++}
++uint32_t arm_r_r10_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 22;
++}
++uint32_t arm_r_r11_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 22;
++}
++uint32_t arm_r_r12_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 22;
++}
++uint32_t arm_r_r13_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 22;
++}
++uint32_t arm_r_r14_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 22;
++}
++uint32_t arm_r_r15_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 22;
++}
++uint32_t arm_r_r0_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 22;
++}
++uint32_t arm_r_r1_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 22;
++}
++uint32_t arm_r_r2_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 22;
++}
++uint32_t arm_r_r3_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 22;
++}
++uint32_t arm_r_r4_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 22;
++}
++uint32_t arm_r_r5_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 22;
++}
++uint32_t arm_r_r6_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 22;
++}
++uint32_t arm_r_r7_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 22;
++}
++uint32_t arm_r_r8_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 22;
++}
++uint32_t arm_r_r9_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 22;
++}
++uint32_t arm_r_r10_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 22;
++}
++uint32_t arm_r_r11_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 22;
++}
++uint32_t arm_r_r12_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 22;
++}
++uint32_t arm_r_r13_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 22;
++}
++uint32_t arm_r_r14_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 22;
++}
++uint32_t arm_r_r15_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 22;
++}
++uint32_t arm_r_r0_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 22;
++}
++uint32_t arm_r_r1_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 22;
++}
++uint32_t arm_r_r2_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 22;
++}
++uint32_t arm_r_r3_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 22;
++}
++uint32_t arm_r_r4_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 22;
++}
++uint32_t arm_r_r5_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 22;
++}
++uint32_t arm_r_r6_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 22;
++}
++uint32_t arm_r_r7_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 22;
++}
++uint32_t arm_r_r8_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 22;
++}
++uint32_t arm_r_r9_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 22;
++}
++uint32_t arm_r_r10_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 22;
++}
++uint32_t arm_r_r11_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 22;
++}
++uint32_t arm_r_r12_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 22;
++}
++uint32_t arm_r_r13_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 22;
++}
++uint32_t arm_r_r14_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 22;
++}
++uint32_t arm_r_r15_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 22;
++}
++uint32_t arm_r_r0_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r1_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r2_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r3_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r4_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r5_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r6_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r7_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r8_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r9_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r10_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r11_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r12_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r13_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r14_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r15_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 22; }
++}
++uint32_t arm_r_r0_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 23;
++}
++uint32_t arm_r_r1_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 23;
++}
++uint32_t arm_r_r2_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 23;
++}
++uint32_t arm_r_r3_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 23;
++}
++uint32_t arm_r_r4_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 23;
++}
++uint32_t arm_r_r5_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 23;
++}
++uint32_t arm_r_r6_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 23;
++}
++uint32_t arm_r_r7_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 23;
++}
++uint32_t arm_r_r8_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 23;
++}
++uint32_t arm_r_r9_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 23;
++}
++uint32_t arm_r_r10_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 23;
++}
++uint32_t arm_r_r11_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 23;
++}
++uint32_t arm_r_r12_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 23;
++}
++uint32_t arm_r_r13_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 23;
++}
++uint32_t arm_r_r14_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 23;
++}
++uint32_t arm_r_r15_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 23;
++}
++uint32_t arm_r_r0_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[11] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 23;
++}
++uint32_t arm_r_r1_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 23;
++}
++uint32_t arm_r_r2_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 23;
++}
++uint32_t arm_r_r3_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 23;
++}
++uint32_t arm_r_r4_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 23;
++}
++uint32_t arm_r_r5_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 23;
++}
++uint32_t arm_r_r6_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 23;
++}
++uint32_t arm_r_r7_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 23;
++}
++uint32_t arm_r_r8_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 23;
++}
++uint32_t arm_r_r9_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 23;
++}
++uint32_t arm_r_r10_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 23;
++}
++uint32_t arm_r_r11_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 23;
++}
++uint32_t arm_r_r12_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 23;
++}
++uint32_t arm_r_r13_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 23;
++}
++uint32_t arm_r_r14_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 23;
++}
++uint32_t arm_r_r15_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 23;
++}
++uint32_t arm_r_r0_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[11]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 23;
++}
++uint32_t arm_r_r1_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 23;
++}
++uint32_t arm_r_r2_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 23;
++}
++uint32_t arm_r_r3_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 23;
++}
++uint32_t arm_r_r4_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 23;
++}
++uint32_t arm_r_r5_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 23;
++}
++uint32_t arm_r_r6_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 23;
++}
++uint32_t arm_r_r7_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 23;
++}
++uint32_t arm_r_r8_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 23;
++}
++uint32_t arm_r_r9_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 23;
++}
++uint32_t arm_r_r10_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 23;
++}
++uint32_t arm_r_r11_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 23;
++}
++uint32_t arm_r_r12_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 23;
++}
++uint32_t arm_r_r13_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 23;
++}
++uint32_t arm_r_r14_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 23;
++}
++uint32_t arm_r_r15_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 23;
++}
++uint32_t arm_r_r0_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[11]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r1_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r2_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r3_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r4_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r5_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r6_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r7_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r8_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r9_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r10_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r11_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r12_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r13_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r14_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r15_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 23; }
++}
++uint32_t arm_r_r0_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[11]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 22;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 22;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r1_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r2_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r3_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r4_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r5_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r6_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r7_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r8_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r9_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r10_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r11_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r12_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r13_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r14_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r15_t6_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 22; }
++}
++uint32_t arm_rs_r0_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c22(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x200)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 23;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[11] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 23;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r1_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r2_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r3_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r4_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r5_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r6_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r7_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r8_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r9_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r10_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r11_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r12_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r13_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r14_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r15_t6_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x400000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 23; }
++}
++uint32_t arm_rs_r0_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c23(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[11]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_rc.c gxemul-0.7.0/src/cpus/tmp_arm_rc.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_rc.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_rc.c 2022-10-18 16:37:22.094755000 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 24;
++}
++uint32_t arm_r_r1_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 24;
++}
++uint32_t arm_r_r2_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 24;
++}
++uint32_t arm_r_r3_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 24;
++}
++uint32_t arm_r_r4_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 24;
++}
++uint32_t arm_r_r5_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 24;
++}
++uint32_t arm_r_r6_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 24;
++}
++uint32_t arm_r_r7_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 24;
++}
++uint32_t arm_r_r8_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 24;
++}
++uint32_t arm_r_r9_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 24;
++}
++uint32_t arm_r_r10_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 24;
++}
++uint32_t arm_r_r11_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 24;
++}
++uint32_t arm_r_r12_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 24;
++}
++uint32_t arm_r_r13_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 24;
++}
++uint32_t arm_r_r14_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 24;
++}
++uint32_t arm_r_r15_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 24;
++}
++uint32_t arm_r_r0_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 24;
++}
++uint32_t arm_r_r1_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 24;
++}
++uint32_t arm_r_r2_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 24;
++}
++uint32_t arm_r_r3_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 24;
++}
++uint32_t arm_r_r4_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 24;
++}
++uint32_t arm_r_r5_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 24;
++}
++uint32_t arm_r_r6_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 24;
++}
++uint32_t arm_r_r7_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 24;
++}
++uint32_t arm_r_r8_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 24;
++}
++uint32_t arm_r_r9_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 24;
++}
++uint32_t arm_r_r10_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 24;
++}
++uint32_t arm_r_r11_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 24;
++}
++uint32_t arm_r_r12_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 24;
++}
++uint32_t arm_r_r13_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 24;
++}
++uint32_t arm_r_r14_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 24;
++}
++uint32_t arm_r_r15_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 24;
++}
++uint32_t arm_r_r0_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 24;
++}
++uint32_t arm_r_r1_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 24;
++}
++uint32_t arm_r_r2_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 24;
++}
++uint32_t arm_r_r3_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 24;
++}
++uint32_t arm_r_r4_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 24;
++}
++uint32_t arm_r_r5_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 24;
++}
++uint32_t arm_r_r6_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 24;
++}
++uint32_t arm_r_r7_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 24;
++}
++uint32_t arm_r_r8_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 24;
++}
++uint32_t arm_r_r9_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 24;
++}
++uint32_t arm_r_r10_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 24;
++}
++uint32_t arm_r_r11_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 24;
++}
++uint32_t arm_r_r12_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 24;
++}
++uint32_t arm_r_r13_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 24;
++}
++uint32_t arm_r_r14_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 24;
++}
++uint32_t arm_r_r15_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 24;
++}
++uint32_t arm_r_r0_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r1_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r2_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r3_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r4_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r5_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r6_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r7_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r8_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r9_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r10_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r11_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r12_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r13_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r14_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r15_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 24; }
++}
++uint32_t arm_r_r0_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 25;
++}
++uint32_t arm_r_r1_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 25;
++}
++uint32_t arm_r_r2_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 25;
++}
++uint32_t arm_r_r3_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 25;
++}
++uint32_t arm_r_r4_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 25;
++}
++uint32_t arm_r_r5_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 25;
++}
++uint32_t arm_r_r6_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 25;
++}
++uint32_t arm_r_r7_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 25;
++}
++uint32_t arm_r_r8_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 25;
++}
++uint32_t arm_r_r9_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 25;
++}
++uint32_t arm_r_r10_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 25;
++}
++uint32_t arm_r_r11_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 25;
++}
++uint32_t arm_r_r12_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 25;
++}
++uint32_t arm_r_r13_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 25;
++}
++uint32_t arm_r_r14_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 25;
++}
++uint32_t arm_r_r15_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 25;
++}
++uint32_t arm_r_r0_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[12] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 25;
++}
++uint32_t arm_r_r1_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 25;
++}
++uint32_t arm_r_r2_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 25;
++}
++uint32_t arm_r_r3_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 25;
++}
++uint32_t arm_r_r4_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 25;
++}
++uint32_t arm_r_r5_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 25;
++}
++uint32_t arm_r_r6_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 25;
++}
++uint32_t arm_r_r7_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 25;
++}
++uint32_t arm_r_r8_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 25;
++}
++uint32_t arm_r_r9_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 25;
++}
++uint32_t arm_r_r10_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 25;
++}
++uint32_t arm_r_r11_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 25;
++}
++uint32_t arm_r_r12_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 25;
++}
++uint32_t arm_r_r13_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 25;
++}
++uint32_t arm_r_r14_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 25;
++}
++uint32_t arm_r_r15_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 25;
++}
++uint32_t arm_r_r0_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[12]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 25;
++}
++uint32_t arm_r_r1_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 25;
++}
++uint32_t arm_r_r2_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 25;
++}
++uint32_t arm_r_r3_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 25;
++}
++uint32_t arm_r_r4_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 25;
++}
++uint32_t arm_r_r5_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 25;
++}
++uint32_t arm_r_r6_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 25;
++}
++uint32_t arm_r_r7_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 25;
++}
++uint32_t arm_r_r8_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 25;
++}
++uint32_t arm_r_r9_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 25;
++}
++uint32_t arm_r_r10_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 25;
++}
++uint32_t arm_r_r11_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 25;
++}
++uint32_t arm_r_r12_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 25;
++}
++uint32_t arm_r_r13_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 25;
++}
++uint32_t arm_r_r14_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 25;
++}
++uint32_t arm_r_r15_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 25;
++}
++uint32_t arm_r_r0_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[12]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r1_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r2_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r3_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r4_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r5_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r6_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r7_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r8_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r9_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r10_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r11_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r12_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r13_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r14_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r15_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 25; }
++}
++uint32_t arm_r_r0_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[12]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x100)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 24;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 24;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r1_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r2_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r3_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r4_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r5_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r6_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r7_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r8_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r9_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r10_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r11_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r12_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r13_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r14_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r15_t6_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x800000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 24; }
++}
++uint32_t arm_rs_r0_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c24(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x80)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 25;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[12] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 25;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r1_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r2_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r3_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r4_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r5_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r6_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r7_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r8_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r9_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r10_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r11_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r12_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r13_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r14_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r15_t6_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x1000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 25; }
++}
++uint32_t arm_rs_r0_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c25(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[12]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_rd.c gxemul-0.7.0/src/cpus/tmp_arm_rd.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_rd.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_rd.c 2022-10-18 16:37:22.095755700 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 26;
++}
++uint32_t arm_r_r1_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 26;
++}
++uint32_t arm_r_r2_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 26;
++}
++uint32_t arm_r_r3_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 26;
++}
++uint32_t arm_r_r4_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 26;
++}
++uint32_t arm_r_r5_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 26;
++}
++uint32_t arm_r_r6_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 26;
++}
++uint32_t arm_r_r7_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 26;
++}
++uint32_t arm_r_r8_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 26;
++}
++uint32_t arm_r_r9_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 26;
++}
++uint32_t arm_r_r10_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 26;
++}
++uint32_t arm_r_r11_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 26;
++}
++uint32_t arm_r_r12_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 26;
++}
++uint32_t arm_r_r13_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 26;
++}
++uint32_t arm_r_r14_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 26;
++}
++uint32_t arm_r_r15_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 26;
++}
++uint32_t arm_r_r0_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 26;
++}
++uint32_t arm_r_r1_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 26;
++}
++uint32_t arm_r_r2_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 26;
++}
++uint32_t arm_r_r3_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 26;
++}
++uint32_t arm_r_r4_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 26;
++}
++uint32_t arm_r_r5_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 26;
++}
++uint32_t arm_r_r6_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 26;
++}
++uint32_t arm_r_r7_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 26;
++}
++uint32_t arm_r_r8_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 26;
++}
++uint32_t arm_r_r9_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 26;
++}
++uint32_t arm_r_r10_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 26;
++}
++uint32_t arm_r_r11_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 26;
++}
++uint32_t arm_r_r12_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 26;
++}
++uint32_t arm_r_r13_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 26;
++}
++uint32_t arm_r_r14_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 26;
++}
++uint32_t arm_r_r15_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 26;
++}
++uint32_t arm_r_r0_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 26;
++}
++uint32_t arm_r_r1_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 26;
++}
++uint32_t arm_r_r2_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 26;
++}
++uint32_t arm_r_r3_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 26;
++}
++uint32_t arm_r_r4_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 26;
++}
++uint32_t arm_r_r5_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 26;
++}
++uint32_t arm_r_r6_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 26;
++}
++uint32_t arm_r_r7_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 26;
++}
++uint32_t arm_r_r8_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 26;
++}
++uint32_t arm_r_r9_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 26;
++}
++uint32_t arm_r_r10_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 26;
++}
++uint32_t arm_r_r11_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 26;
++}
++uint32_t arm_r_r12_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 26;
++}
++uint32_t arm_r_r13_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 26;
++}
++uint32_t arm_r_r14_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 26;
++}
++uint32_t arm_r_r15_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 26;
++}
++uint32_t arm_r_r0_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r1_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r2_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r3_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r4_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r5_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r6_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r7_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r8_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r9_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r10_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r11_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r12_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r13_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r14_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r15_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 26; }
++}
++uint32_t arm_r_r0_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 27;
++}
++uint32_t arm_r_r1_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 27;
++}
++uint32_t arm_r_r2_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 27;
++}
++uint32_t arm_r_r3_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 27;
++}
++uint32_t arm_r_r4_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 27;
++}
++uint32_t arm_r_r5_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 27;
++}
++uint32_t arm_r_r6_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 27;
++}
++uint32_t arm_r_r7_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 27;
++}
++uint32_t arm_r_r8_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 27;
++}
++uint32_t arm_r_r9_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 27;
++}
++uint32_t arm_r_r10_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 27;
++}
++uint32_t arm_r_r11_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 27;
++}
++uint32_t arm_r_r12_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 27;
++}
++uint32_t arm_r_r13_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 27;
++}
++uint32_t arm_r_r14_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 27;
++}
++uint32_t arm_r_r15_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 27;
++}
++uint32_t arm_r_r0_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[13] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 27;
++}
++uint32_t arm_r_r1_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 27;
++}
++uint32_t arm_r_r2_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 27;
++}
++uint32_t arm_r_r3_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 27;
++}
++uint32_t arm_r_r4_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 27;
++}
++uint32_t arm_r_r5_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 27;
++}
++uint32_t arm_r_r6_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 27;
++}
++uint32_t arm_r_r7_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 27;
++}
++uint32_t arm_r_r8_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 27;
++}
++uint32_t arm_r_r9_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 27;
++}
++uint32_t arm_r_r10_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 27;
++}
++uint32_t arm_r_r11_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 27;
++}
++uint32_t arm_r_r12_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 27;
++}
++uint32_t arm_r_r13_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 27;
++}
++uint32_t arm_r_r14_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 27;
++}
++uint32_t arm_r_r15_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 27;
++}
++uint32_t arm_r_r0_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[13]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 27;
++}
++uint32_t arm_r_r1_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 27;
++}
++uint32_t arm_r_r2_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 27;
++}
++uint32_t arm_r_r3_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 27;
++}
++uint32_t arm_r_r4_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 27;
++}
++uint32_t arm_r_r5_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 27;
++}
++uint32_t arm_r_r6_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 27;
++}
++uint32_t arm_r_r7_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 27;
++}
++uint32_t arm_r_r8_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 27;
++}
++uint32_t arm_r_r9_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 27;
++}
++uint32_t arm_r_r10_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 27;
++}
++uint32_t arm_r_r11_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 27;
++}
++uint32_t arm_r_r12_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 27;
++}
++uint32_t arm_r_r13_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 27;
++}
++uint32_t arm_r_r14_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 27;
++}
++uint32_t arm_r_r15_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 27;
++}
++uint32_t arm_r_r0_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[13]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r1_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r2_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r3_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r4_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r5_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r6_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r7_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r8_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r9_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r10_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r11_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r12_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r13_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r14_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r15_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 27; }
++}
++uint32_t arm_r_r0_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[13]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 26;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 26;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r1_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r2_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r3_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r4_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r5_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r6_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r7_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r8_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r9_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r10_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r11_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r12_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r13_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r14_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r15_t6_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 26; }
++}
++uint32_t arm_rs_r0_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c26(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 27;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[13] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 27;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r1_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r2_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r3_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r4_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r5_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r6_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r7_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r8_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r9_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r10_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r11_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r12_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r13_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r14_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r15_t6_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 27; }
++}
++uint32_t arm_rs_r0_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c27(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[13]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_re.c gxemul-0.7.0/src/cpus/tmp_arm_re.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_re.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_re.c 2022-10-18 16:37:22.095755700 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 28;
++}
++uint32_t arm_r_r1_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 28;
++}
++uint32_t arm_r_r2_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 28;
++}
++uint32_t arm_r_r3_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 28;
++}
++uint32_t arm_r_r4_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 28;
++}
++uint32_t arm_r_r5_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 28;
++}
++uint32_t arm_r_r6_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 28;
++}
++uint32_t arm_r_r7_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 28;
++}
++uint32_t arm_r_r8_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 28;
++}
++uint32_t arm_r_r9_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 28;
++}
++uint32_t arm_r_r10_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 28;
++}
++uint32_t arm_r_r11_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 28;
++}
++uint32_t arm_r_r12_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 28;
++}
++uint32_t arm_r_r13_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 28;
++}
++uint32_t arm_r_r14_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 28;
++}
++uint32_t arm_r_r15_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 28;
++}
++uint32_t arm_r_r0_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 28;
++}
++uint32_t arm_r_r1_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 28;
++}
++uint32_t arm_r_r2_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 28;
++}
++uint32_t arm_r_r3_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 28;
++}
++uint32_t arm_r_r4_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 28;
++}
++uint32_t arm_r_r5_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 28;
++}
++uint32_t arm_r_r6_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 28;
++}
++uint32_t arm_r_r7_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 28;
++}
++uint32_t arm_r_r8_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 28;
++}
++uint32_t arm_r_r9_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 28;
++}
++uint32_t arm_r_r10_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 28;
++}
++uint32_t arm_r_r11_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 28;
++}
++uint32_t arm_r_r12_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 28;
++}
++uint32_t arm_r_r13_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 28;
++}
++uint32_t arm_r_r14_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 28;
++}
++uint32_t arm_r_r15_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 28;
++}
++uint32_t arm_r_r0_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 28;
++}
++uint32_t arm_r_r1_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 28;
++}
++uint32_t arm_r_r2_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 28;
++}
++uint32_t arm_r_r3_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 28;
++}
++uint32_t arm_r_r4_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 28;
++}
++uint32_t arm_r_r5_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 28;
++}
++uint32_t arm_r_r6_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 28;
++}
++uint32_t arm_r_r7_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 28;
++}
++uint32_t arm_r_r8_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 28;
++}
++uint32_t arm_r_r9_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 28;
++}
++uint32_t arm_r_r10_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 28;
++}
++uint32_t arm_r_r11_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 28;
++}
++uint32_t arm_r_r12_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 28;
++}
++uint32_t arm_r_r13_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 28;
++}
++uint32_t arm_r_r14_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 28;
++}
++uint32_t arm_r_r15_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 28;
++}
++uint32_t arm_r_r0_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r1_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r2_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r3_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r4_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r5_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r6_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r7_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r8_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r9_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r10_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r11_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r12_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r13_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r14_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r15_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 28; }
++}
++uint32_t arm_r_r0_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 29;
++}
++uint32_t arm_r_r1_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 29;
++}
++uint32_t arm_r_r2_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 29;
++}
++uint32_t arm_r_r3_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 29;
++}
++uint32_t arm_r_r4_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 29;
++}
++uint32_t arm_r_r5_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 29;
++}
++uint32_t arm_r_r6_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 29;
++}
++uint32_t arm_r_r7_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 29;
++}
++uint32_t arm_r_r8_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 29;
++}
++uint32_t arm_r_r9_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 29;
++}
++uint32_t arm_r_r10_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 29;
++}
++uint32_t arm_r_r11_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 29;
++}
++uint32_t arm_r_r12_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 29;
++}
++uint32_t arm_r_r13_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 29;
++}
++uint32_t arm_r_r14_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 29;
++}
++uint32_t arm_r_r15_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 29;
++}
++uint32_t arm_r_r0_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[14] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 29;
++}
++uint32_t arm_r_r1_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 29;
++}
++uint32_t arm_r_r2_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 29;
++}
++uint32_t arm_r_r3_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 29;
++}
++uint32_t arm_r_r4_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 29;
++}
++uint32_t arm_r_r5_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 29;
++}
++uint32_t arm_r_r6_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 29;
++}
++uint32_t arm_r_r7_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 29;
++}
++uint32_t arm_r_r8_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 29;
++}
++uint32_t arm_r_r9_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 29;
++}
++uint32_t arm_r_r10_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 29;
++}
++uint32_t arm_r_r11_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 29;
++}
++uint32_t arm_r_r12_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 29;
++}
++uint32_t arm_r_r13_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 29;
++}
++uint32_t arm_r_r14_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 29;
++}
++uint32_t arm_r_r15_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 29;
++}
++uint32_t arm_r_r0_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[14]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 29;
++}
++uint32_t arm_r_r1_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 29;
++}
++uint32_t arm_r_r2_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 29;
++}
++uint32_t arm_r_r3_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 29;
++}
++uint32_t arm_r_r4_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 29;
++}
++uint32_t arm_r_r5_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 29;
++}
++uint32_t arm_r_r6_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 29;
++}
++uint32_t arm_r_r7_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 29;
++}
++uint32_t arm_r_r8_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 29;
++}
++uint32_t arm_r_r9_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 29;
++}
++uint32_t arm_r_r10_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 29;
++}
++uint32_t arm_r_r11_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 29;
++}
++uint32_t arm_r_r12_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 29;
++}
++uint32_t arm_r_r13_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 29;
++}
++uint32_t arm_r_r14_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 29;
++}
++uint32_t arm_r_r15_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 29;
++}
++uint32_t arm_r_r0_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[14]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r1_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r2_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r3_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r4_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r5_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r6_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r7_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r8_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r9_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r10_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r11_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r12_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r13_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r14_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r15_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 29; }
++}
++uint32_t arm_r_r0_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[14]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 28;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 28;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r1_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r2_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r3_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r4_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r5_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r6_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r7_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r8_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r9_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r10_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r11_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r12_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r13_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r14_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r15_t6_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 28; }
++}
++uint32_t arm_rs_r0_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c28(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x8)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 29;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[14] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 29;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r1_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r2_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r3_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r4_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r5_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r6_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r7_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r8_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r9_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r10_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r11_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r12_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r13_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r14_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r15_t6_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x10000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 29; }
++}
++uint32_t arm_rs_r0_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c29(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[14]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_rf.c gxemul-0.7.0/src/cpus/tmp_arm_rf.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_rf.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_rf.c 2022-10-18 16:37:22.096756400 +0000
+@@ -0,0 +1,3338 @@
++/*
++ * DO NOT EDIT! AUTOMATICALLY GENERATED!
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include "cpu.h"
++#include "misc.h"
++
++
++uint32_t arm_r_r0_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 30;
++}
++uint32_t arm_r_r1_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 30;
++}
++uint32_t arm_r_r2_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 30;
++}
++uint32_t arm_r_r3_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 30;
++}
++uint32_t arm_r_r4_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 30;
++}
++uint32_t arm_r_r5_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 30;
++}
++uint32_t arm_r_r6_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 30;
++}
++uint32_t arm_r_r7_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 30;
++}
++uint32_t arm_r_r8_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 30;
++}
++uint32_t arm_r_r9_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 30;
++}
++uint32_t arm_r_r10_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 30;
++}
++uint32_t arm_r_r11_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 30;
++}
++uint32_t arm_r_r12_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 30;
++}
++uint32_t arm_r_r13_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 30;
++}
++uint32_t arm_r_r14_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 30;
++}
++uint32_t arm_r_r15_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 30;
++}
++uint32_t arm_r_r0_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 30;
++}
++uint32_t arm_r_r1_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 30;
++}
++uint32_t arm_r_r2_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 30;
++}
++uint32_t arm_r_r3_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 30;
++}
++uint32_t arm_r_r4_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 30;
++}
++uint32_t arm_r_r5_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 30;
++}
++uint32_t arm_r_r6_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 30;
++}
++uint32_t arm_r_r7_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 30;
++}
++uint32_t arm_r_r8_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 30;
++}
++uint32_t arm_r_r9_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 30;
++}
++uint32_t arm_r_r10_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 30;
++}
++uint32_t arm_r_r11_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 30;
++}
++uint32_t arm_r_r12_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 30;
++}
++uint32_t arm_r_r13_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 30;
++}
++uint32_t arm_r_r14_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 30;
++}
++uint32_t arm_r_r15_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 30;
++}
++uint32_t arm_r_r0_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 30;
++}
++uint32_t arm_r_r1_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 30;
++}
++uint32_t arm_r_r2_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 30;
++}
++uint32_t arm_r_r3_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 30;
++}
++uint32_t arm_r_r4_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 30;
++}
++uint32_t arm_r_r5_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 30;
++}
++uint32_t arm_r_r6_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 30;
++}
++uint32_t arm_r_r7_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 30;
++}
++uint32_t arm_r_r8_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 30;
++}
++uint32_t arm_r_r9_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 30;
++}
++uint32_t arm_r_r10_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 30;
++}
++uint32_t arm_r_r11_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 30;
++}
++uint32_t arm_r_r12_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 30;
++}
++uint32_t arm_r_r13_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 30;
++}
++uint32_t arm_r_r14_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 30;
++}
++uint32_t arm_r_r15_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 30;
++}
++uint32_t arm_r_r0_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r1_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r2_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r3_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r4_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r5_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r6_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r7_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r8_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r9_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r10_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r11_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r12_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r13_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r14_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r15_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 30; }
++}
++uint32_t arm_r_r0_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r0_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] << 31;
++}
++uint32_t arm_r_r1_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] << 31;
++}
++uint32_t arm_r_r2_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] << 31;
++}
++uint32_t arm_r_r3_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] << 31;
++}
++uint32_t arm_r_r4_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] << 31;
++}
++uint32_t arm_r_r5_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] << 31;
++}
++uint32_t arm_r_r6_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] << 31;
++}
++uint32_t arm_r_r7_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] << 31;
++}
++uint32_t arm_r_r8_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] << 31;
++}
++uint32_t arm_r_r9_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] << 31;
++}
++uint32_t arm_r_r10_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] << 31;
++}
++uint32_t arm_r_r11_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] << 31;
++}
++uint32_t arm_r_r12_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] << 31;
++}
++uint32_t arm_r_r13_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] << 31;
++}
++uint32_t arm_r_r14_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] << 31;
++}
++uint32_t arm_r_r15_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp << 31;
++}
++uint32_t arm_r_r0_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[0];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r1_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[1];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r2_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[2];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r3_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[3];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r4_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[4];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r5_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[5];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r6_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[6];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r7_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[7];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r8_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[8];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r9_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[9];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r10_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[10];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r11_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[11];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r12_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[12];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r13_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[13];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r14_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =cpu->cd.arm.r[14];
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r15_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y = cpu->cd.arm.r[15] & 255;
++ uint32_t x =tmp;
++if (y > 31) return 0; else x <<= y;
++return x; }
++}
++uint32_t arm_r_r0_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[0] >> 31;
++}
++uint32_t arm_r_r1_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[1] >> 31;
++}
++uint32_t arm_r_r2_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[2] >> 31;
++}
++uint32_t arm_r_r3_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[3] >> 31;
++}
++uint32_t arm_r_r4_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[4] >> 31;
++}
++uint32_t arm_r_r5_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[5] >> 31;
++}
++uint32_t arm_r_r6_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[6] >> 31;
++}
++uint32_t arm_r_r7_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[7] >> 31;
++}
++uint32_t arm_r_r8_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[8] >> 31;
++}
++uint32_t arm_r_r9_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[9] >> 31;
++}
++uint32_t arm_r_r10_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[10] >> 31;
++}
++uint32_t arm_r_r11_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[11] >> 31;
++}
++uint32_t arm_r_r12_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[12] >> 31;
++}
++uint32_t arm_r_r13_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[13] >> 31;
++}
++uint32_t arm_r_r14_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ return cpu->cd.arm.r[14] >> 31;
++}
++uint32_t arm_r_r15_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++ return tmp >> 31;
++}
++uint32_t arm_r_r0_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[0]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r1_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[1]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r2_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[2]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r3_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[3]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r4_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[4]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r5_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[5]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r6_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[6]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r7_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[7]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r8_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[8]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r9_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[9]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r10_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[10]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r11_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[11]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r12_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[12]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r13_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[13]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r14_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=cpu->cd.arm.r[14]; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r15_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t y=cpu->cd.arm.r[15]&255;
++uint32_t x=tmp; if (y>=32) return 0;
++return x >> y; } }
++uint32_t arm_r_r0_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[0] >> 31;
++}
++uint32_t arm_r_r1_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[1] >> 31;
++}
++uint32_t arm_r_r2_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[2] >> 31;
++}
++uint32_t arm_r_r3_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[3] >> 31;
++}
++uint32_t arm_r_r4_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[4] >> 31;
++}
++uint32_t arm_r_r5_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[5] >> 31;
++}
++uint32_t arm_r_r6_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[6] >> 31;
++}
++uint32_t arm_r_r7_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[7] >> 31;
++}
++uint32_t arm_r_r8_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[8] >> 31;
++}
++uint32_t arm_r_r9_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[9] >> 31;
++}
++uint32_t arm_r_r10_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[10] >> 31;
++}
++uint32_t arm_r_r11_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[11] >> 31;
++}
++uint32_t arm_r_r12_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[12] >> 31;
++}
++uint32_t arm_r_r13_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[13] >> 31;
++}
++uint32_t arm_r_r14_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++return (int32_t)cpu->cd.arm.r[14] >> 31;
++}
++uint32_t arm_r_r15_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++return (int32_t)tmp >> 31;
++}
++uint32_t arm_r_r0_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[0]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r1_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[1]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r2_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[2]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r3_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[3]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r4_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[4]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r5_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[5]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r6_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[6]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r7_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[7]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r8_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[8]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r9_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[9]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r10_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[10]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r11_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[11]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r12_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[12]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r13_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[13]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r14_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=cpu->cd.arm.r[14]; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r15_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t y=cpu->cd.arm.r[15]&255;
++int32_t x=tmp; if (y>=31) return (x<0)?0xffffffff:0;
++return (int32_t)x >> y; } }
++uint32_t arm_r_r0_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r1_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r2_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r3_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r4_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r5_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r6_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r7_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r8_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r9_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r10_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r11_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r12_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r13_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r14_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r15_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x=tmp; x |= (x << 32); return x >> 31; }
++}
++uint32_t arm_r_r0_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[0]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r1_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[1]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r2_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[2]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r3_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[3]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r4_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[4]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r5_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[5]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r6_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[6]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r7_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[7]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r8_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[8]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r9_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[9]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r10_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[10]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r11_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[11]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r12_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[12]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r13_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[13]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r14_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=cpu->cd.arm.r[14]; x |= (x << 32); return (x >> y); } }
++uint32_t arm_r_r15_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int y=cpu->cd.arm.r[15]&31;
++uint64_t x=tmp; x |= (x << 32); return (x >> y); } }
++uint32_t arm_rs_r0_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x4)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 30;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 30;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r1_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r2_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r3_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r4_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r5_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r6_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r7_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r8_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r9_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r10_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r11_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r12_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r13_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r14_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r15_t6_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x20000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 30; }
++}
++uint32_t arm_rs_r0_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c30(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r1_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r2_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r3_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r4_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r5_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r6_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r7_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r8_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r9_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r10_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r11_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r12_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r13_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r14_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r15_t0_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x2)
++ cpu->cd.arm.flags |= ARM_F_C;
++x <<= 31;
++ return x; }
++}
++uint32_t arm_rs_r0_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r1_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r2_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r3_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r4_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r5_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r6_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r7_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r8_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r9_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r10_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r11_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r12_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r13_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r14_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r15_t1_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++ uint32_t y = cpu->cd.arm.r[15] & 255;
++ if (y != 0) {
++ cpu->cd.arm.flags &= ~ARM_F_C;
++ if (y >= 32) return 0;
++ x <<= (y - 1);
++ if (x & 0x80000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ x <<= 1;
++ }
++ return x; }
++}
++uint32_t arm_rs_r0_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r1_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r2_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r3_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r4_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r5_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r6_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r7_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r8_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r9_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r10_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r11_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r12_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r13_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r14_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r15_t2_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r0_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t3_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint32_t x = tmp,y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=32;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r0_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r1_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r2_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r3_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r4_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r5_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r6_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r7_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r8_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r9_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r10_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r11_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r12_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r13_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r14_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14];
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r15_t4_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++x >>= 31;
++ return x; }
++}
++uint32_t arm_rs_r0_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[0],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r1_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[1],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r2_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[2],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r3_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[3],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r4_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[4],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r5_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[5],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r6_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[6],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r7_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[7],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r8_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[8],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r9_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[9],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r10_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[10],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r11_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[11],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r12_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[12],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r13_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[13],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r14_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ int32_t x = cpu->cd.arm.r[14],y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r15_t5_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ int32_t x = tmp,y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if(y>31) y=31;
++y--; x >>= y;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return (int32_t)x >> 1; }
++}
++uint32_t arm_rs_r0_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r1_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r2_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r3_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r4_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r5_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r6_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r7_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r8_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r9_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r10_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r11_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r12_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r13_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r14_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r15_t6_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; x |= (x << 32);
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 0x40000000)
++ cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 31; }
++}
++uint32_t arm_rs_r0_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[0]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r1_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[1]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r2_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[2]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r3_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[3]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r4_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[4]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r5_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[5]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r6_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[6]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r7_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[7]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r8_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[8]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r9_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[9]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r10_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[10]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r11_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[11]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r12_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[12]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r13_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[13]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r14_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++{ uint64_t x = cpu->cd.arm.r[14]; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
++uint32_t arm_rs_r15_t7_c31(struct cpu *cpu, struct arm_instr_call *ic) {
++ uint32_t tmp, low_pc = ((size_t)ic - (size_t)
++ cpu->cd.arm.cur_ic_page)/sizeof(struct arm_instr_call);
++ tmp = cpu->pc & ~((ARM_IC_ENTRIES_PER_PAGE-1) <<
++ ARM_INSTR_ALIGNMENT_SHIFT);
++ tmp += (low_pc << ARM_INSTR_ALIGNMENT_SHIFT) + 8;
++{ uint64_t x = tmp; int y=cpu->cd.arm.r[15]&255;
++if(y==0) return x;
++y --; y &= 31; x >>= y;
++cpu->cd.arm.flags &= ~ARM_F_C;
++if (x & 1) cpu->cd.arm.flags |= ARM_F_C;
++ return x >> 1; }
++}
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_arm_tail.c gxemul-0.7.0/src/cpus/tmp_arm_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_arm_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_arm_tail.c 2022-10-18 16:37:22.097757300 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF arm_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES arm_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF arm_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC arm_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE arm_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE arm_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW arm_memory_rw
++#define MEM_ARM
++#include "memory_rw.c"
++#undef MEM_ARM
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC arm_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC arm_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS arm_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) arm_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_arm_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF arm_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS arm32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void arm32_instr_ ## n(struct cpu *cpu, \
++ struct arm_instr_call *ic)
++#define instr(n) arm32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY arm32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC arm32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE arm32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE arm32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC arm32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC arm32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS arm32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) arm32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_arm_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS arm_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 arm32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF arm32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(arm,"ARM")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_i960_head.c gxemul-0.7.0/src/cpus/tmp_i960_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_i960_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_i960_head.c 2022-10-18 16:37:22.097757300 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES I960_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH i960
++#define DYNTRANS_I960
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N I960_L2N
++#define DYNTRANS_L3N I960_L3N
++#if !defined(I960_L2N) || !defined(I960_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE i960_l2_64_table
++#define DYNTRANS_L3_64_TABLE i960_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC i960_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE I960_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT I960_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE i960_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY i960_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR I960_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY I960_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE i960_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE i960_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS i960_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC i960_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS i960_combine_instructions
++#define DISASSEMBLE i960_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_i960_instr.c */
++#define instr(n) i960_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) i96032_instr_ ## n
++
++#endif
++
++
++#define X(n) void i960_instr_ ## n(struct cpu *cpu, \
++ struct i960_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.i960.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct i960_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_i960_tail.c gxemul-0.7.0/src/cpus/tmp_i960_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_i960_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_i960_tail.c 2022-10-18 16:37:22.098758300 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF i960_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES i960_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF i960_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC i960_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE i960_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE i960_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW i960_memory_rw
++#define MEM_I960
++#include "memory_rw.c"
++#undef MEM_I960
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC i960_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC i960_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS i960_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) i960_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_i960_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF i960_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS i96032_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void i96032_instr_ ## n(struct cpu *cpu, \
++ struct i960_instr_call *ic)
++#define instr(n) i96032_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY i96032_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC i96032_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE i96032_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE i96032_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC i96032_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC i96032_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS i96032_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) i96032_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_i960_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS i960_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 i96032_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF i96032_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(i960,"I960")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_m88k_bcnd.c gxemul-0.7.0/src/cpus/tmp_m88k_bcnd.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_m88k_bcnd.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_m88k_bcnd.c 2022-10-18 16:37:22.099759300 +0000
+@@ -0,0 +1,512 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++
++X(bcnd_gt0)
++{
++ if ((int32_t)reg(ic->arg[0]) > 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_eq0)
++{
++ if ((int32_t)reg(ic->arg[0]) == 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_ge0)
++{
++ if ((int32_t)reg(ic->arg[0]) >= 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_not_maxneg_nor_zero)
++{
++ if ((uint32_t)reg(ic->arg[0]) != 0x80000000UL && (int32_t)reg(ic->arg[0]) != 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_not_maxneg)
++{
++ if ((uint32_t)reg(ic->arg[0]) != 0x80000000UL) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_maxneg)
++{
++ if ((uint32_t)reg(ic->arg[0]) == 0x80000000UL) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_lt0)
++{
++ if ((int32_t)reg(ic->arg[0]) < 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_ne0)
++{
++ if ((int32_t)reg(ic->arg[0]) != 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_le0)
++{
++ if ((int32_t)reg(ic->arg[0]) <= 0) {
++ cpu->pc = (cpu->pc & 0xfffff000) + (int32_t)ic->arg[2];
++ quick_pc_to_pointers(cpu);
++ }
++}
++
++
++X(bcnd_n_gt0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) > 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_eq0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) == 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_ge0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) >= 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_not_maxneg_nor_zero)
++{
++ int cond = (uint32_t)reg(ic->arg[0]) != 0x80000000UL && (int32_t)reg(ic->arg[0]) != 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_not_maxneg)
++{
++ int cond = (uint32_t)reg(ic->arg[0]) != 0x80000000UL;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_maxneg)
++{
++ int cond = (uint32_t)reg(ic->arg[0]) == 0x80000000UL;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_lt0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) < 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_ne0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) != 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_n_le0)
++{
++ int cond = (int32_t)reg(ic->arg[0]) <= 0;
++ SYNCH_PC;
++ if (cond)
++ cpu->cd.m88k.delay_target = (cpu->pc
++ & ~((M88K_IC_ENTRIES_PER_PAGE-1) << M88K_INSTR_ALIGNMENT_SHIFT))
++ + ic->arg[2];
++ else
++ cpu->cd.m88k.delay_target = cpu->pc + 8;
++ cpu->delay_slot = TO_BE_DELAYED;
++ ic[1].f(cpu, ic+1);
++ cpu->n_translated_instrs ++;
++ if (!(cpu->delay_slot & EXCEPTION_IN_DELAY_SLOT)) {
++ cpu->delay_slot = NOT_DELAYED;
++ if (cond) {
++ cpu->pc = cpu->cd.m88k.delay_target;
++ quick_pc_to_pointers(cpu);
++ } else
++ cpu->cd.m88k.next_ic ++;
++ } else
++ cpu->delay_slot = NOT_DELAYED;
++}
++
++
++X(bcnd_samepage_gt0)
++{
++ if ((int32_t)reg(ic->arg[0]) > 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_eq0)
++{
++ if ((int32_t)reg(ic->arg[0]) == 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_ge0)
++{
++ if ((int32_t)reg(ic->arg[0]) >= 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_not_maxneg_nor_zero)
++{
++ if ((uint32_t)reg(ic->arg[0]) != 0x80000000UL && (int32_t)reg(ic->arg[0]) != 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_not_maxneg)
++{
++ if ((uint32_t)reg(ic->arg[0]) != 0x80000000UL) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_maxneg)
++{
++ if ((uint32_t)reg(ic->arg[0]) == 0x80000000UL) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_lt0)
++{
++ if ((int32_t)reg(ic->arg[0]) < 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_ne0)
++{
++ if ((int32_t)reg(ic->arg[0]) != 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++X(bcnd_samepage_le0)
++{
++ if ((int32_t)reg(ic->arg[0]) <= 0) {
++ cpu->cd.m88k.next_ic = (struct m88k_instr_call *) ic->arg[2];
++ }
++}
++
++
++
++void (*m88k_bcnd[32 * 2 * 2])(struct cpu *, struct m88k_instr_call *) = {
++NULL,
++m88k_instr_bcnd_gt0,
++m88k_instr_bcnd_eq0,
++m88k_instr_bcnd_ge0,
++NULL,
++m88k_instr_bcnd_not_maxneg_nor_zero,
++NULL,
++m88k_instr_bcnd_not_maxneg,
++m88k_instr_bcnd_maxneg,
++NULL,
++NULL,
++NULL,
++m88k_instr_bcnd_lt0,
++m88k_instr_bcnd_ne0,
++m88k_instr_bcnd_le0,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++m88k_instr_bcnd_n_gt0,
++m88k_instr_bcnd_n_eq0,
++m88k_instr_bcnd_n_ge0,
++NULL,
++m88k_instr_bcnd_n_not_maxneg_nor_zero,
++NULL,
++m88k_instr_bcnd_n_not_maxneg,
++m88k_instr_bcnd_n_maxneg,
++NULL,
++NULL,
++NULL,
++m88k_instr_bcnd_n_lt0,
++m88k_instr_bcnd_n_ne0,
++m88k_instr_bcnd_n_le0,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++m88k_instr_bcnd_samepage_gt0,
++m88k_instr_bcnd_samepage_eq0,
++m88k_instr_bcnd_samepage_ge0,
++NULL,
++m88k_instr_bcnd_samepage_not_maxneg_nor_zero,
++NULL,
++m88k_instr_bcnd_samepage_not_maxneg,
++m88k_instr_bcnd_samepage_maxneg,
++NULL,
++NULL,
++NULL,
++m88k_instr_bcnd_samepage_lt0,
++m88k_instr_bcnd_samepage_ne0,
++m88k_instr_bcnd_samepage_le0,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL,
++NULL };
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_m88k_head.c gxemul-0.7.0/src/cpus/tmp_m88k_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_m88k_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_m88k_head.c 2022-10-18 16:37:22.099759300 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES M88K_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH m88k
++#define DYNTRANS_M88K
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N M88K_L2N
++#define DYNTRANS_L3N M88K_L3N
++#if !defined(M88K_L2N) || !defined(M88K_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE m88k_l2_64_table
++#define DYNTRANS_L3_64_TABLE m88k_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC m88k_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE M88K_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT M88K_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE m88k_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY m88k_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR M88K_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY M88K_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE m88k_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE m88k_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS m88k_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC m88k_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS m88k_combine_instructions
++#define DISASSEMBLE m88k_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_m88k_instr.c */
++#define instr(n) m88k_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) m88k32_instr_ ## n
++
++#endif
++
++
++#define X(n) void m88k_instr_ ## n(struct cpu *cpu, \
++ struct m88k_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.m88k.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct m88k_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_m88k_loadstore.c gxemul-0.7.0/src/cpus/tmp_m88k_loadstore.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_m88k_loadstore.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_m88k_loadstore.c 2022-10-18 16:37:22.100760000 +0000
+@@ -0,0 +1,4250 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le
++#define LS_GENERIC_N m88k_generic_ld_u_1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le
++#define LS_GENERIC_N m88k_generic_ld_u_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le
++#define LS_GENERIC_N m88k_generic_ld_u_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le
++#define LS_GENERIC_N m88k_generic_ld_u_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le
++#define LS_GENERIC_N m88k_generic_st_1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le
++#define LS_GENERIC_N m88k_generic_st_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le
++#define LS_GENERIC_N m88k_generic_st_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le
++#define LS_GENERIC_N m88k_generic_st_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le
++#define LS_GENERIC_N m88k_generic_ld_1
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le
++#define LS_GENERIC_N m88k_generic_ld_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le
++#define LS_GENERIC_N m88k_generic_ld_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le
++#define LS_GENERIC_N m88k_generic_ld_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be
++#define LS_GENERIC_N m88k_generic_ld_u_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be
++#define LS_GENERIC_N m88k_generic_ld_u_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be
++#define LS_GENERIC_N m88k_generic_ld_u_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be
++#define LS_GENERIC_N m88k_generic_st_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be
++#define LS_GENERIC_N m88k_generic_st_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be
++#define LS_GENERIC_N m88k_generic_st_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be
++#define LS_GENERIC_N m88k_generic_ld_2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be
++#define LS_GENERIC_N m88k_generic_ld_4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be
++#define LS_GENERIC_N m88k_generic_ld_8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_1_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le_regofs
++#define LS_GENERIC_N m88k_generic_st_1_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_regofs
++#define LS_GENERIC_N m88k_generic_st_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_regofs
++#define LS_GENERIC_N m88k_generic_st_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_regofs
++#define LS_GENERIC_N m88k_generic_st_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_1_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_regofs
++#define LS_GENERIC_N m88k_generic_st_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_regofs
++#define LS_GENERIC_N m88k_generic_st_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_regofs
++#define LS_GENERIC_N m88k_generic_st_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_st_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_scaled_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_1_usr_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_1_usr_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_1_usr_regofs
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_st_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_usr_regofs
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_usr_regofs
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_scaled_usr_regofs
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_usr_regofs
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_1_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le_nopcsync
++#define LS_GENERIC_N m88k_generic_st_1_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_1_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_1_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_1_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_1_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_scaled_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_1_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_1_usr_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_1_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_1_usr_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_1_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_1_usr_regofs_nopcsync
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_le_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_2_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_4_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_u_8_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_u_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_STORE
++#define LS_N m88k_instr_st_2_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_4_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_STORE
++#define LS_N m88k_instr_st_8_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_st_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#define LS_LOAD
++#define LS_N m88k_instr_ld_2_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_2_scaled_usr_regofs_nopcsync
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_4_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_4_scaled_usr_regofs_nopcsync
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#define LS_LOAD
++#define LS_N m88k_instr_ld_8_be_scaled_usr_regofs_nopcsync
++#define LS_GENERIC_N m88k_generic_ld_8_scaled_usr_regofs_nopcsync
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#define LS_SCALED
++#define LS_USR
++#define LS_REGOFS
++#define LS_NO_PC_SYNC
++#include "cpu_m88k_instr_loadstore.c"
++#undef LS_NO_PC_SYNC
++#undef LS_REGOFS
++#undef LS_USR
++#undef LS_SCALED
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++
++
++void (*m88k_loadstore[512])(struct cpu *, struct m88k_instr_call *) = {
++ m88k_instr_ld_u_1_le,
++ m88k_instr_ld_u_2_le,
++ m88k_instr_ld_u_4_le,
++ m88k_instr_ld_u_8_le,
++ m88k_instr_st_1_le,
++ m88k_instr_st_2_le,
++ m88k_instr_st_4_le,
++ m88k_instr_st_8_le,
++ m88k_instr_ld_1_le,
++ m88k_instr_ld_2_le,
++ m88k_instr_ld_4_le,
++ m88k_instr_ld_8_le,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le,
++ m88k_instr_ld_u_2_be,
++ m88k_instr_ld_u_4_be,
++ m88k_instr_ld_u_8_be,
++ m88k_instr_st_1_le,
++ m88k_instr_st_2_be,
++ m88k_instr_st_4_be,
++ m88k_instr_st_8_be,
++ m88k_instr_ld_1_le,
++ m88k_instr_ld_2_be,
++ m88k_instr_ld_4_be,
++ m88k_instr_ld_8_be,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_regofs,
++ m88k_instr_ld_u_2_le_regofs,
++ m88k_instr_ld_u_4_le_regofs,
++ m88k_instr_ld_u_8_le_regofs,
++ m88k_instr_st_1_le_regofs,
++ m88k_instr_st_2_le_regofs,
++ m88k_instr_st_4_le_regofs,
++ m88k_instr_st_8_le_regofs,
++ m88k_instr_ld_1_le_regofs,
++ m88k_instr_ld_2_le_regofs,
++ m88k_instr_ld_4_le_regofs,
++ m88k_instr_ld_8_le_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_regofs,
++ m88k_instr_ld_u_2_be_regofs,
++ m88k_instr_ld_u_4_be_regofs,
++ m88k_instr_ld_u_8_be_regofs,
++ m88k_instr_st_1_le_regofs,
++ m88k_instr_st_2_be_regofs,
++ m88k_instr_st_4_be_regofs,
++ m88k_instr_st_8_be_regofs,
++ m88k_instr_ld_1_le_regofs,
++ m88k_instr_ld_2_be_regofs,
++ m88k_instr_ld_4_be_regofs,
++ m88k_instr_ld_8_be_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_le_scaled_regofs,
++ m88k_instr_ld_u_4_le_scaled_regofs,
++ m88k_instr_ld_u_8_le_scaled_regofs,
++ NULL,
++ m88k_instr_st_2_le_scaled_regofs,
++ m88k_instr_st_4_le_scaled_regofs,
++ m88k_instr_st_8_le_scaled_regofs,
++ NULL,
++ m88k_instr_ld_2_le_scaled_regofs,
++ m88k_instr_ld_4_le_scaled_regofs,
++ m88k_instr_ld_8_le_scaled_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_be_scaled_regofs,
++ m88k_instr_ld_u_4_be_scaled_regofs,
++ m88k_instr_ld_u_8_be_scaled_regofs,
++ NULL,
++ m88k_instr_st_2_be_scaled_regofs,
++ m88k_instr_st_4_be_scaled_regofs,
++ m88k_instr_st_8_be_scaled_regofs,
++ NULL,
++ m88k_instr_ld_2_be_scaled_regofs,
++ m88k_instr_ld_4_be_scaled_regofs,
++ m88k_instr_ld_8_be_scaled_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_usr_regofs,
++ m88k_instr_ld_u_2_le_usr_regofs,
++ m88k_instr_ld_u_4_le_usr_regofs,
++ m88k_instr_ld_u_8_le_usr_regofs,
++ m88k_instr_st_1_le_usr_regofs,
++ m88k_instr_st_2_le_usr_regofs,
++ m88k_instr_st_4_le_usr_regofs,
++ m88k_instr_st_8_le_usr_regofs,
++ m88k_instr_ld_1_le_usr_regofs,
++ m88k_instr_ld_2_le_usr_regofs,
++ m88k_instr_ld_4_le_usr_regofs,
++ m88k_instr_ld_8_le_usr_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_usr_regofs,
++ m88k_instr_ld_u_2_be_usr_regofs,
++ m88k_instr_ld_u_4_be_usr_regofs,
++ m88k_instr_ld_u_8_be_usr_regofs,
++ m88k_instr_st_1_le_usr_regofs,
++ m88k_instr_st_2_be_usr_regofs,
++ m88k_instr_st_4_be_usr_regofs,
++ m88k_instr_st_8_be_usr_regofs,
++ m88k_instr_ld_1_le_usr_regofs,
++ m88k_instr_ld_2_be_usr_regofs,
++ m88k_instr_ld_4_be_usr_regofs,
++ m88k_instr_ld_8_be_usr_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_le_scaled_usr_regofs,
++ m88k_instr_ld_u_4_le_scaled_usr_regofs,
++ m88k_instr_ld_u_8_le_scaled_usr_regofs,
++ NULL,
++ m88k_instr_st_2_le_scaled_usr_regofs,
++ m88k_instr_st_4_le_scaled_usr_regofs,
++ m88k_instr_st_8_le_scaled_usr_regofs,
++ NULL,
++ m88k_instr_ld_2_le_scaled_usr_regofs,
++ m88k_instr_ld_4_le_scaled_usr_regofs,
++ m88k_instr_ld_8_le_scaled_usr_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_be_scaled_usr_regofs,
++ m88k_instr_ld_u_4_be_scaled_usr_regofs,
++ m88k_instr_ld_u_8_be_scaled_usr_regofs,
++ NULL,
++ m88k_instr_st_2_be_scaled_usr_regofs,
++ m88k_instr_st_4_be_scaled_usr_regofs,
++ m88k_instr_st_8_be_scaled_usr_regofs,
++ NULL,
++ m88k_instr_ld_2_be_scaled_usr_regofs,
++ m88k_instr_ld_4_be_scaled_usr_regofs,
++ m88k_instr_ld_8_be_scaled_usr_regofs,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_nopcsync,
++ m88k_instr_ld_u_2_le_nopcsync,
++ m88k_instr_ld_u_4_le_nopcsync,
++ m88k_instr_ld_u_8_le_nopcsync,
++ m88k_instr_st_1_le_nopcsync,
++ m88k_instr_st_2_le_nopcsync,
++ m88k_instr_st_4_le_nopcsync,
++ m88k_instr_st_8_le_nopcsync,
++ m88k_instr_ld_1_le_nopcsync,
++ m88k_instr_ld_2_le_nopcsync,
++ m88k_instr_ld_4_le_nopcsync,
++ m88k_instr_ld_8_le_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_nopcsync,
++ m88k_instr_ld_u_2_be_nopcsync,
++ m88k_instr_ld_u_4_be_nopcsync,
++ m88k_instr_ld_u_8_be_nopcsync,
++ m88k_instr_st_1_le_nopcsync,
++ m88k_instr_st_2_be_nopcsync,
++ m88k_instr_st_4_be_nopcsync,
++ m88k_instr_st_8_be_nopcsync,
++ m88k_instr_ld_1_le_nopcsync,
++ m88k_instr_ld_2_be_nopcsync,
++ m88k_instr_ld_4_be_nopcsync,
++ m88k_instr_ld_8_be_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_regofs_nopcsync,
++ m88k_instr_ld_u_2_le_regofs_nopcsync,
++ m88k_instr_ld_u_4_le_regofs_nopcsync,
++ m88k_instr_ld_u_8_le_regofs_nopcsync,
++ m88k_instr_st_1_le_regofs_nopcsync,
++ m88k_instr_st_2_le_regofs_nopcsync,
++ m88k_instr_st_4_le_regofs_nopcsync,
++ m88k_instr_st_8_le_regofs_nopcsync,
++ m88k_instr_ld_1_le_regofs_nopcsync,
++ m88k_instr_ld_2_le_regofs_nopcsync,
++ m88k_instr_ld_4_le_regofs_nopcsync,
++ m88k_instr_ld_8_le_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_regofs_nopcsync,
++ m88k_instr_ld_u_2_be_regofs_nopcsync,
++ m88k_instr_ld_u_4_be_regofs_nopcsync,
++ m88k_instr_ld_u_8_be_regofs_nopcsync,
++ m88k_instr_st_1_le_regofs_nopcsync,
++ m88k_instr_st_2_be_regofs_nopcsync,
++ m88k_instr_st_4_be_regofs_nopcsync,
++ m88k_instr_st_8_be_regofs_nopcsync,
++ m88k_instr_ld_1_le_regofs_nopcsync,
++ m88k_instr_ld_2_be_regofs_nopcsync,
++ m88k_instr_ld_4_be_regofs_nopcsync,
++ m88k_instr_ld_8_be_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_le_scaled_regofs_nopcsync,
++ m88k_instr_ld_u_4_le_scaled_regofs_nopcsync,
++ m88k_instr_ld_u_8_le_scaled_regofs_nopcsync,
++ NULL,
++ m88k_instr_st_2_le_scaled_regofs_nopcsync,
++ m88k_instr_st_4_le_scaled_regofs_nopcsync,
++ m88k_instr_st_8_le_scaled_regofs_nopcsync,
++ NULL,
++ m88k_instr_ld_2_le_scaled_regofs_nopcsync,
++ m88k_instr_ld_4_le_scaled_regofs_nopcsync,
++ m88k_instr_ld_8_le_scaled_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_be_scaled_regofs_nopcsync,
++ m88k_instr_ld_u_4_be_scaled_regofs_nopcsync,
++ m88k_instr_ld_u_8_be_scaled_regofs_nopcsync,
++ NULL,
++ m88k_instr_st_2_be_scaled_regofs_nopcsync,
++ m88k_instr_st_4_be_scaled_regofs_nopcsync,
++ m88k_instr_st_8_be_scaled_regofs_nopcsync,
++ NULL,
++ m88k_instr_ld_2_be_scaled_regofs_nopcsync,
++ m88k_instr_ld_4_be_scaled_regofs_nopcsync,
++ m88k_instr_ld_8_be_scaled_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_usr_regofs_nopcsync,
++ m88k_instr_ld_u_2_le_usr_regofs_nopcsync,
++ m88k_instr_ld_u_4_le_usr_regofs_nopcsync,
++ m88k_instr_ld_u_8_le_usr_regofs_nopcsync,
++ m88k_instr_st_1_le_usr_regofs_nopcsync,
++ m88k_instr_st_2_le_usr_regofs_nopcsync,
++ m88k_instr_st_4_le_usr_regofs_nopcsync,
++ m88k_instr_st_8_le_usr_regofs_nopcsync,
++ m88k_instr_ld_1_le_usr_regofs_nopcsync,
++ m88k_instr_ld_2_le_usr_regofs_nopcsync,
++ m88k_instr_ld_4_le_usr_regofs_nopcsync,
++ m88k_instr_ld_8_le_usr_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_1_le_usr_regofs_nopcsync,
++ m88k_instr_ld_u_2_be_usr_regofs_nopcsync,
++ m88k_instr_ld_u_4_be_usr_regofs_nopcsync,
++ m88k_instr_ld_u_8_be_usr_regofs_nopcsync,
++ m88k_instr_st_1_le_usr_regofs_nopcsync,
++ m88k_instr_st_2_be_usr_regofs_nopcsync,
++ m88k_instr_st_4_be_usr_regofs_nopcsync,
++ m88k_instr_st_8_be_usr_regofs_nopcsync,
++ m88k_instr_ld_1_le_usr_regofs_nopcsync,
++ m88k_instr_ld_2_be_usr_regofs_nopcsync,
++ m88k_instr_ld_4_be_usr_regofs_nopcsync,
++ m88k_instr_ld_8_be_usr_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_u_4_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_u_8_le_scaled_usr_regofs_nopcsync,
++ NULL,
++ m88k_instr_st_2_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_st_4_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_st_8_le_scaled_usr_regofs_nopcsync,
++ NULL,
++ m88k_instr_ld_2_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_4_le_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_8_le_scaled_usr_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ m88k_instr_ld_u_2_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_u_4_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_u_8_be_scaled_usr_regofs_nopcsync,
++ NULL,
++ m88k_instr_st_2_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_st_4_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_st_8_be_scaled_usr_regofs_nopcsync,
++ NULL,
++ m88k_instr_ld_2_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_4_be_scaled_usr_regofs_nopcsync,
++ m88k_instr_ld_8_be_scaled_usr_regofs_nopcsync,
++ NULL,
++ NULL,
++ NULL,
++ NULL };
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_m88k_tail.c gxemul-0.7.0/src/cpus/tmp_m88k_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_m88k_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_m88k_tail.c 2022-10-18 16:37:22.102762000 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF m88k_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES m88k_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF m88k_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC m88k_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE m88k_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE m88k_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW m88k_memory_rw
++#define MEM_M88K
++#include "memory_rw.c"
++#undef MEM_M88K
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC m88k_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC m88k_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS m88k_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) m88k_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_m88k_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF m88k_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS m88k32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void m88k32_instr_ ## n(struct cpu *cpu, \
++ struct m88k_instr_call *ic)
++#define instr(n) m88k32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY m88k32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC m88k32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE m88k32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE m88k32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC m88k32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC m88k32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS m88k32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) m88k32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_m88k_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS m88k_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 m88k32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF m88k32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(m88k,"M88K")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_mips_head.c gxemul-0.7.0/src/cpus/tmp_mips_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_mips_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_mips_head.c 2022-10-18 16:37:22.102762000 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES MIPS_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH mips
++#define DYNTRANS_MIPS
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N MIPS_L2N
++#define DYNTRANS_L3N MIPS_L3N
++#if !defined(MIPS_L2N) || !defined(MIPS_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE mips_l2_64_table
++#define DYNTRANS_L3_64_TABLE mips_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC mips_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE MIPS_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT MIPS_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE mips_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY mips_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR MIPS_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY MIPS_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE mips_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE mips_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS mips_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC mips_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS mips_combine_instructions
++#define DISASSEMBLE mips_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_mips_instr.c */
++#define instr(n) mips_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) mips32_instr_ ## n
++
++#endif
++
++
++#define X(n) void mips_instr_ ## n(struct cpu *cpu, \
++ struct mips_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.mips.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct mips_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_mips_loadstore.c gxemul-0.7.0/src/cpus/tmp_mips_loadstore.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_mips_loadstore.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_mips_loadstore.c 2022-10-18 16:37:22.103762900 +0000
+@@ -0,0 +1,825 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu1_le
++#define LS_GENERIC_N mips_generic_lu1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l1_le
++#define LS_GENERIC_N mips_generic_l1
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu2_le
++#define LS_GENERIC_N mips_generic_lu2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l2_le
++#define LS_GENERIC_N mips_generic_l2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu4_le
++#define LS_GENERIC_N mips_generic_lu4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l4_le
++#define LS_GENERIC_N mips_generic_l4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu8_le
++#define LS_GENERIC_N mips_generic_lu8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l8_le
++#define LS_GENERIC_N mips_generic_l8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s1_le
++#define LS_GENERIC_N mips_generic_s1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s2_le
++#define LS_GENERIC_N mips_generic_s2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s4_le
++#define LS_GENERIC_N mips_generic_s4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s8_le
++#define LS_GENERIC_N mips_generic_s8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu2_be
++#define LS_GENERIC_N mips_generic_lu2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l2_be
++#define LS_GENERIC_N mips_generic_l2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu4_be
++#define LS_GENERIC_N mips_generic_lu4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l4_be
++#define LS_GENERIC_N mips_generic_l4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_lu8_be
++#define LS_GENERIC_N mips_generic_lu8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_LOAD
++#define LS_N mips_instr_l8_be
++#define LS_GENERIC_N mips_generic_l8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s2_be
++#define LS_GENERIC_N mips_generic_s2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s4_be
++#define LS_GENERIC_N mips_generic_s4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++#define LS_STORE
++#define LS_N mips_instr_s8_be
++#define LS_GENERIC_N mips_generic_s8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu1_le
++#define LS_GENERIC_N mips32_generic_lu1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l1_le
++#define LS_GENERIC_N mips32_generic_l1
++#define LS_1
++#define LS_SIZE 1
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu2_le
++#define LS_GENERIC_N mips32_generic_lu2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l2_le
++#define LS_GENERIC_N mips32_generic_l2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu4_le
++#define LS_GENERIC_N mips32_generic_lu4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l4_le
++#define LS_GENERIC_N mips32_generic_l4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu8_le
++#define LS_GENERIC_N mips32_generic_lu8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l8_le
++#define LS_GENERIC_N mips32_generic_l8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s1_le
++#define LS_GENERIC_N mips32_generic_s1
++#define LS_1
++#define LS_SIZE 1
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_1
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s2_le
++#define LS_GENERIC_N mips32_generic_s2
++#define LS_2
++#define LS_SIZE 2
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s4_le
++#define LS_GENERIC_N mips32_generic_s4
++#define LS_4
++#define LS_SIZE 4
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s8_le
++#define LS_GENERIC_N mips32_generic_s8
++#define LS_8
++#define LS_SIZE 8
++#define LS_LE
++#define LS_INCLUDE_GENERIC
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_INCLUDE_GENERIC
++#undef LS_LE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu2_be
++#define LS_GENERIC_N mips32_generic_lu2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l2_be
++#define LS_GENERIC_N mips32_generic_l2
++#define LS_2
++#define LS_SIZE 2
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu4_be
++#define LS_GENERIC_N mips32_generic_lu4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l4_be
++#define LS_GENERIC_N mips32_generic_l4
++#define LS_4
++#define LS_SIZE 4
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_lu8_be
++#define LS_GENERIC_N mips32_generic_lu8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_LOAD
++#define LS_N mips32_instr_l8_be
++#define LS_GENERIC_N mips32_generic_l8
++#define LS_8
++#define LS_SIZE 8
++#define LS_SIGNED
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIGNED
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_LOAD
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s2_be
++#define LS_GENERIC_N mips32_generic_s2
++#define LS_2
++#define LS_SIZE 2
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_2
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s4_be
++#define LS_GENERIC_N mips32_generic_s4
++#define LS_4
++#define LS_SIZE 4
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_4
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifdef MODE32
++#define LS_STORE
++#define LS_N mips32_instr_s8_be
++#define LS_GENERIC_N mips32_generic_s8
++#define LS_8
++#define LS_SIZE 8
++#define LS_BE
++#include "cpu_mips_instr_loadstore.c"
++#undef LS_BE
++#undef LS_SIZE
++#undef LS_8
++#undef LS_GENERIC_N
++#undef LS_N
++#undef LS_STORE
++#endif
++#ifndef MODE32
++
++
++void (*mips_loadstore[32])(struct cpu *, struct mips_instr_call *) = {
++ mips_instr_lu1_le,
++ mips_instr_l1_le,
++ mips_instr_lu2_le,
++ mips_instr_l2_le,
++ mips_instr_lu4_le,
++ mips_instr_l4_le,
++ mips_instr_lu8_le,
++ mips_instr_l8_le,
++ mips_instr_s1_le,
++ mips_instr_invalid,
++ mips_instr_s2_le,
++ mips_instr_invalid,
++ mips_instr_s4_le,
++ mips_instr_invalid,
++ mips_instr_s8_le,
++ mips_instr_invalid,
++ mips_instr_lu1_le,
++ mips_instr_l1_le,
++ mips_instr_lu2_be,
++ mips_instr_l2_be,
++ mips_instr_lu4_be,
++ mips_instr_l4_be,
++ mips_instr_lu8_be,
++ mips_instr_l8_be,
++ mips_instr_s1_le,
++ mips_instr_invalid,
++ mips_instr_s2_be,
++ mips_instr_invalid,
++ mips_instr_s4_be,
++ mips_instr_invalid,
++ mips_instr_s8_be,
++ mips_instr_invalid };
++#endif
++#ifdef MODE32
++
++
++void (*mips32_loadstore[32])(struct cpu *, struct mips_instr_call *) = {
++ mips32_instr_lu1_le,
++ mips32_instr_l1_le,
++ mips32_instr_lu2_le,
++ mips32_instr_l2_le,
++ mips32_instr_lu4_le,
++ mips32_instr_l4_le,
++ mips32_instr_lu8_le,
++ mips32_instr_l8_le,
++ mips32_instr_s1_le,
++ mips32_instr_invalid,
++ mips32_instr_s2_le,
++ mips32_instr_invalid,
++ mips32_instr_s4_le,
++ mips32_instr_invalid,
++ mips32_instr_s8_le,
++ mips32_instr_invalid,
++ mips32_instr_lu1_le,
++ mips32_instr_l1_le,
++ mips32_instr_lu2_be,
++ mips32_instr_l2_be,
++ mips32_instr_lu4_be,
++ mips32_instr_l4_be,
++ mips32_instr_lu8_be,
++ mips32_instr_l8_be,
++ mips32_instr_s1_le,
++ mips32_instr_invalid,
++ mips32_instr_s2_be,
++ mips32_instr_invalid,
++ mips32_instr_s4_be,
++ mips32_instr_invalid,
++ mips32_instr_s8_be,
++ mips32_instr_invalid };
++#endif
++#ifndef MODE32
++
++
++void (*mips_loadstore_generic[16])(struct cpu *, struct mips_instr_call *) = {
++ mips_generic_lu1,
++ mips_generic_l1,
++ mips_generic_lu2,
++ mips_generic_l2,
++ mips_generic_lu4,
++ mips_generic_l4,
++ mips_generic_lu8,
++ mips_generic_l8,
++ mips_generic_s1,
++ mips_instr_invalid,
++ mips_generic_s2,
++ mips_instr_invalid,
++ mips_generic_s4,
++ mips_instr_invalid,
++ mips_generic_s8,
++ mips_instr_invalid };
++#endif
++#ifdef MODE32
++
++
++void (*mips32_loadstore_generic[16])(struct cpu *, struct mips_instr_call *) = {
++ mips32_generic_lu1,
++ mips32_generic_l1,
++ mips32_generic_lu2,
++ mips32_generic_l2,
++ mips32_generic_lu4,
++ mips32_generic_l4,
++ mips32_generic_lu8,
++ mips32_generic_l8,
++ mips32_generic_s1,
++ mips32_instr_invalid,
++ mips32_generic_s2,
++ mips32_instr_invalid,
++ mips32_generic_s4,
++ mips32_instr_invalid,
++ mips32_generic_s8,
++ mips32_instr_invalid };
++#endif
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_mips_loadstore_multi.c gxemul-0.7.0/src/cpus/tmp_mips_loadstore_multi.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_mips_loadstore_multi.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_mips_loadstore_multi.c 2022-10-18 16:37:22.105764600 +0000
+@@ -0,0 +1,1267 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#ifdef MODE32
++X(multi_lw_2_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#else
++X(multi_lw_2_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_3_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#else
++X(multi_lw_3_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_4_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#else
++X(multi_lw_4_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_5_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r4 = page[addr4];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ r4 = LE32_TO_HOST(r4);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ reg(ic[4].arg[0]) = (MODE_int_t)(int32_t)r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#else
++X(multi_lw_5_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips_loadstore[5](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r4 = page[addr4];
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ r4 = LE32_TO_HOST(r4);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ reg(ic[4].arg[0]) = (MODE_int_t)(int32_t)r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_2_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#else
++X(multi_sw_2_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_3_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#else
++X(multi_sw_3_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_4_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#else
++X(multi_sw_4_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_5_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r4 = reg(ic[4].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ r4 = LE32_TO_HOST(r4);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ page[addr4] = r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#else
++X(multi_sw_5_le)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips_loadstore[12](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r4 = reg(ic[4].arg[0]);
++ r0 = LE32_TO_HOST(r0);
++ r1 = LE32_TO_HOST(r1);
++ r2 = LE32_TO_HOST(r2);
++ r3 = LE32_TO_HOST(r3);
++ r4 = LE32_TO_HOST(r4);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ page[addr4] = r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_2_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#else
++X(multi_lw_2_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_3_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#else
++X(multi_lw_3_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_4_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#else
++X(multi_lw_4_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#endif
++
++#ifdef MODE32
++X(multi_lw_5_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_load[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r4 = page[addr4];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ r4 = BE32_TO_HOST(r4);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ reg(ic[4].arg[0]) = (MODE_int_t)(int32_t)r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#else
++X(multi_lw_5_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_load[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips_loadstore[21](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = page[addr0];
++ r1 = page[addr1];
++ r2 = page[addr2];
++ r3 = page[addr3];
++ r4 = page[addr4];
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ r4 = BE32_TO_HOST(r4);
++ reg(ic[0].arg[0]) = (MODE_int_t)(int32_t)r0;
++ reg(ic[1].arg[0]) = (MODE_int_t)(int32_t)r1;
++ reg(ic[2].arg[0]) = (MODE_int_t)(int32_t)r2;
++ reg(ic[3].arg[0]) = (MODE_int_t)(int32_t)r3;
++ reg(ic[4].arg[0]) = (MODE_int_t)(int32_t)r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_2_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#else
++X(multi_sw_2_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3)
++ || ((addr1 ^ addr0) & ~0xfff)) {
++ mips_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ cpu->n_translated_instrs += 1;
++ cpu->cd.mips.next_ic += 1;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_3_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#else
++X(multi_sw_3_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff)) {
++ mips_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ cpu->n_translated_instrs += 2;
++ cpu->cd.mips.next_ic += 2;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_4_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#else
++X(multi_sw_4_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff)) {
++ mips_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ cpu->n_translated_instrs += 3;
++ cpu->cd.mips.next_ic += 3;
++}
++#endif
++
++#ifdef MODE32
++X(multi_sw_5_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ uint32_t index0 = addr0 >> 12;
++ page = (uint32_t *) cpu->cd.mips.host_store[index0];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips32_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r4 = reg(ic[4].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ r4 = BE32_TO_HOST(r4);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ page[addr4] = r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#else
++X(multi_sw_5_be)
++{
++ uint32_t *page;
++ MODE_uint_t rX = reg(ic[0].arg[1]), r0, r1, r2, r3, r4;
++ MODE_uint_t addr0 = rX + (int32_t)ic[0].arg[2];
++ MODE_uint_t addr1 = rX + (int32_t)ic[1].arg[2];
++ MODE_uint_t addr2 = rX + (int32_t)ic[2].arg[2];
++ MODE_uint_t addr3 = rX + (int32_t)ic[3].arg[2];
++ MODE_uint_t addr4 = rX + (int32_t)ic[4].arg[2];
++ const uint32_t mask1 = (1 << DYNTRANS_L1N) - 1;
++ const uint32_t mask2 = (1 << DYNTRANS_L2N) - 1;
++ const uint32_t mask3 = (1 << DYNTRANS_L3N) - 1;
++ uint32_t x1, x2, x3;
++ struct DYNTRANS_L2_64_TABLE *l2;
++ struct DYNTRANS_L3_64_TABLE *l3;
++ x1 = (addr0 >> (64-DYNTRANS_L1N)) & mask1;
++ x2 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N)) & mask2;
++ x3 = (addr0 >> (64-DYNTRANS_L1N-DYNTRANS_L2N-DYNTRANS_L3N)) & mask3;
++ l2 = cpu->cd.DYNTRANS_ARCH.l1_64[x1];
++ l3 = l2->l3[x2];
++ page = (uint32_t *) l3->host_store[x3];
++ if (cpu->delay_slot ||
++ page == NULL || (addr0 & 3) || (addr1 & 3) || (addr2 & 3) || (addr3 & 3) || (addr4 & 3)
++ || ((addr1 ^ addr0) & ~0xfff) || ((addr2 ^ addr0) & ~0xfff) || ((addr3 ^ addr0) & ~0xfff) || ((addr4 ^ addr0) & ~0xfff)) {
++ mips_loadstore[28](cpu, ic);
++ return;
++ }
++ addr0 = (addr0 >> 2) & 0x3ff;
++ addr1 = (addr1 >> 2) & 0x3ff;
++ addr2 = (addr2 >> 2) & 0x3ff;
++ addr3 = (addr3 >> 2) & 0x3ff;
++ addr4 = (addr4 >> 2) & 0x3ff;
++ r0 = reg(ic[0].arg[0]);
++ r1 = reg(ic[1].arg[0]);
++ r2 = reg(ic[2].arg[0]);
++ r3 = reg(ic[3].arg[0]);
++ r4 = reg(ic[4].arg[0]);
++ r0 = BE32_TO_HOST(r0);
++ r1 = BE32_TO_HOST(r1);
++ r2 = BE32_TO_HOST(r2);
++ r3 = BE32_TO_HOST(r3);
++ r4 = BE32_TO_HOST(r4);
++ page[addr0] = r0;
++ page[addr1] = r1;
++ page[addr2] = r2;
++ page[addr3] = r3;
++ page[addr4] = r4;
++ cpu->n_translated_instrs += 4;
++ cpu->cd.mips.next_ic += 4;
++}
++#endif
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_mips_tail.c gxemul-0.7.0/src/cpus/tmp_mips_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_mips_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_mips_tail.c 2022-10-18 16:37:22.106765500 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF mips_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES mips_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF mips_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC mips_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE mips_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE mips_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW mips_memory_rw
++#define MEM_MIPS
++#include "memory_rw.c"
++#undef MEM_MIPS
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC mips_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC mips_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS mips_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) mips_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_mips_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF mips_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS mips32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void mips32_instr_ ## n(struct cpu *cpu, \
++ struct mips_instr_call *ic)
++#define instr(n) mips32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY mips32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC mips32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE mips32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE mips32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC mips32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC mips32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS mips32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) mips32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_mips_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS mips_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 mips32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF mips32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(mips,"MIPS")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_ppc_head.c gxemul-0.7.0/src/cpus/tmp_ppc_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_ppc_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_ppc_head.c 2022-10-18 16:37:22.107766300 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES PPC_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH ppc
++#define DYNTRANS_PPC
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N PPC_L2N
++#define DYNTRANS_L3N PPC_L3N
++#if !defined(PPC_L2N) || !defined(PPC_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE ppc_l2_64_table
++#define DYNTRANS_L3_64_TABLE ppc_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC ppc_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE PPC_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT PPC_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE ppc_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY ppc_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR PPC_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY PPC_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE ppc_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE ppc_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS ppc_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC ppc_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS ppc_combine_instructions
++#define DISASSEMBLE ppc_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_ppc_instr.c */
++#define instr(n) ppc_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) ppc32_instr_ ## n
++
++#endif
++
++
++#define X(n) void ppc_instr_ ## n(struct cpu *cpu, \
++ struct ppc_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.ppc.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct ppc_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_ppc_loadstore.c gxemul-0.7.0/src/cpus/tmp_ppc_loadstore.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_ppc_loadstore.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_ppc_loadstore.c 2022-10-18 16:37:22.108767400 +0000
+@@ -0,0 +1,2063 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#ifndef MODE32
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_stb
++#define LS_N ppc_instr_stb
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_sth
++#define LS_N ppc_instr_sth
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_stw
++#define LS_N ppc_instr_stw
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_std
++#define LS_N ppc_instr_std
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lba
++#define LS_N ppc_instr_lba
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lha
++#define LS_N ppc_instr_lha
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lwa
++#define LS_N ppc_instr_lwa
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lbz
++#define LS_N ppc_instr_lbz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lhz
++#define LS_N ppc_instr_lhz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lwz
++#define LS_N ppc_instr_lwz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_ldz
++#define LS_N ppc_instr_ld
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_stb
++#define LS_N ppc_instr_stb_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_sth
++#define LS_N ppc_instr_sth_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_stw
++#define LS_N ppc_instr_stw_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_std
++#define LS_N ppc_instr_std_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lba
++#define LS_N ppc_instr_lba_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lha
++#define LS_N ppc_instr_lha_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lwa
++#define LS_N ppc_instr_lwa_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lbz
++#define LS_N ppc_instr_lbz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lhz
++#define LS_N ppc_instr_lhz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_lwz
++#define LS_N ppc_instr_lwz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc_generic_ldz
++#define LS_N ppc_instr_ld_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stbu
++#define LS_N ppc_instr_stbu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_sthu
++#define LS_N ppc_instr_sthu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stwu
++#define LS_N ppc_instr_stwu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stdu
++#define LS_N ppc_instr_stdu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbau
++#define LS_N ppc_instr_lbau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhau
++#define LS_N ppc_instr_lhau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwau
++#define LS_N ppc_instr_lwau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbzu
++#define LS_N ppc_instr_lbzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhzu
++#define LS_N ppc_instr_lhzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwzu
++#define LS_N ppc_instr_lwzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_ldzu
++#define LS_N ppc_instr_ldu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stbu
++#define LS_N ppc_instr_stbu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_sthu
++#define LS_N ppc_instr_sthu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stwu
++#define LS_N ppc_instr_stwu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stdu
++#define LS_N ppc_instr_stdu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbau
++#define LS_N ppc_instr_lbau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhau
++#define LS_N ppc_instr_lhau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwau
++#define LS_N ppc_instr_lwau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbzu
++#define LS_N ppc_instr_lbzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhzu
++#define LS_N ppc_instr_lhzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwzu
++#define LS_N ppc_instr_lwzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_ldzu
++#define LS_N ppc_instr_ldu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_INDEXED
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_stbx
++#define LS_N ppc_instr_stbx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_sthx
++#define LS_N ppc_instr_sthx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_stwx
++#define LS_N ppc_instr_stwx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_GENERIC_N ppc_generic_stdx
++#define LS_N ppc_instr_stdx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lbax
++#define LS_N ppc_instr_lbax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lhax
++#define LS_N ppc_instr_lhax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lwax
++#define LS_N ppc_instr_lwax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lbzx
++#define LS_N ppc_instr_lbzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lhzx
++#define LS_N ppc_instr_lhzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_lwzx
++#define LS_N ppc_instr_lwzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc_generic_ldzx
++#define LS_N ppc_instr_ldx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stbux
++#define LS_N ppc_instr_stbux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_sthux
++#define LS_N ppc_instr_sthux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stwux
++#define LS_N ppc_instr_stwux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_stdux
++#define LS_N ppc_instr_stdux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbaux
++#define LS_N ppc_instr_lbaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhaux
++#define LS_N ppc_instr_lhaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwaux
++#define LS_N ppc_instr_lwaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lbzux
++#define LS_N ppc_instr_lbzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lhzux
++#define LS_N ppc_instr_lhzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_lwzux
++#define LS_N ppc_instr_lwzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc_generic_ldzux
++#define LS_N ppc_instr_ldux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_INDEXED
++
++
++void (*ppc_loadstore[64])(struct cpu *, struct ppc_instr_call *) = {
++ ppc_instr_stb,
++ ppc_instr_sth,
++ ppc_instr_stw,
++ ppc_instr_std,
++ ppc_instr_stb,
++ ppc_instr_sth,
++ ppc_instr_stw,
++ ppc_instr_std,
++ ppc_instr_lba,
++ ppc_instr_lha,
++ ppc_instr_lwa,
++ ppc_instr_invalid,
++ ppc_instr_lbz,
++ ppc_instr_lhz,
++ ppc_instr_lwz,
++ ppc_instr_ld,
++ ppc_instr_stb_0,
++ ppc_instr_sth_0,
++ ppc_instr_stw_0,
++ ppc_instr_std_0,
++ ppc_instr_stb_0,
++ ppc_instr_sth_0,
++ ppc_instr_stw_0,
++ ppc_instr_std_0,
++ ppc_instr_lba_0,
++ ppc_instr_lha_0,
++ ppc_instr_lwa_0,
++ ppc_instr_invalid,
++ ppc_instr_lbz_0,
++ ppc_instr_lhz_0,
++ ppc_instr_lwz_0,
++ ppc_instr_ld_0,
++ ppc_instr_stbu,
++ ppc_instr_sthu,
++ ppc_instr_stwu,
++ ppc_instr_stdu,
++ ppc_instr_stbu,
++ ppc_instr_sthu,
++ ppc_instr_stwu,
++ ppc_instr_stdu,
++ ppc_instr_lbau,
++ ppc_instr_lhau,
++ ppc_instr_lwau,
++ ppc_instr_invalid,
++ ppc_instr_lbzu,
++ ppc_instr_lhzu,
++ ppc_instr_lwzu,
++ ppc_instr_ldu,
++ ppc_instr_stbu_0,
++ ppc_instr_sthu_0,
++ ppc_instr_stwu_0,
++ ppc_instr_stdu_0,
++ ppc_instr_stbu_0,
++ ppc_instr_sthu_0,
++ ppc_instr_stwu_0,
++ ppc_instr_stdu_0,
++ ppc_instr_lbau_0,
++ ppc_instr_lhau_0,
++ ppc_instr_lwau_0,
++ ppc_instr_invalid,
++ ppc_instr_lbzu_0,
++ ppc_instr_lhzu_0,
++ ppc_instr_lwzu_0,
++ ppc_instr_ldu_0
++};
++
++
++
++void (*ppc_loadstore_indexed[32])(struct cpu *, struct ppc_instr_call *) = {
++ ppc_instr_stbx,
++ ppc_instr_sthx,
++ ppc_instr_stwx,
++ ppc_instr_stdx,
++ ppc_instr_stbx,
++ ppc_instr_sthx,
++ ppc_instr_stwx,
++ ppc_instr_stdx,
++ ppc_instr_lbax,
++ ppc_instr_lhax,
++ ppc_instr_lwax,
++ ppc_instr_invalid,
++ ppc_instr_lbzx,
++ ppc_instr_lhzx,
++ ppc_instr_lwzx,
++ ppc_instr_ldx,
++ ppc_instr_stbux,
++ ppc_instr_sthux,
++ ppc_instr_stwux,
++ ppc_instr_stdux,
++ ppc_instr_stbux,
++ ppc_instr_sthux,
++ ppc_instr_stwux,
++ ppc_instr_stdux,
++ ppc_instr_lbaux,
++ ppc_instr_lhaux,
++ ppc_instr_lwaux,
++ ppc_instr_invalid,
++ ppc_instr_lbzux,
++ ppc_instr_lhzux,
++ ppc_instr_lwzux,
++ ppc_instr_ldux
++};
++
++#define LS_BYTEREVERSE
++#define LS_INDEXED
++#define LS_SIZE 2
++#define LS_H
++#define LS_GENERIC_N ppc_generic_lhbrx
++#define LS_N ppc_instr_lhbrx
++#define LS_LOAD
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_LOAD
++#undef LS_N
++#undef LS_GENERIC_N
++#define LS_GENERIC_N ppc_generic_sthbrx
++#define LS_N ppc_instr_sthbrx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#define LS_SIZE 4
++#define LS_W
++#define LS_GENERIC_N ppc_generic_lwbrx
++#define LS_N ppc_instr_lwbrx
++#define LS_LOAD
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_LOAD
++#undef LS_N
++#undef LS_GENERIC_N
++#define LS_GENERIC_N ppc_generic_stwbrx
++#define LS_N ppc_instr_stwbrx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_INDEXED
++#undef LS_BYTEREVERSE
++#endif
++#ifdef MODE32
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_stb
++#define LS_N ppc32_instr_stb
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_sth
++#define LS_N ppc32_instr_sth
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_stw
++#define LS_N ppc32_instr_stw
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_std
++#define LS_N ppc32_instr_std
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lba
++#define LS_N ppc32_instr_lba
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lha
++#define LS_N ppc32_instr_lha
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lwa
++#define LS_N ppc32_instr_lwa
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lbz
++#define LS_N ppc32_instr_lbz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lhz
++#define LS_N ppc32_instr_lhz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lwz
++#define LS_N ppc32_instr_lwz
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_ldz
++#define LS_N ppc32_instr_ld
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_stb
++#define LS_N ppc32_instr_stb_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_sth
++#define LS_N ppc32_instr_sth_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_stw
++#define LS_N ppc32_instr_stw_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_std
++#define LS_N ppc32_instr_std_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lba
++#define LS_N ppc32_instr_lba_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lha
++#define LS_N ppc32_instr_lha_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lwa
++#define LS_N ppc32_instr_lwa_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lbz
++#define LS_N ppc32_instr_lbz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lhz
++#define LS_N ppc32_instr_lhz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_lwz
++#define LS_N ppc32_instr_lwz_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_GENERIC_N ppc32_generic_ldz
++#define LS_N ppc32_instr_ld_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stbu
++#define LS_N ppc32_instr_stbu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_sthu
++#define LS_N ppc32_instr_sthu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stwu
++#define LS_N ppc32_instr_stwu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stdu
++#define LS_N ppc32_instr_stdu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbau
++#define LS_N ppc32_instr_lbau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhau
++#define LS_N ppc32_instr_lhau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwau
++#define LS_N ppc32_instr_lwau
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbzu
++#define LS_N ppc32_instr_lbzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhzu
++#define LS_N ppc32_instr_lhzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwzu
++#define LS_N ppc32_instr_lwzu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_ldzu
++#define LS_N ppc32_instr_ldu
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stbu
++#define LS_N ppc32_instr_stbu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_sthu
++#define LS_N ppc32_instr_sthu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stwu
++#define LS_N ppc32_instr_stwu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stdu
++#define LS_N ppc32_instr_stdu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbau
++#define LS_N ppc32_instr_lbau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhau
++#define LS_N ppc32_instr_lhau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwau
++#define LS_N ppc32_instr_lwau_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_IGNOREOFS
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbzu
++#define LS_N ppc32_instr_lbzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhzu
++#define LS_N ppc32_instr_lhzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwzu
++#define LS_N ppc32_instr_lwzu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_IGNOREOFS
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_ldzu
++#define LS_N ppc32_instr_ldu_0
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_IGNOREOFS
++#define LS_INDEXED
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_stbx
++#define LS_N ppc32_instr_stbx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_sthx
++#define LS_N ppc32_instr_sthx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_stwx
++#define LS_N ppc32_instr_stwx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_GENERIC_N ppc32_generic_stdx
++#define LS_N ppc32_instr_stdx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lbax
++#define LS_N ppc32_instr_lbax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lhax
++#define LS_N ppc32_instr_lhax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lwax
++#define LS_N ppc32_instr_lwax
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lbzx
++#define LS_N ppc32_instr_lbzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lhzx
++#define LS_N ppc32_instr_lhzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_lwzx
++#define LS_N ppc32_instr_lwzx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_GENERIC_N ppc32_generic_ldzx
++#define LS_N ppc32_instr_ldx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stbux
++#define LS_N ppc32_instr_stbux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_sthux
++#define LS_N ppc32_instr_sthux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stwux
++#define LS_N ppc32_instr_stwux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_stdux
++#define LS_N ppc32_instr_stdux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_B
++#define LS_SIZE 1
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbaux
++#define LS_N ppc32_instr_lbaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_H
++#define LS_SIZE 2
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhaux
++#define LS_N ppc32_instr_lhaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_W
++#define LS_SIZE 4
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwaux
++#define LS_N ppc32_instr_lwaux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#define LS_B
++#define LS_SIZE 1
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lbzux
++#define LS_N ppc32_instr_lbzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_B
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_H
++#define LS_SIZE 2
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lhzux
++#define LS_N ppc32_instr_lhzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_W
++#define LS_SIZE 4
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_lwzux
++#define LS_N ppc32_instr_lwzux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#define LS_D
++#define LS_SIZE 8
++#define LS_ZERO
++#define LS_LOAD
++#define LS_UPDATE
++#define LS_GENERIC_N ppc32_generic_ldzux
++#define LS_N ppc32_instr_ldux
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_D
++#undef LS_SIZE
++#undef LS_LOAD
++#undef LS_UPDATE
++#undef LS_ZERO
++#undef LS_INDEXED
++
++
++void (*ppc32_loadstore[64])(struct cpu *, struct ppc_instr_call *) = {
++ ppc32_instr_stb,
++ ppc32_instr_sth,
++ ppc32_instr_stw,
++ ppc32_instr_std,
++ ppc32_instr_stb,
++ ppc32_instr_sth,
++ ppc32_instr_stw,
++ ppc32_instr_std,
++ ppc32_instr_lba,
++ ppc32_instr_lha,
++ ppc32_instr_lwa,
++ ppc32_instr_invalid,
++ ppc32_instr_lbz,
++ ppc32_instr_lhz,
++ ppc32_instr_lwz,
++ ppc32_instr_ld,
++ ppc32_instr_stb_0,
++ ppc32_instr_sth_0,
++ ppc32_instr_stw_0,
++ ppc32_instr_std_0,
++ ppc32_instr_stb_0,
++ ppc32_instr_sth_0,
++ ppc32_instr_stw_0,
++ ppc32_instr_std_0,
++ ppc32_instr_lba_0,
++ ppc32_instr_lha_0,
++ ppc32_instr_lwa_0,
++ ppc32_instr_invalid,
++ ppc32_instr_lbz_0,
++ ppc32_instr_lhz_0,
++ ppc32_instr_lwz_0,
++ ppc32_instr_ld_0,
++ ppc32_instr_stbu,
++ ppc32_instr_sthu,
++ ppc32_instr_stwu,
++ ppc32_instr_stdu,
++ ppc32_instr_stbu,
++ ppc32_instr_sthu,
++ ppc32_instr_stwu,
++ ppc32_instr_stdu,
++ ppc32_instr_lbau,
++ ppc32_instr_lhau,
++ ppc32_instr_lwau,
++ ppc32_instr_invalid,
++ ppc32_instr_lbzu,
++ ppc32_instr_lhzu,
++ ppc32_instr_lwzu,
++ ppc32_instr_ldu,
++ ppc32_instr_stbu_0,
++ ppc32_instr_sthu_0,
++ ppc32_instr_stwu_0,
++ ppc32_instr_stdu_0,
++ ppc32_instr_stbu_0,
++ ppc32_instr_sthu_0,
++ ppc32_instr_stwu_0,
++ ppc32_instr_stdu_0,
++ ppc32_instr_lbau_0,
++ ppc32_instr_lhau_0,
++ ppc32_instr_lwau_0,
++ ppc32_instr_invalid,
++ ppc32_instr_lbzu_0,
++ ppc32_instr_lhzu_0,
++ ppc32_instr_lwzu_0,
++ ppc32_instr_ldu_0
++};
++
++
++
++void (*ppc32_loadstore_indexed[32])(struct cpu *, struct ppc_instr_call *) = {
++ ppc32_instr_stbx,
++ ppc32_instr_sthx,
++ ppc32_instr_stwx,
++ ppc32_instr_stdx,
++ ppc32_instr_stbx,
++ ppc32_instr_sthx,
++ ppc32_instr_stwx,
++ ppc32_instr_stdx,
++ ppc32_instr_lbax,
++ ppc32_instr_lhax,
++ ppc32_instr_lwax,
++ ppc32_instr_invalid,
++ ppc32_instr_lbzx,
++ ppc32_instr_lhzx,
++ ppc32_instr_lwzx,
++ ppc32_instr_ldx,
++ ppc32_instr_stbux,
++ ppc32_instr_sthux,
++ ppc32_instr_stwux,
++ ppc32_instr_stdux,
++ ppc32_instr_stbux,
++ ppc32_instr_sthux,
++ ppc32_instr_stwux,
++ ppc32_instr_stdux,
++ ppc32_instr_lbaux,
++ ppc32_instr_lhaux,
++ ppc32_instr_lwaux,
++ ppc32_instr_invalid,
++ ppc32_instr_lbzux,
++ ppc32_instr_lhzux,
++ ppc32_instr_lwzux,
++ ppc32_instr_ldux
++};
++
++#define LS_BYTEREVERSE
++#define LS_INDEXED
++#define LS_SIZE 2
++#define LS_H
++#define LS_GENERIC_N ppc32_generic_lhbrx
++#define LS_N ppc32_instr_lhbrx
++#define LS_LOAD
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_LOAD
++#undef LS_N
++#undef LS_GENERIC_N
++#define LS_GENERIC_N ppc32_generic_sthbrx
++#define LS_N ppc32_instr_sthbrx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_H
++#undef LS_SIZE
++#define LS_SIZE 4
++#define LS_W
++#define LS_GENERIC_N ppc32_generic_lwbrx
++#define LS_N ppc32_instr_lwbrx
++#define LS_LOAD
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_LOAD
++#undef LS_N
++#undef LS_GENERIC_N
++#define LS_GENERIC_N ppc32_generic_stwbrx
++#define LS_N ppc32_instr_stwbrx
++#include "cpu_ppc_instr_loadstore.c"
++#undef LS_N
++#undef LS_GENERIC_N
++#undef LS_W
++#undef LS_SIZE
++#undef LS_INDEXED
++#undef LS_BYTEREVERSE
++#endif
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_ppc_tail.c gxemul-0.7.0/src/cpus/tmp_ppc_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_ppc_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_ppc_tail.c 2022-10-18 16:37:22.108767400 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF ppc_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES ppc_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF ppc_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC ppc_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE ppc_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE ppc_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW ppc_memory_rw
++#define MEM_PPC
++#include "memory_rw.c"
++#undef MEM_PPC
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC ppc_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC ppc_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS ppc_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) ppc_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_ppc_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF ppc_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS ppc32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void ppc32_instr_ ## n(struct cpu *cpu, \
++ struct ppc_instr_call *ic)
++#define instr(n) ppc32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY ppc32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC ppc32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE ppc32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE ppc32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC ppc32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC ppc32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS ppc32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) ppc32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_ppc_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS ppc_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 ppc32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF ppc32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(ppc,"PPC")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_riscv_head.c gxemul-0.7.0/src/cpus/tmp_riscv_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_riscv_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_riscv_head.c 2022-10-18 16:37:22.109768200 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES RISCV_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH riscv
++#define DYNTRANS_RISCV
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N RISCV_L2N
++#define DYNTRANS_L3N RISCV_L3N
++#if !defined(RISCV_L2N) || !defined(RISCV_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE riscv_l2_64_table
++#define DYNTRANS_L3_64_TABLE riscv_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC riscv_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE RISCV_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT RISCV_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE riscv_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY riscv_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR RISCV_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY RISCV_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE riscv_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE riscv_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS riscv_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC riscv_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS riscv_combine_instructions
++#define DISASSEMBLE riscv_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_riscv_instr.c */
++#define instr(n) riscv_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) riscv32_instr_ ## n
++
++#endif
++
++
++#define X(n) void riscv_instr_ ## n(struct cpu *cpu, \
++ struct riscv_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.riscv.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct riscv_instr_call nothing_call = { instr(nothing), {0,0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_riscv_tail.c gxemul-0.7.0/src/cpus/tmp_riscv_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_riscv_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_riscv_tail.c 2022-10-18 16:37:22.110770500 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF riscv_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES riscv_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF riscv_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC riscv_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE riscv_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE riscv_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW riscv_memory_rw
++#define MEM_RISCV
++#include "memory_rw.c"
++#undef MEM_RISCV
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC riscv_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC riscv_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS riscv_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) riscv_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_riscv_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF riscv_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS riscv32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void riscv32_instr_ ## n(struct cpu *cpu, \
++ struct riscv_instr_call *ic)
++#define instr(n) riscv32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY riscv32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC riscv32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE riscv32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE riscv32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC riscv32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC riscv32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS riscv32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) riscv32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_riscv_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS riscv_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 riscv32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF riscv32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(riscv,"RISCV")
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_sh_head.c gxemul-0.7.0/src/cpus/tmp_sh_head.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_sh_head.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_sh_head.c 2022-10-18 16:37:22.110770500 +0000
+@@ -0,0 +1,67 @@
++
++/* AUTOMATICALLY GENERATED! Do not edit. */
++
++#include <assert.h>
++#include "debugger.h"
++#define DYNTRANS_MAX_VPH_TLB_ENTRIES SH_MAX_VPH_TLB_ENTRIES
++#define DYNTRANS_ARCH sh
++#define DYNTRANS_SH
++#ifndef DYNTRANS_32
++#define DYNTRANS_L2N SH_L2N
++#define DYNTRANS_L3N SH_L3N
++#if !defined(SH_L2N) || !defined(SH_L3N)
++#error arch_L2N, and arch_L3N must be defined for this arch!
++#endif
++#define DYNTRANS_L2_64_TABLE sh_l2_64_table
++#define DYNTRANS_L3_64_TABLE sh_l3_64_table
++#endif
++#ifndef DYNTRANS_PAGESIZE
++#define DYNTRANS_PAGESIZE 4096
++#endif
++#define DYNTRANS_IC sh_instr_call
++#define DYNTRANS_IC_ENTRIES_PER_PAGE SH_IC_ENTRIES_PER_PAGE
++#define DYNTRANS_INSTR_ALIGNMENT_SHIFT SH_INSTR_ALIGNMENT_SHIFT
++#define DYNTRANS_TC_PHYSPAGE sh_tc_physpage
++#define DYNTRANS_INVALIDATE_TLB_ENTRY sh_invalidate_tlb_entry
++#define DYNTRANS_ADDR_TO_PAGENR SH_ADDR_TO_PAGENR
++#define DYNTRANS_PC_TO_IC_ENTRY SH_PC_TO_IC_ENTRY
++#define DYNTRANS_TC_ALLOCATE sh_tc_allocate_default_page
++#define DYNTRANS_TC_PHYSPAGE sh_tc_physpage
++#define DYNTRANS_PC_TO_POINTERS sh_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC sh_pc_to_pointers_generic
++#define COMBINE_INSTRUCTIONS sh_combine_instructions
++#define DISASSEMBLE sh_cpu_disassemble_instr
++
++extern bool single_step;
++extern bool about_to_enter_single_step;
++extern int single_step_breakpoint;
++extern int old_quiet_mode;
++extern int quiet_mode;
++
++/* instr uses the same names as in cpu_sh_instr.c */
++#define instr(n) sh_instr_ ## n
++
++#ifdef DYNTRANS_DUALMODE_32
++#define instr32(n) sh32_instr_ ## n
++
++#endif
++
++
++#define X(n) void sh_instr_ ## n(struct cpu *cpu, \
++ struct sh_instr_call *ic)
++
++/*
++ * nothing: Do nothing.
++ *
++ * The difference between this function and a "nop" instruction is that
++ * this function does not increase the program counter. It is used to "get out" of running in translated
++ * mode.
++ */
++X(nothing)
++{
++ cpu->cd.sh.next_ic --;
++ cpu->ninstrs --;
++}
++
++static struct sh_instr_call nothing_call = { instr(nothing), {0,0} };
++
+diff -Nru gxemul-0.7.0.orig/src/cpus/tmp_sh_tail.c gxemul-0.7.0/src/cpus/tmp_sh_tail.c
+--- gxemul-0.7.0.orig/src/cpus/tmp_sh_tail.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/cpus/tmp_sh_tail.c 2022-10-18 16:37:22.111770200 +0000
+@@ -0,0 +1,132 @@
++
++/*
++ * AUTOMATICALLY GENERATED! Do not edit.
++ */
++
++extern size_t dyntrans_cache_size;
++#ifdef DYNTRANS_32
++#define MODE32
++#endif
++#define DYNTRANS_FUNCTION_TRACE_DEF sh_cpu_functioncall_trace
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_FUNCTION_TRACE_DEF
++
++#define DYNTRANS_INIT_TABLES sh_cpu_init_tables
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INIT_TABLES
++
++#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF sh_tc_allocate_default_page
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE_DEF
++
++#define DYNTRANS_INVAL_ENTRY
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC sh_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE sh_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE sh_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define MEMORY_RW sh_memory_rw
++#define MEM_SH
++#include "memory_rw.c"
++#undef MEM_SH
++#undef MEMORY_RW
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC sh_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC sh_pc_to_pointers_generic
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#define COMBINE_INSTRUCTIONS sh_combine_instructions
++#ifndef DYNTRANS_32
++#define reg(x) (*((uint64_t *)(x)))
++#define MODE_uint_t uint64_t
++#define MODE_int_t int64_t
++#else
++#define reg(x) (*((uint32_t *)(x)))
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#endif
++#define COMBINE(n) sh_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_sh_instr.c"
++
++#define DYNTRANS_RUN_INSTR_DEF sh_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#ifdef DYNTRANS_DUALMODE_32
++#undef COMBINE_INSTRUCTIONS
++#define COMBINE_INSTRUCTIONS sh32_combine_instructions
++#undef X
++#undef instr
++#undef reg
++#define X(n) void sh32_instr_ ## n(struct cpu *cpu, \
++ struct sh_instr_call *ic)
++#define instr(n) sh32_instr_ ## n
++#ifdef HOST_LITTLE_ENDIAN
++#define reg(x) ( *((uint32_t *)(x)) )
++#else
++#define reg(x) ( *((uint32_t *)(x)+1) )
++#endif
++#define MODE32
++#undef MODE_uint_t
++#undef MODE_int_t
++#define MODE_uint_t uint32_t
++#define MODE_int_t int32_t
++#define DYNTRANS_INVAL_ENTRY
++#undef DYNTRANS_INVALIDATE_TLB_ENTRY
++#define DYNTRANS_INVALIDATE_TLB_ENTRY sh32_invalidate_tlb_entry
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVAL_ENTRY
++
++#define DYNTRANS_INVALIDATE_TC sh32_invalidate_translation_caches
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC
++
++#define DYNTRANS_INVALIDATE_TC_CODE sh32_invalidate_code_translation
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_INVALIDATE_TC_CODE
++
++#define DYNTRANS_UPDATE_TRANSLATION_TABLE sh32_update_translation_table
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_UPDATE_TRANSLATION_TABLE
++
++#define DYNTRANS_PC_TO_POINTERS_FUNC sh32_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS_GENERIC sh32_pc_to_pointers_generic
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS sh32_pc_to_pointers
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_PC_TO_POINTERS_FUNC
++
++#undef DYNTRANS_PC_TO_POINTERS_GENERIC
++
++#undef COMBINE
++#define COMBINE(n) sh32_combine_ ## n
++#include "quick_pc_to_pointers.h"
++#include "cpu_sh_instr.c"
++
++#undef DYNTRANS_PC_TO_POINTERS
++#define DYNTRANS_PC_TO_POINTERS sh_pc_to_pointers
++#define DYNTRANS_PC_TO_POINTERS32 sh32_pc_to_pointers
++
++#define DYNTRANS_RUN_INSTR_DEF sh32_run_instr
++#include "cpu_dyntrans.c"
++#undef DYNTRANS_RUN_INSTR_DEF
++
++#endif /* DYNTRANS_DUALMODE_32 */
++
++
++CPU_FAMILY_INIT(sh,"SH")
++
diff --git a/patches/gxemul/generated2.patch b/patches/gxemul/generated2.patch
new file mode 100644
index 00000000..0f6cd92c
--- /dev/null
+++ b/patches/gxemul/generated2.patch
@@ -0,0 +1,267 @@
+diff -Nru -x '*.c' gxemul-0.7.0.orig/src/include/ppc_spr_strings.h gxemul-0.7.0/src/include/ppc_spr_strings.h
+--- gxemul-0.7.0.orig/src/include/ppc_spr_strings.h 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/include/ppc_spr_strings.h 2022-10-18 17:02:38.378538100 +0000
+@@ -0,0 +1,263 @@
++/*
++ * AUTOMATICALLY GENERATED from ppc_spr.h! Do not edit.
++ */
++
++static const char *ppc_spr_names[1024] = {
++ "mq", "xer", "(unknown)", "(unknown)",
++ "rtcu_r", "rtcl_r", "(unknown)", "(unknown)",
++ "lr", "ctr", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "dsisr", "dar",
++ "rtcu_w", "rtcl_w", "dec", "(unknown)",
++ "(unknown)", "sdr1", "srr0", "srr1",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "eie", "eid", "nri", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "vrsave", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "sprg0", "sprg1", "sprg2", "sprg3",
++ "sprg4", "sprg5", "sprg6", "sprg7",
++ "asr", "(unknown)", "ear", "(unknown)",
++ "tbl", "tbu", "(unknown)", "pvr",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "hsprg0", "hsprg1", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "hdec", "hior",
++ "rmor", "hrmor", "hsrr0", "hsrr1",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "ibat0u", "ibat0l", "ibat1u", "ibat1l",
++ "ibat2u", "ibat2l", "ibat3u", "ibat3l",
++ "dbat0u", "dbat0l", "dbat1u", "dbat1l",
++ "dbat2u", "dbat2l", "dbat3u", "dbat3l",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "ibat4u", "dc_adr", "dc_dat", "ibat5l",
++ "ibat6u", "ibat6l", "ibat7u", "ibat7l",
++ "dbat4u", "dbat4l", "dbat5u", "dbat5l",
++ "dbat6u", "dbat6l", "dbat7u", "dbat7l",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "mi_ctr", "(unknown)", "mi_ap", "mi_epn",
++ "(unknown)", "mi_twc", "mi_rpn", "(unknown)",
++ "md_ctr", "m_casid", "md_ap", "md_epn",
++ "m_twb", "md_twc", "md_rpn", "md_tw",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "mi_cam", "mi_ram0", "mi_ram1", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "md_cam", "md_ram0", "md_ram1", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "ummcr2", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "ummcr0", "(unknown)", "(unknown)", "usia",
++ "ummcr1", "(unknown)", "(unknown)", "(unknown)",
++ "mmcr2", "pmc5", "pmc6", "ccr0",
++ "iac3", "iac4", "dvc1", "dvc2",
++ "mmcr0", "pmc1", "pmc2", "sia",
++ "su0r", "pmc3", "pmc4", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "dmiss", "dcmp", "hash1", "hash2",
++ "tlbmiss", "ptehi", "ptelo", "(unknown)",
++ "tsr", "(unknown)", "tcr", "pit",
++ "(unknown)", "(unknown)", "srr2", "srr3",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
++ "hid0", "hid1", "iabr", "hid2",
++ "iac1", "dabr", "msscr0", "dac2",
++ "l2pm", "l2cr", "dccr", "iccr",
++ "thrm1", "thrm2", "fpecr", "pir"
++};
++
diff --git a/patches/gxemul/generated3.patch b/patches/gxemul/generated3.patch
new file mode 100644
index 00000000..d9214fba
--- /dev/null
+++ b/patches/gxemul/generated3.patch
@@ -0,0 +1,889 @@
+diff -Nru gxemul-0.7.0.orig/src/devices/fonts/font8x10.c gxemul-0.7.0/src/devices/fonts/font8x10.c
+--- gxemul-0.7.0.orig/src/devices/fonts/font8x10.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/devices/fonts/font8x10.c 2022-10-18 18:07:23.530031700 +0000
+@@ -0,0 +1,258 @@
++unsigned char font8x10[] = {
++ 0,0,0,0,0,0,0,0,0,0,
++ 126,129,165,165,129,129,189,153,129,126,
++ 126,255,219,219,255,255,195,231,255,126,
++ 108,254,254,124,124,56,56,16,16,0,
++ 0,0,16,56,124,254,124,56,16,0,
++ 56,124,124,56,124,254,254,124,56,124,
++ 16,16,56,56,124,254,254,124,56,124,
++ 0,0,0,24,60,60,24,0,0,0,
++ 255,255,255,231,195,195,231,255,255,255,
++ 0,0,60,102,66,66,102,60,0,0,
++ 255,255,195,153,189,189,153,195,255,255,
++ 0,15,7,15,125,204,204,204,120,0,
++ 0,60,102,102,102,60,24,126,24,0,
++ 63,51,63,48,48,48,112,240,224,0,
++ 127,99,127,99,99,99,103,230,192,0,
++ 0,219,126,60,231,231,60,126,219,0,
++ 0,0,128,224,248,254,248,224,128,0,
++ 0,0,2,14,62,254,62,14,2,0,
++ 24,24,60,126,24,24,126,60,24,24,
++ 102,102,102,102,102,102,0,102,102,0,
++ 127,219,219,219,123,27,27,27,27,0,
++ 60,102,48,108,198,108,24,204,120,0,
++ 0,0,0,0,0,126,126,126,126,0,
++ 24,24,60,126,24,24,126,60,24,255,
++ 24,24,60,60,126,24,24,24,24,24,
++ 24,24,24,24,24,126,60,60,24,24,
++ 0,0,0,0,24,12,254,12,24,0,
++ 0,0,0,0,48,96,254,96,48,0,
++ 0,0,0,0,192,192,192,192,254,0,
++ 0,0,0,0,36,102,255,102,36,0,
++ 0,24,24,60,60,126,126,255,255,0,
++ 0,255,255,126,126,60,60,24,24,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 48,120,120,120,48,48,0,48,48,0,
++ 108,108,108,40,0,0,0,0,0,0,
++ 108,108,254,108,108,108,254,108,108,0,
++ 24,126,216,216,124,54,54,252,48,0,
++ 198,204,12,24,56,48,96,102,198,0,
++ 56,108,108,56,48,118,220,204,118,0,
++ 224,224,96,96,192,0,0,0,0,0,
++ 12,24,48,48,48,48,48,24,12,0,
++ 96,48,24,24,24,24,24,48,96,0,
++ 0,0,198,108,56,254,56,108,198,0,
++ 0,0,0,48,48,252,48,48,0,0,
++ 0,0,0,0,112,112,48,48,96,0,
++ 0,0,0,0,0,254,0,0,0,0,
++ 0,0,0,0,0,0,0,48,48,0,
++ 0,12,12,24,24,48,48,96,96,0,
++ 124,198,206,222,214,246,230,198,124,0,
++ 48,112,48,48,48,48,48,48,252,0,
++ 124,198,198,6,12,56,96,198,254,0,
++ 124,198,198,6,60,6,198,198,124,0,
++ 12,12,28,60,108,204,254,12,30,0,
++ 254,192,192,252,6,6,6,198,124,0,
++ 28,48,96,192,252,198,198,198,124,0,
++ 254,198,6,12,12,24,24,24,24,0,
++ 124,198,198,198,124,198,198,198,124,0,
++ 124,198,198,198,126,6,12,24,112,0,
++ 0,0,0,48,48,0,0,48,48,0,
++ 0,0,48,48,0,0,48,48,96,0,
++ 0,0,24,48,96,192,96,48,24,0,
++ 0,0,0,0,252,0,0,252,0,0,
++ 0,0,96,48,24,12,24,48,96,0,
++ 124,198,198,6,12,24,24,0,24,0,
++ 124,198,206,218,214,222,192,198,124,0,
++ 56,124,198,198,198,254,198,198,198,0,
++ 252,102,102,102,124,102,102,102,252,0,
++ 60,102,192,192,192,192,192,102,60,0,
++ 248,108,102,102,102,102,102,108,248,0,
++ 254,98,96,104,120,104,96,98,254,0,
++ 254,98,96,104,120,104,96,96,240,0,
++ 60,102,192,192,192,206,198,102,60,0,
++ 198,198,198,198,254,198,198,198,198,0,
++ 60,24,24,24,24,24,24,24,60,0,
++ 30,12,12,12,12,12,204,204,120,0,
++ 230,102,108,108,120,108,108,102,230,0,
++ 240,96,96,96,96,96,98,102,254,0,
++ 198,238,254,254,214,198,198,198,198,0,
++ 198,230,230,246,222,206,206,198,198,0,
++ 56,108,198,198,198,198,198,108,56,0,
++ 252,102,102,102,124,96,96,96,240,0,
++ 124,198,198,198,198,198,206,124,14,0,
++ 252,102,102,102,120,108,108,102,230,0,
++ 124,198,192,96,56,12,6,198,124,0,
++ 126,90,24,24,24,24,24,24,60,0,
++ 198,198,198,198,198,198,198,198,124,0,
++ 102,102,102,102,102,102,102,60,24,0,
++ 198,198,198,198,198,214,254,238,198,0,
++ 198,198,108,56,16,56,108,198,198,0,
++ 204,204,204,204,120,48,48,48,120,0,
++ 254,198,140,24,48,96,194,198,254,0,
++ 30,24,24,24,24,24,24,24,30,0,
++ 0,96,96,48,48,24,24,12,12,0,
++ 240,48,48,48,48,48,48,48,240,0,
++ 16,56,108,198,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,255,
++ 48,48,24,0,0,0,0,0,0,0,
++ 0,0,0,120,12,124,204,204,118,0,
++ 224,96,96,124,102,102,102,102,220,0,
++ 0,0,0,124,198,192,192,198,124,0,
++ 28,12,12,124,204,204,204,204,118,0,
++ 0,0,0,124,198,254,192,192,124,0,
++ 56,108,96,240,96,96,96,96,240,0,
++ 0,0,0,118,204,204,124,12,204,120,
++ 224,96,96,108,118,102,102,102,230,0,
++ 48,48,0,112,48,48,48,48,120,0,
++ 12,12,0,12,12,12,12,204,204,120,
++ 224,96,96,102,108,120,120,108,230,0,
++ 112,48,48,48,48,48,48,48,120,0,
++ 0,0,0,204,254,254,214,214,214,0,
++ 0,0,0,220,230,198,198,198,198,0,
++ 0,0,0,124,198,198,198,198,124,0,
++ 0,0,0,220,102,102,102,124,96,240,
++ 0,0,0,118,204,204,204,124,12,30,
++ 0,0,0,220,118,102,96,96,240,0,
++ 0,0,0,124,198,112,28,198,124,0,
++ 32,96,96,252,96,96,96,108,56,0,
++ 0,0,0,204,204,204,204,204,118,0,
++ 0,0,0,198,198,198,198,108,56,0,
++ 0,0,0,198,214,214,254,254,108,0,
++ 0,0,0,198,108,56,56,108,198,0,
++ 0,0,0,198,198,198,126,6,6,252,
++ 0,0,0,254,140,24,48,98,254,0,
++ 14,24,24,24,112,24,24,24,14,0,
++ 24,24,24,24,0,24,24,24,24,0,
++ 224,48,48,48,28,48,48,48,224,0,
++ 118,220,0,0,0,0,0,0,0,0,
++ 0,0,0,16,56,108,198,198,254,0,
++ 124,198,192,192,192,198,124,12,6,60,
++ 0,204,0,204,204,204,204,204,118,0,
++ 0,14,0,124,198,254,192,192,124,0,
++ 60,102,0,60,6,62,102,102,63,0,
++ 0,204,0,120,12,124,204,204,118,0,
++ 0,112,0,120,12,124,204,204,118,0,
++ 48,48,0,120,12,124,204,204,118,0,
++ 0,0,0,126,192,192,192,126,6,60,
++ 60,102,0,60,102,126,96,96,60,0,
++ 204,0,0,124,198,254,192,192,124,0,
++ 0,112,0,124,198,254,192,192,124,0,
++ 0,204,0,112,48,48,48,48,120,0,
++ 56,108,0,56,24,24,24,24,60,0,
++ 0,224,0,112,48,48,48,48,120,0,
++ 198,0,56,108,198,254,198,198,198,0,
++ 48,48,0,120,204,252,204,204,204,0,
++ 28,0,252,96,96,120,96,96,252,0,
++ 0,0,0,126,27,126,216,216,127,0,
++ 62,108,204,204,254,204,204,204,206,0,
++ 56,108,0,124,198,198,198,198,124,0,
++ 0,198,0,124,198,198,198,198,124,0,
++ 0,112,0,124,198,198,198,198,124,0,
++ 120,204,0,204,204,204,204,204,118,0,
++ 0,112,0,204,204,204,204,204,118,0,
++ 0,198,0,198,198,198,126,6,6,252,
++ 198,56,108,198,198,198,198,108,56,0,
++ 198,0,198,198,198,198,198,198,124,0,
++ 24,24,126,192,192,192,192,126,24,24,
++ 56,108,100,96,248,96,96,230,252,0,
++ 204,204,120,48,252,48,252,48,48,0,
++ 248,204,204,204,250,198,207,198,199,0,
++ 14,27,24,24,60,24,24,24,216,112,
++ 0,28,0,120,12,124,204,204,118,0,
++ 0,56,0,112,48,48,48,48,120,0,
++ 0,28,0,124,198,198,198,198,124,0,
++ 0,28,0,204,204,204,204,204,118,0,
++ 112,254,28,0,220,230,198,198,198,0,
++ 254,0,198,230,246,254,222,206,198,0,
++ 60,108,108,108,62,0,126,0,0,0,
++ 56,108,108,108,56,0,124,0,0,0,
++ 48,0,48,48,96,192,198,198,124,0,
++ 0,0,0,0,254,192,192,0,0,0,
++ 0,0,0,0,254,6,6,0,0,0,
++ 195,198,204,216,62,123,195,6,12,15,
++ 195,198,204,217,51,103,205,15,3,3,
++ 24,24,0,24,24,60,60,60,24,0,
++ 0,0,0,51,102,204,102,51,0,0,
++ 0,0,0,204,102,51,102,204,0,0,
++ 34,136,34,136,34,136,34,136,34,136,
++ 85,170,85,170,85,170,85,170,85,170,
++ 219,119,219,238,219,119,219,238,219,119,
++ 24,24,24,24,24,24,24,24,24,24,
++ 24,24,24,24,24,248,24,24,24,24,
++ 24,24,24,248,24,248,24,24,24,24,
++ 54,54,54,54,54,246,54,54,54,54,
++ 0,0,0,0,0,254,54,54,54,54,
++ 0,0,0,248,24,248,24,24,24,24,
++ 54,54,54,246,6,246,54,54,54,54,
++ 54,54,54,54,54,54,54,54,54,54,
++ 0,0,0,254,6,246,54,54,54,54,
++ 54,54,54,246,6,254,0,0,0,0,
++ 54,54,54,54,54,254,0,0,0,0,
++ 24,24,24,248,24,248,0,0,0,0,
++ 0,0,0,0,0,248,24,24,24,24,
++ 24,24,24,24,24,31,0,0,0,0,
++ 24,24,24,24,24,255,0,0,0,0,
++ 0,0,0,0,0,255,24,24,24,24,
++ 24,24,24,24,24,31,24,24,24,24,
++ 0,0,0,0,0,255,0,0,0,0,
++ 24,24,24,24,24,255,24,24,24,24,
++ 24,24,24,31,24,31,24,24,24,24,
++ 54,54,54,54,54,55,54,54,54,54,
++ 54,54,54,55,48,63,0,0,0,0,
++ 0,0,0,63,48,55,54,54,54,54,
++ 54,54,54,247,0,255,0,0,0,0,
++ 0,0,0,255,0,247,54,54,54,54,
++ 54,54,54,55,48,55,54,54,54,54,
++ 0,0,0,255,0,255,0,0,0,0,
++ 54,54,54,247,0,247,54,54,54,54,
++ 24,24,24,255,0,255,0,0,0,0,
++ 54,54,54,54,54,255,0,0,0,0,
++ 0,0,0,255,0,255,24,24,24,24,
++ 0,0,0,0,0,255,54,54,54,54,
++ 54,54,54,54,54,63,0,0,0,0,
++ 24,24,24,31,24,31,0,0,0,0,
++ 0,0,0,31,24,31,24,24,24,24,
++ 0,0,0,0,0,63,54,54,54,54,
++ 54,54,54,54,54,255,54,54,54,54,
++ 24,24,24,255,24,255,24,24,24,24,
++ 24,24,24,24,24,248,0,0,0,0,
++ 0,0,0,0,0,31,24,24,24,24,
++ 255,255,255,255,255,255,255,255,255,255,
++ 0,0,0,0,0,255,255,255,255,255,
++ 240,240,240,240,240,240,240,240,240,240,
++ 15,15,15,15,15,15,15,15,15,15,
++ 255,255,255,255,255,0,0,0,0,0,
++ 0,0,0,118,220,216,204,220,118,0,
++ 0,124,198,198,220,198,198,220,192,192,
++ 254,102,100,96,96,96,96,96,240,0,
++ 254,108,108,108,108,108,108,108,238,0,
++ 254,198,96,48,24,48,96,198,254,0,
++ 0,0,0,127,204,204,204,204,120,0,
++ 0,0,0,102,102,102,118,108,96,192,
++ 0,0,0,118,220,24,24,24,24,0,
++ 60,24,126,219,219,219,126,24,60,0,
++ 56,108,198,198,254,198,198,108,56,0,
++ 56,108,198,198,198,108,108,108,238,0,
++ 28,50,48,24,124,204,204,204,120,0,
++ 0,0,0,118,219,219,219,110,0,0,
++ 3,6,124,207,219,219,243,62,96,192,
++ 0,0,28,48,96,124,96,48,28,0,
++ 0,0,124,198,198,198,198,198,198,0,
++ 0,0,0,254,0,254,0,254,0,0,
++ 0,0,48,48,252,48,48,0,252,0,
++ 96,48,24,12,24,48,96,0,254,0,
++ 12,24,48,96,48,24,12,0,254,0,
++ 14,27,27,24,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,216,216,112,
++ 0,0,48,48,0,252,0,48,48,0,
++ 0,0,0,118,220,0,118,220,0,0,
++ 56,108,108,108,56,0,0,0,0,0,
++ 0,0,0,0,24,24,0,0,0,0,
++ 0,0,0,0,0,24,0,0,0,0,
++ 15,12,12,12,236,108,108,52,60,28,
++ 120,108,108,108,108,108,0,0,0,0,
++ 112,216,24,112,192,248,0,0,0,0,
++ 0,0,0,60,60,60,60,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0
++};
+diff -Nru gxemul-0.7.0.orig/src/devices/fonts/font8x16.c gxemul-0.7.0/src/devices/fonts/font8x16.c
+--- gxemul-0.7.0.orig/src/devices/fonts/font8x16.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/devices/fonts/font8x16.c 2022-10-18 18:07:23.555054400 +0000
+@@ -0,0 +1,412 @@
++unsigned char font8x16[] = {
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,126,129,
++ 165,129,129,189,153,129,129,126,0,0,
++ 0,0,0,0,126,255,219,255,255,195,
++ 231,255,255,126,0,0,0,0,0,0,
++ 0,0,108,254,254,254,254,124,56,16,
++ 0,0,0,0,0,0,0,0,16,56,
++ 124,254,124,56,16,0,0,0,0,0,
++ 0,0,0,24,60,60,231,231,231,24,
++ 24,60,0,0,0,0,0,0,0,24,
++ 60,126,255,255,126,24,24,60,0,0,
++ 0,0,0,0,0,0,0,0,24,60,
++ 60,24,0,0,0,0,0,0,255,255,
++ 255,255,255,255,231,195,195,231,255,255,
++ 255,255,255,255,0,0,0,0,0,60,
++ 102,66,66,102,60,0,0,0,0,0,
++ 255,255,255,255,255,195,153,189,189,153,
++ 195,255,255,255,255,255,0,0,30,14,
++ 26,50,120,204,204,204,204,120,0,0,
++ 0,0,0,0,60,102,102,102,102,60,
++ 24,126,24,24,0,0,0,0,0,0,
++ 63,51,63,48,48,48,48,112,240,224,
++ 0,0,0,0,0,0,127,99,127,99,
++ 99,99,99,103,231,230,192,0,0,0,
++ 0,0,0,24,24,219,60,231,60,219,
++ 24,24,0,0,0,0,0,128,192,224,
++ 240,248,254,248,240,224,192,128,0,0,
++ 0,0,0,2,6,14,30,62,254,62,
++ 30,14,6,2,0,0,0,0,0,0,
++ 24,60,126,24,24,24,126,60,24,0,
++ 0,0,0,0,0,0,102,102,102,102,
++ 102,102,102,0,102,102,0,0,0,0,
++ 0,0,127,219,219,219,123,27,27,27,
++ 27,27,0,0,0,0,0,124,198,96,
++ 56,108,198,198,108,56,12,198,124,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 254,254,254,254,0,0,0,0,0,0,
++ 24,60,126,24,24,24,126,60,24,126,
++ 0,0,0,0,0,0,24,60,126,24,
++ 24,24,24,24,24,24,0,0,0,0,
++ 0,0,24,24,24,24,24,24,24,126,
++ 60,24,0,0,0,0,0,0,0,0,
++ 0,24,12,254,12,24,0,0,0,0,
++ 0,0,0,0,0,0,0,48,96,254,
++ 96,48,0,0,0,0,0,0,0,0,
++ 0,0,0,0,192,192,192,254,0,0,
++ 0,0,0,0,0,0,0,0,0,40,
++ 108,254,108,40,0,0,0,0,0,0,
++ 0,0,0,0,16,56,56,124,124,254,
++ 254,0,0,0,0,0,0,0,0,0,
++ 254,254,124,124,56,56,16,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 24,60,60,60,24,24,24,0,24,24,
++ 0,0,0,0,0,102,102,102,36,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,108,108,254,108,108,108,254,
++ 108,108,0,0,0,0,0,24,24,124,
++ 198,194,192,124,6,134,198,124,24,24,
++ 0,0,0,0,0,0,194,198,12,24,
++ 48,96,198,134,0,0,0,0,0,0,
++ 56,108,108,56,118,220,204,204,204,118,
++ 0,0,0,0,0,48,48,48,96,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,12,24,48,48,48,48,48,48,
++ 24,12,0,0,0,0,0,0,48,24,
++ 12,12,12,12,12,12,24,48,0,0,
++ 0,0,0,0,0,0,0,102,60,255,
++ 60,102,0,0,0,0,0,0,0,0,
++ 0,0,0,24,24,126,24,24,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,24,24,24,48,0,0,0,
++ 0,0,0,0,0,0,0,126,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,24,24,0,0,
++ 0,0,0,0,0,0,2,6,12,24,
++ 48,96,192,128,0,0,0,0,0,0,
++ 124,198,198,206,222,246,230,198,198,124,
++ 0,0,0,0,0,0,24,56,120,24,
++ 24,24,24,24,24,126,0,0,0,0,
++ 0,0,124,198,6,12,24,48,96,192,
++ 198,254,0,0,0,0,0,0,124,198,
++ 6,6,60,6,6,6,198,124,0,0,
++ 0,0,0,0,12,28,60,108,204,254,
++ 12,12,12,30,0,0,0,0,0,0,
++ 254,192,192,192,252,6,6,6,198,124,
++ 0,0,0,0,0,0,56,96,192,192,
++ 252,198,198,198,198,124,0,0,0,0,
++ 0,0,254,198,6,6,12,24,48,48,
++ 48,48,0,0,0,0,0,0,124,198,
++ 198,198,124,198,198,198,198,124,0,0,
++ 0,0,0,0,124,198,198,198,126,6,
++ 6,6,12,120,0,0,0,0,0,0,
++ 0,0,24,24,0,0,0,24,24,0,
++ 0,0,0,0,0,0,0,0,24,24,
++ 0,0,0,24,24,48,0,0,0,0,
++ 0,0,0,6,12,24,48,96,48,24,
++ 12,6,0,0,0,0,0,0,0,0,
++ 0,126,0,0,126,0,0,0,0,0,
++ 0,0,0,0,0,96,48,24,12,6,
++ 12,24,48,96,0,0,0,0,0,0,
++ 124,198,198,12,24,24,24,0,24,24,
++ 0,0,0,0,0,0,124,198,198,198,
++ 222,222,222,220,192,124,0,0,0,0,
++ 0,0,16,56,108,198,198,254,198,198,
++ 198,198,0,0,0,0,0,0,252,102,
++ 102,102,124,102,102,102,102,252,0,0,
++ 0,0,0,0,60,102,194,192,192,192,
++ 192,194,102,60,0,0,0,0,0,0,
++ 248,108,102,102,102,102,102,102,108,248,
++ 0,0,0,0,0,0,254,102,98,104,
++ 120,104,96,98,102,254,0,0,0,0,
++ 0,0,254,102,98,104,120,104,96,96,
++ 96,240,0,0,0,0,0,0,60,102,
++ 194,192,192,222,198,198,102,58,0,0,
++ 0,0,0,0,198,198,198,198,254,198,
++ 198,198,198,198,0,0,0,0,0,0,
++ 60,24,24,24,24,24,24,24,24,60,
++ 0,0,0,0,0,0,30,12,12,12,
++ 12,12,204,204,204,120,0,0,0,0,
++ 0,0,230,102,102,108,120,120,108,102,
++ 102,230,0,0,0,0,0,0,240,96,
++ 96,96,96,96,96,98,102,254,0,0,
++ 0,0,0,0,198,238,254,254,214,198,
++ 198,198,198,198,0,0,0,0,0,0,
++ 198,230,246,254,222,206,198,198,198,198,
++ 0,0,0,0,0,0,124,198,198,198,
++ 198,198,198,198,198,124,0,0,0,0,
++ 0,0,252,102,102,102,124,96,96,96,
++ 96,240,0,0,0,0,0,0,124,198,
++ 198,198,198,198,198,214,222,124,12,14,
++ 0,0,0,0,252,102,102,102,124,108,
++ 102,102,102,230,0,0,0,0,0,0,
++ 124,198,198,96,56,12,6,198,198,124,
++ 0,0,0,0,0,0,126,126,90,24,
++ 24,24,24,24,24,60,0,0,0,0,
++ 0,0,198,198,198,198,198,198,198,198,
++ 198,124,0,0,0,0,0,0,198,198,
++ 198,198,198,198,198,108,56,16,0,0,
++ 0,0,0,0,198,198,198,198,214,214,
++ 214,254,238,108,0,0,0,0,0,0,
++ 198,198,108,124,56,56,124,108,198,198,
++ 0,0,0,0,0,0,102,102,102,102,
++ 60,24,24,24,24,60,0,0,0,0,
++ 0,0,254,198,134,12,24,48,96,194,
++ 198,254,0,0,0,0,0,0,60,48,
++ 48,48,48,48,48,48,48,60,0,0,
++ 0,0,0,0,0,128,192,224,112,56,
++ 28,14,6,2,0,0,0,0,0,0,
++ 60,12,12,12,12,12,12,12,12,60,
++ 0,0,0,0,16,56,108,198,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,255,0,0,48,48,24,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,120,12,124,
++ 204,204,204,118,0,0,0,0,0,0,
++ 224,96,96,120,108,102,102,102,102,124,
++ 0,0,0,0,0,0,0,0,0,124,
++ 198,192,192,192,198,124,0,0,0,0,
++ 0,0,28,12,12,60,108,204,204,204,
++ 204,118,0,0,0,0,0,0,0,0,
++ 0,124,198,254,192,192,198,124,0,0,
++ 0,0,0,0,56,108,100,96,240,96,
++ 96,96,96,240,0,0,0,0,0,0,
++ 0,0,0,118,204,204,204,204,204,124,
++ 12,204,120,0,0,0,224,96,96,108,
++ 118,102,102,102,102,230,0,0,0,0,
++ 0,0,24,24,0,56,24,24,24,24,
++ 24,60,0,0,0,0,0,0,6,6,
++ 0,14,6,6,6,6,6,6,102,102,
++ 60,0,0,0,224,96,96,102,108,120,
++ 120,108,102,230,0,0,0,0,0,0,
++ 56,24,24,24,24,24,24,24,24,60,
++ 0,0,0,0,0,0,0,0,0,236,
++ 254,214,214,214,214,198,0,0,0,0,
++ 0,0,0,0,0,220,102,102,102,102,
++ 102,102,0,0,0,0,0,0,0,0,
++ 0,124,198,198,198,198,198,124,0,0,
++ 0,0,0,0,0,0,0,220,102,102,
++ 102,102,102,124,96,96,240,0,0,0,
++ 0,0,0,118,204,204,204,204,204,124,
++ 12,12,30,0,0,0,0,0,0,220,
++ 118,102,96,96,96,240,0,0,0,0,
++ 0,0,0,0,0,124,198,96,56,12,
++ 198,124,0,0,0,0,0,0,16,48,
++ 48,252,48,48,48,48,54,28,0,0,
++ 0,0,0,0,0,0,0,204,204,204,
++ 204,204,204,118,0,0,0,0,0,0,
++ 0,0,0,198,198,198,198,108,56,16,
++ 0,0,0,0,0,0,0,0,0,198,
++ 198,214,214,214,254,108,0,0,0,0,
++ 0,0,0,0,0,198,108,56,56,56,
++ 108,198,0,0,0,0,0,0,0,0,
++ 0,198,198,198,198,198,198,126,6,12,
++ 248,0,0,0,0,0,0,254,204,24,
++ 48,96,198,254,0,0,0,0,0,0,
++ 14,24,24,24,112,24,24,24,24,14,
++ 0,0,0,0,0,0,24,24,24,24,
++ 0,24,24,24,24,24,0,0,0,0,
++ 0,0,112,24,24,24,14,24,24,24,
++ 24,112,0,0,0,0,0,0,118,220,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,16,56,108,198,
++ 198,198,254,0,0,0,0,0,0,0,
++ 60,102,194,192,192,192,194,102,60,12,
++ 6,124,0,0,0,0,204,0,0,204,
++ 204,204,204,204,204,118,0,0,0,0,
++ 0,12,24,48,0,124,198,254,192,192,
++ 198,124,0,0,0,0,0,16,56,108,
++ 0,120,12,124,204,204,204,118,0,0,
++ 0,0,0,0,204,0,0,120,12,124,
++ 204,204,204,118,0,0,0,0,0,96,
++ 48,24,0,120,12,124,204,204,204,118,
++ 0,0,0,0,0,56,108,56,0,120,
++ 12,124,204,204,204,118,0,0,0,0,
++ 0,0,0,0,60,102,96,96,102,60,
++ 12,6,60,0,0,0,0,16,56,108,
++ 0,124,198,254,192,192,198,124,0,0,
++ 0,0,0,0,198,0,0,124,198,254,
++ 192,192,198,124,0,0,0,0,0,96,
++ 48,24,0,124,198,254,192,192,198,124,
++ 0,0,0,0,0,0,102,0,0,56,
++ 24,24,24,24,24,60,0,0,0,0,
++ 0,24,60,102,0,56,24,24,24,24,
++ 24,60,0,0,0,0,0,96,48,24,
++ 0,56,24,24,24,24,24,60,0,0,
++ 0,0,0,198,0,16,56,108,198,198,
++ 254,198,198,198,0,0,0,0,56,108,
++ 56,0,56,108,198,198,254,198,198,198,
++ 0,0,0,0,24,48,96,0,254,102,
++ 96,124,96,96,102,254,0,0,0,0,
++ 0,0,0,0,108,254,178,50,126,216,
++ 216,110,0,0,0,0,0,0,62,108,
++ 204,204,254,204,204,204,204,206,0,0,
++ 0,0,0,16,56,108,0,124,198,198,
++ 198,198,198,124,0,0,0,0,0,0,
++ 198,0,0,124,198,198,198,198,198,124,
++ 0,0,0,0,0,96,48,24,0,124,
++ 198,198,198,198,198,124,0,0,0,0,
++ 0,48,120,204,0,204,204,204,204,204,
++ 204,118,0,0,0,0,0,96,48,24,
++ 0,204,204,204,204,204,204,118,0,0,
++ 0,0,0,198,198,0,0,198,198,198,
++ 198,198,198,126,6,12,120,0,198,198,
++ 0,124,198,198,198,198,198,198,198,124,
++ 0,0,0,0,198,198,0,198,198,198,
++ 198,198,198,198,198,124,0,0,0,0,
++ 0,24,24,60,102,96,96,96,102,60,
++ 24,24,0,0,0,0,0,56,108,100,
++ 96,240,96,96,96,96,230,252,0,0,
++ 0,0,0,0,102,102,60,24,126,24,
++ 126,24,24,24,0,0,0,0,0,248,
++ 204,204,248,196,204,222,204,204,204,198,
++ 0,0,0,0,0,14,27,24,24,24,
++ 126,24,24,24,24,24,216,112,0,0,
++ 0,24,48,96,0,120,12,124,204,204,
++ 204,118,0,0,0,0,0,12,24,48,
++ 0,56,24,24,24,24,24,60,0,0,
++ 0,0,0,24,48,96,0,124,198,198,
++ 198,198,198,124,0,0,0,0,0,24,
++ 48,96,0,204,204,204,204,204,204,118,
++ 0,0,0,0,0,0,118,220,0,220,
++ 102,102,102,102,102,102,0,0,0,0,
++ 118,220,0,198,230,246,254,222,206,198,
++ 198,198,0,0,0,0,0,60,108,108,
++ 62,0,126,0,0,0,0,0,0,0,
++ 0,0,0,56,108,108,56,0,124,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 48,48,0,48,48,96,192,198,198,124,
++ 0,0,0,0,0,0,0,0,0,0,
++ 254,192,192,192,192,0,0,0,0,0,
++ 0,0,0,0,0,0,254,6,6,6,
++ 6,0,0,0,0,0,0,192,192,194,
++ 198,204,24,48,96,220,134,12,24,62,
++ 0,0,0,192,192,194,198,204,24,48,
++ 102,206,158,62,6,6,0,0,0,0,
++ 24,24,0,24,24,24,60,60,60,24,
++ 0,0,0,0,0,0,0,0,0,54,
++ 108,216,108,54,0,0,0,0,0,0,
++ 0,0,0,0,0,216,108,54,108,216,
++ 0,0,0,0,0,0,17,68,17,68,
++ 17,68,17,68,17,68,17,68,17,68,
++ 17,68,85,170,85,170,85,170,85,170,
++ 85,170,85,170,85,170,85,170,221,119,
++ 221,119,221,119,221,119,221,119,221,119,
++ 221,119,221,119,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,248,24,24,
++ 24,24,24,24,24,24,24,24,24,24,
++ 24,248,24,248,24,24,24,24,24,24,
++ 24,24,54,54,54,54,54,54,54,246,
++ 54,54,54,54,54,54,54,54,0,0,
++ 0,0,0,0,0,254,54,54,54,54,
++ 54,54,54,54,0,0,0,0,0,248,
++ 24,248,24,24,24,24,24,24,24,24,
++ 54,54,54,54,54,246,6,246,54,54,
++ 54,54,54,54,54,54,54,54,54,54,
++ 54,54,54,54,54,54,54,54,54,54,
++ 54,54,0,0,0,0,0,254,6,246,
++ 54,54,54,54,54,54,54,54,54,54,
++ 54,54,54,246,6,254,0,0,0,0,
++ 0,0,0,0,54,54,54,54,54,54,
++ 54,254,0,0,0,0,0,0,0,0,
++ 24,24,24,24,24,248,24,248,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,248,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,24,24,31,
++ 0,0,0,0,0,0,0,0,24,24,
++ 24,24,24,24,24,255,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,255,24,24,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,31,24,24,
++ 24,24,24,24,24,24,0,0,0,0,
++ 0,0,0,255,0,0,0,0,0,0,
++ 0,0,24,24,24,24,24,24,24,255,
++ 24,24,24,24,24,24,24,24,24,24,
++ 24,24,24,31,24,31,24,24,24,24,
++ 24,24,24,24,54,54,54,54,54,54,
++ 54,55,54,54,54,54,54,54,54,54,
++ 54,54,54,54,54,55,48,63,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,63,48,55,54,54,54,54,54,54,
++ 54,54,54,54,54,54,54,247,0,255,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,255,0,247,54,54,54,54,
++ 54,54,54,54,54,54,54,54,54,55,
++ 48,55,54,54,54,54,54,54,54,54,
++ 0,0,0,0,0,255,0,255,0,0,
++ 0,0,0,0,0,0,54,54,54,54,
++ 54,247,0,247,54,54,54,54,54,54,
++ 54,54,24,24,24,24,24,255,0,255,
++ 0,0,0,0,0,0,0,0,54,54,
++ 54,54,54,54,54,255,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,255,
++ 0,255,24,24,24,24,24,24,24,24,
++ 0,0,0,0,0,0,0,255,54,54,
++ 54,54,54,54,54,54,54,54,54,54,
++ 54,54,54,63,0,0,0,0,0,0,
++ 0,0,24,24,24,24,24,31,24,31,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,31,24,31,24,24,24,24,
++ 24,24,24,24,0,0,0,0,0,0,
++ 0,63,54,54,54,54,54,54,54,54,
++ 54,54,54,54,54,54,54,255,54,54,
++ 54,54,54,54,54,54,24,24,24,24,
++ 24,255,24,255,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,24,24,248,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,31,24,24,24,24,
++ 24,24,24,24,255,255,255,255,255,255,
++ 255,255,255,255,255,255,255,255,255,255,
++ 0,0,0,0,0,0,0,255,255,255,
++ 255,255,255,255,255,255,240,240,240,240,
++ 240,240,240,240,240,240,240,240,240,240,
++ 240,240,15,15,15,15,15,15,15,15,
++ 15,15,15,15,15,15,15,15,255,255,
++ 255,255,255,255,255,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,118,
++ 220,216,216,216,220,118,0,0,0,0,
++ 0,0,120,204,204,204,216,204,198,198,
++ 198,204,0,0,0,0,0,0,254,198,
++ 198,192,192,192,192,192,192,192,0,0,
++ 0,0,0,0,0,0,254,108,108,108,
++ 108,108,108,108,0,0,0,0,0,0,
++ 0,254,198,96,48,24,48,96,198,254,
++ 0,0,0,0,0,0,0,0,0,126,
++ 216,216,216,216,216,112,0,0,0,0,
++ 0,0,0,0,102,102,102,102,102,124,
++ 96,96,192,0,0,0,0,0,0,0,
++ 118,220,24,24,24,24,24,24,0,0,
++ 0,0,0,0,0,126,24,60,102,102,
++ 102,60,24,126,0,0,0,0,0,0,
++ 0,56,108,198,198,254,198,198,108,56,
++ 0,0,0,0,0,0,56,108,198,198,
++ 198,108,108,108,108,238,0,0,0,0,
++ 0,0,30,48,24,12,62,102,102,102,
++ 102,60,0,0,0,0,0,0,0,0,
++ 0,126,219,219,219,126,0,0,0,0,
++ 0,0,0,0,0,3,6,126,219,219,
++ 243,126,96,192,0,0,0,0,0,0,
++ 30,48,96,96,126,96,96,96,48,30,
++ 0,0,0,0,0,0,0,124,198,198,
++ 198,198,198,198,198,198,0,0,0,0,
++ 0,0,0,0,254,0,0,254,0,0,
++ 254,0,0,0,0,0,0,0,0,0,
++ 24,24,126,24,24,0,0,255,0,0,
++ 0,0,0,0,0,48,24,12,6,12,
++ 24,48,0,126,0,0,0,0,0,0,
++ 0,12,24,48,96,48,24,12,0,126,
++ 0,0,0,0,0,0,14,27,27,27,
++ 24,24,24,24,24,24,24,24,24,24,
++ 24,24,24,24,24,24,24,24,216,216,
++ 216,112,0,0,0,0,0,0,0,0,
++ 24,24,0,126,0,24,24,0,0,0,
++ 0,0,0,0,0,0,0,118,220,0,
++ 118,220,0,0,0,0,0,0,0,56,
++ 108,108,56,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,24,24,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,24,0,
++ 0,0,0,0,0,0,0,15,12,12,
++ 12,12,12,236,108,108,60,28,0,0,
++ 0,0,0,216,108,108,108,108,108,0,
++ 0,0,0,0,0,0,0,0,0,112,
++ 216,48,96,200,248,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,124,124,
++ 124,124,124,124,124,0,0,0,0,0,
++ 0,0,0,0,0,0,0,0,0,0,
++ 0,0,0,0,0,0
++};
+diff -Nru gxemul-0.7.0.orig/src/devices/fonts/font8x8.c gxemul-0.7.0/src/devices/fonts/font8x8.c
+--- gxemul-0.7.0.orig/src/devices/fonts/font8x8.c 1970-01-01 00:00:00.000000000 +0000
++++ gxemul-0.7.0/src/devices/fonts/font8x8.c 2022-10-18 18:07:23.505008700 +0000
+@@ -0,0 +1,207 @@
++unsigned char font8x8[] = {
++ 0,0,0,0,0,0,0,0,126,129,
++ 165,129,189,153,129,126,126,255,219,255,
++ 195,231,255,126,108,254,254,254,124,56,
++ 16,0,16,56,124,254,124,56,16,0,
++ 56,124,56,254,254,214,16,56,16,56,
++ 124,254,254,124,16,56,0,0,24,60,
++ 60,24,0,0,255,255,231,195,195,231,
++ 255,255,60,102,195,195,195,195,102,60,
++ 255,195,153,189,189,153,195,255,31,7,
++ 13,121,205,204,204,120,60,102,102,102,
++ 60,24,126,24,56,60,54,50,52,112,
++ 240,224,127,99,127,99,99,103,230,192,
++ 24,219,60,231,231,60,219,24,128,224,
++ 248,254,248,224,128,0,2,14,62,254,
++ 62,14,2,0,24,60,126,24,24,126,
++ 60,24,102,102,102,102,102,0,102,0,
++ 127,219,219,123,27,27,27,0,126,195,
++ 252,102,102,63,195,126,0,0,126,126,
++ 126,0,0,0,24,60,126,24,126,60,
++ 24,255,24,60,126,24,24,24,24,0,
++ 24,24,24,24,126,60,24,0,0,24,
++ 12,254,12,24,0,0,0,48,96,254,
++ 96,48,0,0,0,0,96,96,96,126,
++ 0,0,0,36,102,255,102,36,0,0,
++ 0,16,56,124,254,254,0,0,0,254,
++ 254,124,56,16,0,0,0,0,0,0,
++ 0,0,0,0,24,60,60,24,24,0,
++ 24,0,108,108,108,0,0,0,0,0,
++ 108,108,254,108,254,108,108,0,48,124,
++ 192,124,6,252,48,0,0,198,204,24,
++ 48,102,198,0,56,108,56,118,220,206,
++ 123,0,96,96,192,0,0,0,0,0,
++ 24,48,96,96,96,48,24,0,48,24,
++ 12,12,12,24,48,0,0,108,56,254,
++ 56,108,0,0,0,48,48,252,48,48,
++ 0,0,0,0,0,0,0,48,48,96,
++ 0,0,0,252,0,0,0,0,0,0,
++ 0,0,0,24,24,0,6,12,24,48,
++ 96,192,128,0,124,206,222,246,230,198,
++ 124,0,48,112,176,48,48,48,252,0,
++ 120,204,12,56,96,192,252,0,120,204,
++ 12,56,12,204,120,0,28,60,108,204,
++ 254,12,30,0,252,192,248,12,12,204,
++ 120,0,120,204,192,248,204,204,120,0,
++ 252,204,12,24,48,48,48,0,120,204,
++ 204,120,204,204,120,0,120,204,204,124,
++ 12,204,120,0,0,48,48,0,0,48,
++ 48,0,0,48,48,0,0,48,48,96,
++ 24,48,96,192,96,48,24,0,0,0,
++ 126,0,0,126,0,0,48,24,12,6,
++ 12,24,48,0,60,102,6,12,24,0,
++ 24,0,124,198,222,222,222,192,126,0,
++ 48,120,204,204,252,204,204,0,252,102,
++ 102,124,102,102,252,0,60,102,192,192,
++ 192,102,60,0,248,108,102,102,102,108,
++ 248,0,254,98,104,120,104,98,254,0,
++ 254,98,104,120,104,96,240,0,60,102,
++ 192,192,206,102,62,0,204,204,204,252,
++ 204,204,204,0,120,48,48,48,48,48,
++ 120,0,30,12,12,12,204,204,120,0,
++ 230,108,120,112,120,108,230,0,240,96,
++ 96,96,98,102,254,0,198,238,254,214,
++ 198,198,198,0,198,230,246,222,206,198,
++ 198,0,56,108,198,198,198,108,56,0,
++ 252,102,102,124,96,96,240,0,120,204,
++ 204,204,220,120,28,0,252,102,102,124,
++ 108,102,230,0,120,204,192,120,12,204,
++ 120,0,252,180,48,48,48,48,120,0,
++ 204,204,204,204,204,204,120,0,204,204,
++ 204,204,204,120,48,0,198,198,198,214,
++ 254,254,198,0,198,198,108,56,56,108,
++ 198,0,204,204,204,120,48,48,120,0,
++ 252,204,152,48,100,204,252,0,120,96,
++ 96,96,96,96,120,0,192,96,48,24,
++ 12,6,2,0,120,24,24,24,24,24,
++ 120,0,16,56,108,198,0,0,0,0,
++ 0,0,0,0,0,0,0,255,48,48,
++ 24,0,0,0,0,0,0,0,120,12,
++ 124,204,118,0,224,96,96,124,102,102,
++ 252,0,0,0,120,204,192,204,120,0,
++ 28,12,12,124,204,204,126,0,0,0,
++ 120,204,252,192,120,0,56,108,96,248,
++ 96,96,240,0,0,0,118,204,204,124,
++ 12,248,224,96,108,118,102,102,230,0,
++ 48,0,112,48,48,48,120,0,12,0,
++ 28,12,12,204,204,120,224,96,102,108,
++ 120,108,230,0,112,48,48,48,48,48,
++ 120,0,0,0,204,254,254,214,198,0,
++ 0,0,248,204,204,204,204,0,0,0,
++ 120,204,204,204,120,0,0,0,220,102,
++ 102,124,96,240,0,0,118,204,204,124,
++ 12,30,0,0,220,118,96,96,240,0,
++ 0,0,124,192,124,6,252,0,16,48,
++ 124,48,48,54,28,0,0,0,204,204,
++ 204,204,118,0,0,0,198,198,198,124,
++ 56,0,0,0,198,214,254,254,108,0,
++ 0,0,198,108,56,108,198,0,0,0,
++ 204,204,204,124,12,248,0,0,252,152,
++ 48,100,252,0,28,48,48,224,48,48,
++ 28,0,24,24,24,0,24,24,24,0,
++ 224,48,48,28,48,48,224,0,118,220,
++ 0,0,0,0,0,0,16,56,108,108,
++ 198,198,254,0,120,204,192,204,120,24,
++ 12,120,0,204,0,204,204,204,126,0,
++ 28,0,120,204,252,192,120,0,126,195,
++ 60,6,62,102,63,0,204,0,120,12,
++ 124,204,126,0,224,0,120,12,124,204,
++ 126,0,48,48,120,12,124,204,126,0,
++ 0,0,120,192,192,120,12,56,126,195,
++ 60,102,126,96,60,0,204,0,120,204,
++ 252,192,120,0,224,0,120,204,252,192,
++ 120,0,204,0,112,48,48,48,120,0,
++ 124,198,56,24,24,24,60,0,224,0,
++ 112,48,48,48,120,0,198,56,108,198,
++ 254,198,198,0,48,48,0,120,204,252,
++ 204,0,28,0,252,96,120,96,252,0,
++ 0,0,127,12,127,204,127,0,62,108,
++ 204,254,204,204,206,0,120,204,0,120,
++ 204,204,120,0,0,204,0,120,204,204,
++ 120,0,0,224,0,120,204,204,120,0,
++ 120,204,0,204,204,204,126,0,0,224,
++ 0,204,204,204,126,0,0,204,0,204,
++ 204,124,12,248,195,24,60,102,102,60,
++ 24,0,204,0,204,204,204,204,120,0,
++ 24,24,126,192,192,126,24,24,56,108,
++ 100,240,96,230,252,0,204,204,120,252,
++ 48,252,48,48,248,204,204,250,198,207,
++ 198,199,14,27,24,60,24,24,216,112,
++ 28,0,120,12,124,204,126,0,56,0,
++ 112,48,48,48,120,0,0,28,0,120,
++ 204,204,120,0,0,28,0,204,204,204,
++ 126,0,0,248,0,248,204,204,204,0,
++ 252,0,204,236,252,220,204,0,60,108,
++ 108,62,0,126,0,0,56,108,108,56,
++ 0,124,0,0,48,0,48,96,192,204,
++ 120,0,0,0,0,252,192,192,0,0,
++ 0,0,0,252,12,12,0,0,195,198,
++ 204,222,51,102,204,15,195,198,204,219,
++ 55,111,207,3,24,24,0,24,24,24,
++ 24,0,0,51,102,204,102,51,0,0,
++ 0,204,102,51,102,204,0,0,34,136,
++ 34,136,34,136,34,136,85,170,85,170,
++ 85,170,85,170,219,119,219,238,219,119,
++ 219,238,24,24,24,24,24,24,24,24,
++ 24,24,24,24,248,24,24,24,24,24,
++ 248,24,248,24,24,24,54,54,54,54,
++ 246,54,54,54,0,0,0,0,254,54,
++ 54,54,0,0,248,24,248,24,24,24,
++ 54,54,246,6,246,54,54,54,54,54,
++ 54,54,54,54,54,54,0,0,254,6,
++ 246,54,54,54,54,54,246,6,254,0,
++ 0,0,54,54,54,54,254,0,0,0,
++ 24,24,248,24,248,0,0,0,0,0,
++ 0,0,248,24,24,24,24,24,24,24,
++ 31,0,0,0,24,24,24,24,255,0,
++ 0,0,0,0,0,0,255,24,24,24,
++ 24,24,24,24,31,24,24,24,0,0,
++ 0,0,255,0,0,0,24,24,24,24,
++ 255,24,24,24,24,24,31,24,31,24,
++ 24,24,54,54,54,54,55,54,54,54,
++ 54,54,55,48,63,0,0,0,0,0,
++ 63,48,55,54,54,54,54,54,247,0,
++ 255,0,0,0,0,0,255,0,247,54,
++ 54,54,54,54,55,48,55,54,54,54,
++ 0,0,255,0,255,0,0,0,54,54,
++ 247,0,247,54,54,54,24,24,255,0,
++ 255,0,0,0,54,54,54,54,255,0,
++ 0,0,0,0,255,0,255,24,24,24,
++ 0,0,0,0,255,54,54,54,54,54,
++ 54,54,63,0,0,0,24,24,31,24,
++ 31,0,0,0,0,0,31,24,31,24,
++ 24,24,0,0,0,0,63,54,54,54,
++ 54,54,54,54,255,54,54,54,24,24,
++ 255,24,255,24,24,24,24,24,24,24,
++ 248,0,0,0,0,0,0,0,31,24,
++ 24,24,255,255,255,255,255,255,255,255,
++ 0,0,0,0,255,255,255,255,240,240,
++ 240,240,240,240,240,240,15,15,15,15,
++ 15,15,15,15,255,255,255,255,0,0,
++ 0,0,0,0,118,220,200,220,118,0,
++ 0,120,204,248,204,248,192,192,0,252,
++ 204,192,192,192,192,0,0,254,108,108,
++ 108,108,108,0,252,204,96,48,96,204,
++ 252,0,0,0,126,216,216,216,112,0,
++ 0,102,102,102,102,124,96,192,0,118,
++ 220,24,24,24,24,0,252,48,120,204,
++ 204,120,48,252,56,108,198,254,198,108,
++ 56,0,56,108,198,198,108,108,238,0,
++ 28,48,24,124,204,204,120,0,0,0,
++ 126,219,219,126,0,0,6,12,126,219,
++ 219,126,96,192,60,96,192,252,192,96,
++ 60,0,120,204,204,204,204,204,204,0,
++ 0,252,0,252,0,252,0,0,48,48,
++ 252,48,48,0,252,0,96,48,24,48,
++ 96,0,252,0,24,48,96,48,24,0,
++ 252,0,14,27,27,24,24,24,24,24,
++ 24,24,24,24,24,216,216,112,48,48,
++ 0,252,0,48,48,0,0,118,220,0,
++ 118,220,0,0,56,108,108,56,0,0,
++ 0,0,0,0,0,24,24,0,0,0,
++ 0,0,0,0,24,0,0,0,15,12,
++ 12,12,236,108,60,28,120,108,108,108,
++ 108,0,0,0,112,24,48,96,120,0,
++ 0,0,0,0,60,60,60,60,0,0,
++ 0,0,0,0,0,0,0,0
++};
diff --git a/patches/htop-3.3.0.local.patch b/patches/htop-3.3.0.local.patch
new file mode 100644
index 00000000..dc5c1360
--- /dev/null
+++ b/patches/htop-3.3.0.local.patch
@@ -0,0 +1,26 @@
+diff -ru htop-3.3.0.orig/unsupported/UnsupportedProcessTable.c htop-3.3.0/unsupported/UnsupportedProcessTable.c
+--- htop-3.3.0.orig/unsupported/UnsupportedProcessTable.c 2024-01-01 02:08:46.000000000 +0100
++++ htop-3.3.0/unsupported/UnsupportedProcessTable.c 2024-03-20 14:02:08.294139220 +0100
+@@ -48,11 +48,6 @@
+ Process_updateCmdline(proc, "<unsupported architecture>", 0, 0);
+ Process_updateExe(proc, "/path/to/executable");
+
+- const Settings* settings = proc->host->settings;
+- if (settings->ss->flags & PROCESS_FLAG_CWD) {
+- free_and_xStrdup(&proc->procCwd, "/current/working/directory");
+- }
+-
+ proc->super.updated = true;
+
+ proc->state = RUNNING;
+diff -ru htop-3.3.0.orig/unsupported/UnsupportedProcess.h htop-3.3.0/unsupported/UnsupportedProcess.h
+--- htop-3.3.0.orig/unsupported/UnsupportedProcess.h 2023-05-16 18:41:42.000000000 +0200
++++ htop-3.3.0/unsupported/UnsupportedProcess.h 2024-03-20 13:53:11.556451796 +0100
+@@ -8,6 +8,7 @@
+ */
+
+ #include "Machine.h"
++#include "Process.h"
+
+
+ typedef struct UnsupportedProcess_ {
diff --git a/patches/imagemagick-7.0.9-12.local.patch b/patches/imagemagick-7.1.1-21_pre.local.patch
index abc7d617..081c1fa0 100644
--- a/patches/imagemagick-7.0.9-12.local.patch
+++ b/patches/imagemagick-7.1.1-21_pre.local.patch
@@ -1,24 +1,7 @@
---- ImageMagick-7.0.9-12/configure.orig 2019-12-28 16:36:23.721685562 +0000
-+++ ImageMagick-7.0.9-12/configure 2019-12-28 16:36:28.661685403 +0000
-@@ -3622,7 +3622,7 @@
- for ac_dir in config "$srcdir"/config; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
-- ac_install_sh="$SHELL $ac_pwd/$ac_aux_dir/install-sh -c"
-+ ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
-@@ -4566,7 +4566,7 @@
-
- MAGICK_VERSION=7.0.9-12
-
--MAGICK_GIT_REVISION=16588:7fdd47e:20191226
-+MAGICK_GIT_REVISION=0::20191228
-
-
- # Substitute library versioning
-@@ -18287,6 +18287,16 @@
+diff -ru ImageMagick-7.1.0-51.orig/configure ImageMagick-7.1.0-51/configure
+--- ImageMagick-7.1.0-51.orig/configure 2022-10-16 17:54:02.000000000 +0200
++++ ImageMagick-7.1.0-51/configure 2022-11-05 22:37:15.089499439 +0100
+@@ -18236,6 +18236,15 @@
dynamic_linker='GNU/Linux ld.so'
;;
@@ -28,14 +11,13 @@
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
-@@ -22252,6 +22262,16 @@
+@@ -22765,6 +22775,15 @@
dynamic_linker='GNU/Linux ld.so'
;;
@@ -45,7 +27,6 @@
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
diff --git a/patches/indent-2.2.12.local.patch b/patches/indent-2.2.12.local.patch
deleted file mode 100644
index c384344f..00000000
--- a/patches/indent-2.2.12.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru indent-2.2.12.orig/Makefile.in indent-2.2.12/Makefile.in
---- indent-2.2.12.orig/Makefile.in 2020-11-15 00:08:42.898242760 +0100
-+++ indent-2.2.12/Makefile.in 2020-11-15 09:33:23.686422521 +0100
-@@ -378,7 +378,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- AUTOMAKE_OPTIONS = no-texinfo.tex
--SUBDIRS = intl src doc po man regression
-+SUBDIRS = intl src doc po man
- BUILT_SOURCES =
- DISTFILES = $(DIST_COMMON:README=README.md) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- EXTRA_DIST = README.md \
diff --git a/patches/indent-2.2.13.local.patch b/patches/indent-2.2.13.local.patch
new file mode 100644
index 00000000..1b17d372
--- /dev/null
+++ b/patches/indent-2.2.13.local.patch
@@ -0,0 +1,12 @@
+diff -ru indent-2.2.13.orig/Makefile.in indent-2.2.13/Makefile.in
+--- indent-2.2.13.orig/Makefile.in 2023-01-26 10:52:31.000000000 +0100
++++ indent-2.2.13/Makefile.in 2023-03-21 18:19:33.457352230 +0100
+@@ -336,7 +336,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = no-texinfo.tex
+-SUBDIRS = src doc po man regression
++SUBDIRS = src doc po man
+ BUILT_SOURCES =
+ DISTFILES = $(DIST_COMMON:README=README.md) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ EXTRA_DIST = README.md \
diff --git a/patches/lame-3.100.local.patch b/patches/lame-3.100.local.patch
new file mode 100644
index 00000000..dc5c9e21
--- /dev/null
+++ b/patches/lame-3.100.local.patch
@@ -0,0 +1,9 @@
+diff -ru lame-3.100.orig/include/libmp3lame.sym lame-3.100/include/libmp3lame.sym
+--- lame-3.100.orig/include/libmp3lame.sym 2017-09-06 21:33:35.000000000 +0200
++++ lame-3.100/include/libmp3lame.sym 2024-02-21 16:08:37.072412949 +0100
+@@ -1,5 +1,4 @@
+ lame_init
+-lame_init_old
+ lame_set_num_samples
+ lame_get_num_samples
+ lame_set_in_samplerate
diff --git a/patches/ldns-1.7.0.local.patch b/patches/ldns-1.7.0.local.patch
deleted file mode 100644
index 5a53d0bd..00000000
--- a/patches/ldns-1.7.0.local.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -ru ldns-1.7.0.orig/dnssec.c ldns-1.7.0/dnssec.c
---- ldns-1.7.0.orig/dnssec.c 2016-12-20 11:48:22.000000000 +0100
-+++ ldns-1.7.0/dnssec.c 2022-03-04 03:18:52.759678825 +0100
-@@ -375,7 +375,7 @@
- BN_free(Y);
- return NULL;
- }
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- #ifndef S_SPLINT_S
- dsa->p = P;
- dsa->q = Q;
-@@ -461,7 +461,7 @@
- BN_free(modulus);
- return NULL;
- }
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- #ifndef S_SPLINT_S
- rsa->n = modulus;
- rsa->e = exponent;
-diff -ru ldns-1.7.0.orig/host2str.c ldns-1.7.0/host2str.c
---- ldns-1.7.0.orig/host2str.c 2016-12-20 11:48:22.000000000 +0100
-+++ ldns-1.7.0/host2str.c 2022-03-04 03:18:52.759678825 +0100
-@@ -2040,7 +2040,7 @@
- const BIGNUM *n=NULL, *e=NULL, *d=NULL,
- *p=NULL, *q=NULL, *dmp1=NULL,
- *dmq1=NULL, *iqmp=NULL;
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- n = rsa->n;
- e = rsa->e;
- d = rsa->d;
-@@ -2092,7 +2092,7 @@
- if(1) {
- const BIGNUM *p=NULL, *q=NULL, *g=NULL,
- *priv_key=NULL, *pub_key=NULL;
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- #ifndef S_SPLINT_S
- p = dsa->p;
- q = dsa->q;
-diff -ru ldns-1.7.0.orig/keys.c ldns-1.7.0/keys.c
---- ldns-1.7.0.orig/keys.c 2016-12-20 11:48:22.000000000 +0100
-+++ ldns-1.7.0/keys.c 2022-03-04 03:18:52.759678825 +0100
-@@ -898,7 +898,7 @@
- }
- #endif /* splint */
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- # ifndef S_SPLINT_S
- rsa->n = n;
- rsa->e = e;
-@@ -1018,7 +1018,7 @@
- }
- #endif /* splint */
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- # ifndef S_SPLINT_S
- dsa->p = p;
- dsa->q = q;
-@@ -1713,7 +1713,7 @@
- if (!k) {
- return false;
- }
--#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || LIBRESSL_VERSION_NUMBER < 0x3050000fL
- n = k->n;
- e = k->e;
- #else
-Only in ldns-1.7.0: ldns-1.7.0.local.patch
-diff -ru ldns-1.7.0.orig/Makefile.in ldns-1.7.0/Makefile.in
---- ldns-1.7.0.orig/Makefile.in 2016-12-20 11:48:22.000000000 +0100
-+++ ldns-1.7.0/Makefile.in 2022-03-04 03:19:09.959679170 +0100
-@@ -148,7 +148,7 @@
- fi
-
- drill/drill: $(DRILL_LOBJS) $(LIB)
-- $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill
-+ $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -L./lib -lldns -o drill/drill
-
- drill/drill.1: $(srcdir)/drill/drill.1.in
- $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
-@@ -179,21 +179,21 @@
- fi
-
- $(EXAMPLE_PROGS):
-- $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@
-+ $(LINK_EXE) $@.lo $(LIBS) -L./lib -lldns -o $@
-
- $(TESTNS):
-- $(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -lldns -o $(TESTNS)
-+ $(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -L./lib -lldns -o $(TESTNS)
-
- $(LDNS_DPA):
-- $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBS) $(LIBPCAP_LIBS) -lldns \
-+ $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBS) $(LIBPCAP_LIBS) -L./lib -lldns \
- -o $(LDNS_DPA)
-
- $(LDNS_DANE):
-- $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBS) $(LIBSSL_SSL_LIBS) -lldns \
-+ $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBS) $(LIBSSL_SSL_LIBS) -L./lib -lldns \
- -o $(LDNS_DANE)
-
- $(EX_SSL_PROGS):
-- $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@
-+ $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -L./lib -lldns -o $@
-
- examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in
- $(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1
-@@ -228,14 +228,14 @@
-
- linktest: $(srcdir)/linktest.c libldns.la
- $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo
-- $(LINK_EXE) linktest.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o linktest
-+ $(LINK_EXE) linktest.lo $(LIBS) $(LIBSSL_LIBS) -L./lib -lldns -o linktest
-
- lib: libldns.la
-
- lib-export-all: libldns.la-export-all
-
- libldns.la: $(LDNS_ALL_LOBJS)
-- $(LINK_LIB) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -export-symbols-regex '^(ldns_|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH)
-+ $(LINK_LIB) $(LIBSSL_LDFLAGS) -export-symbols-regex '^(ldns_|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) $(LIBSSL_LIBS) -rpath $(libdir) $(RUNTIME_PATH)
-
- libldns.la-export-all: $(LDNS_ALL_LOBJS)
- $(LINK_LIB) -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH)
diff --git a/patches/ldns-1.8.3.local.patch b/patches/ldns-1.8.3.local.patch
new file mode 100644
index 00000000..ef089e47
--- /dev/null
+++ b/patches/ldns-1.8.3.local.patch
@@ -0,0 +1,75 @@
+diff -ru ldns-1.8.3.orig/Makefile.in ldns-1.8.3/Makefile.in
+--- ldns-1.8.3.orig/Makefile.in 2023-09-14 16:27:42.808302266 +0200
++++ ldns-1.8.3/Makefile.in 2023-09-14 16:24:26.011635647 +0200
+@@ -27,6 +27,7 @@
+ pyldnsx_uninst = @PYLDNSXUNINST@
+ libtool = @libtool@
+ CONFIG_FILES = @CONFIG_FILES@
++top_builddir = @top_builddir@
+
+ LDNS_TRUST_ANCHOR_FILE = @LDNS_TRUST_ANCHOR_FILE@
+ DEFAULT_CAFILE = @DEFAULT_CAFILE@
+@@ -119,7 +120,7 @@
+ COMP_LIB = $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS)
+ LINK = $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS)
+ LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -version-info $(version_info) -no-undefined
+-LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBSSL_LDFLAGS)
++LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS)
+
+ .PHONY: clean realclean docclean manpages doc lint all lib pyldns test
+ .PHONY: install uninstall install-doc uninstall-doc uninstall-pyldns
+@@ -168,7 +169,7 @@
+ fi
+
+ drill/drill: $(DRILL_LOBJS) $(LIB) $(LIBLOBJS)
+- $(LINK_EXE) $(DRILL_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o drill/drill
++ $(LINK_EXE) $(DRILL_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) -o drill/drill $(top_builddir)/libldns.la
+
+ drill/drill.1: $(srcdir)/drill/drill.1.in
+ $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
+@@ -200,23 +201,23 @@
+
+ # Need LIBSSL_LIBS
+ $(EXAMPLE_PROGS):
+- $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
++ $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@ $(top_builddir)/libldns.la
+
+ # Need LIBSSL_LIBS
+ $(TESTNS):
+- $(LINK_EXE) $(TESTNS_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $(TESTNS)
++ $(LINK_EXE) $(TESTNS_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $(TESTNS) $(top_builddir)/libldns.la
+
+ # Need LIBSSL_LIBS
+ $(LDNS_DPA):
+ $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBLOBJS) $(LIB) $(LIBPCAP_LIBS) $(LIBSSL_LIBS) $(LIBS) \
+- -o $(LDNS_DPA)
++ -o $(LDNS_DPA) $(top_builddir)/libldns.la
+
+ $(LDNS_DANE):
+ $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_SSL_LIBS) $(LIBS) \
+- -o $(LDNS_DANE)
++ -o $(LDNS_DANE) $(top_builddir)/libldns.la
+
+ $(EX_SSL_PROGS):
+- $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
++ $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@ $(top_builddir)/libldns.la
+
+ examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in
+ $(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1
+@@ -251,14 +252,14 @@
+
+ linktest: $(srcdir)/linktest.c libldns.la
+ $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo
+- $(LINK_EXE) linktest.lo $(LIB) $(LIBSSL_LIBS) $(LIBS) -o linktest
++ $(LINK_EXE) linktest.lo $(LIB) $(LIBSSL_LIBS) $(LIBS) -o linktest $(top_builddir)/libldns.la
+
+ lib: libldns.la
+
+ lib-export-all: libldns.la-export-all
+
+ libldns.la: $(LDNS_ALL_LOBJS)
+- $(LINK_LIB) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -export-symbols-regex '^(ldns_|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH)
++ $(LINK_LIB) $(LIBSSL_LIBS) -export-symbols-regex '^(ldns_|b32_[pn]to[pn]|mktime_from_utc|qsort_rr_compare_nsec3)' -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH)
+
+ libldns.la-export-all: $(LDNS_ALL_LOBJS)
+ $(LINK_LIB) -o libldns.la $(LDNS_ALL_LOBJS) -rpath $(libdir) $(RUNTIME_PATH)
diff --git a/patches/libarchive-3.6.1_pre.local.patch b/patches/libarchive-3.7.3_pre.local.patch
index 00141a21..f8f71eb5 100644
--- a/patches/libarchive-3.6.1_pre.local.patch
+++ b/patches/libarchive-3.7.3_pre.local.patch
@@ -1,7 +1,7 @@
-diff -ru libarchive-3.4.2.orig/configure libarchive-3.4.2/configure
---- libarchive-3.4.2.orig/configure 2020-02-11 23:58:01.000000000 +0100
-+++ libarchive-3.4.2/configure 2020-04-11 15:58:45.493648584 +0200
-@@ -12062,6 +12062,16 @@
+diff -ru libarchive-3.7.2.orig/configure libarchive-3.7.2/configure
+--- libarchive-3.7.2.orig/configure 2023-09-12 00:05:34.000000000 +0200
++++ libarchive-3.7.2/configure 2024-02-26 13:44:22.491965148 +0100
+@@ -12906,6 +12906,15 @@
dynamic_linker='NetBSD ld.elf_so'
;;
@@ -11,10 +11,10 @@ diff -ru libarchive-3.4.2.orig/configure libarchive-3.4.2/configure
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
+
diff --git a/patches/libassuan-2.5.4_pre.local.patch b/patches/libassuan-2.5.4_pre.local.patch
deleted file mode 100644
index d6529b87..00000000
--- a/patches/libassuan-2.5.4_pre.local.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -ru a/src/libassuan-config.in b/src/libassuan-config.in
---- a/src/libassuan-config.in 2018-10-25 05:20:28.000000000 -0400
-+++ b/src/libassuan-config.in 2020-03-11 18:47:54.410306584 -0400
-@@ -131,13 +131,5 @@
- fi
-
- if test "$echo_libs" = "yes"; then
-- if test "@libdir@" != "/usr/lib" ; then
-- libdirs="-L@libdir@"
-- for i in $lib $extralibs ; do
-- if test "$i" = "-L@libdir@" ; then
-- libdirs=""
-- fi
-- done
-- fi
- echo $libdirs $lib $extralibs
- fi
diff --git a/patches/libassuan-2.5.5_pre.local.patch b/patches/libassuan-2.5.5_pre.local.patch
new file mode 100644
index 00000000..d141edaf
--- /dev/null
+++ b/patches/libassuan-2.5.5_pre.local.patch
@@ -0,0 +1,9 @@
+--- libassuan-2.5.5/src/libassuan-config.in.orig 2018-10-25 11:20:28.000000000 +0200
++++ libassuan-2.5.5/src/libassuan-config.in 2022-12-27 11:09:39.104865932 +0100
+@@ -139,5 +139,5 @@
+ fi
+ done
+ fi
+- echo $libdirs $lib $extralibs
++ echo $lib $extralibs
+ fi
diff --git a/patches/libflac-1.4.3_pre.local.patch b/patches/libflac-1.4.3_pre.local.patch
new file mode 100644
index 00000000..b0aee98f
--- /dev/null
+++ b/patches/libflac-1.4.3_pre.local.patch
@@ -0,0 +1,17 @@
+diff -ru flac-1.4.3.orig/configure flac-1.4.3/configure
+--- flac-1.4.3.orig/configure 2023-06-22 10:50:43.581743622 +0200
++++ flac-1.4.3/configure 2023-06-26 21:27:46.664311640 +0200
+@@ -21401,13 +21401,6 @@
+
+
+ if test x$ac_cv_c_compiler_gnu = xyes -o x$xiph_cv_c_compiler_clang = xyes ; then
+- if test "x${ax_enable_debug}" = "xno"
+-then :
+-
+- CFLAGS="-O3 -funroll-loops $CFLAGS"
+- CXXFLAGS="-O3 $CXXFLAGS"
+-
+-fi
+
+ CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations -Winline " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Wconversion
+ CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wcast-align -Wshadow -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Wsign-promo -Wundef " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Woverloaded-virtual -Wmissing-declarations
diff --git a/patches/libgcrypt-1.10.3.local.patch b/patches/libgcrypt-1.10.3.local.patch
new file mode 100644
index 00000000..a36eab46
--- /dev/null
+++ b/patches/libgcrypt-1.10.3.local.patch
@@ -0,0 +1,12 @@
+diff -ru libgcrypt-1.10.3.orig/src/secmem.c libgcrypt-1.10.3/src/secmem.c
+--- libgcrypt-1.10.3.orig/src/secmem.c 2023-10-19 09:53:31.000000000 +0200
++++ libgcrypt-1.10.3/src/secmem.c 2024-03-05 19:49:33.587573245 +0100
+@@ -279,8 +279,6 @@
+ static void
+ print_warn (void)
+ {
+- if (!no_warning)
+- log_info (_("Warning: using insecure memory!\n"));
+ }
+
+
diff --git a/patches/libgcrypt-1.10.3_pre.local.patch b/patches/libgcrypt-1.10.3_pre.local.patch
new file mode 100644
index 00000000..f6ff4bf9
--- /dev/null
+++ b/patches/libgcrypt-1.10.3_pre.local.patch
@@ -0,0 +1,12 @@
+diff -ru libgcrypt-1.10.2.orig/configure libgcrypt-1.10.2/configure
+--- libgcrypt-1.10.2.orig/configure 2023-04-06 21:07:18.000000000 +0200
++++ libgcrypt-1.10.2/configure 2023-08-24 17:01:02.087595041 +0200
+@@ -15552,7 +15552,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5
+ $as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; }
+ if test $ok = yes; then
+- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG --cflags`
++ GPG_ERROR_CFLAGS=``
+ GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG --libs`
+ if test -z "$GPGRT_CONFIG"; then
+ GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --mt --cflags 2>/dev/null`
diff --git a/patches/libressl-3.5.3.local.patch b/patches/libressl-3.5.3.local.patch
deleted file mode 100644
index 77dab2ec..00000000
--- a/patches/libressl-3.5.3.local.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -ru libressl-3.3.3.orig/man/Makefile.in libressl-3.3.3/man/Makefile.in
---- libressl-3.3.3.orig/man/Makefile.in 2021-05-02 03:16:44.000000000 +0200
-+++ libressl-3.3.3/man/Makefile.in 2021-05-25 00:42:17.424322609 +0200
-@@ -3438,14 +3438,6 @@
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/LHASH_DOALL_ARG_FN_TYPE.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/LHASH_DOALL_FN_TYPE.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/LHASH_HASH_FN_TYPE.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_delete.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_doall.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_doall_arg.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_error.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_free.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_insert.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_new.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_<type>_retrieve.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_delete.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_doall.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ ln -sf "lh_new.3" "$(DESTDIR)$(mandir)/man3/lh_doall_arg.3"
-@@ -6068,14 +6060,6 @@
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/LHASH_DOALL_ARG_FN_TYPE.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/LHASH_DOALL_FN_TYPE.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/LHASH_HASH_FN_TYPE.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_delete.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_doall.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_doall_arg.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_error.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_free.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_insert.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_new.3"
--@ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_<type>_retrieve.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_delete.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_doall.3"
- @ENABLE_LIBTLS_ONLY_FALSE@ -rm -f "$(DESTDIR)$(mandir)/man3/lh_doall_arg.3"
diff --git a/patches/libressl-3.9.1.local.patch b/patches/libressl-3.9.1.local.patch
new file mode 100644
index 00000000..8235cc0c
--- /dev/null
+++ b/patches/libressl-3.9.1.local.patch
@@ -0,0 +1,19 @@
+diff -ru libressl-3.7.1.orig/crypto/compat/arc4random_linux.h libressl-3.7.1/crypto/compat/arc4random_linux.h
+--- libressl-3.7.1.orig/crypto/compat/arc4random_linux.h 2023-05-14 00:44:53.716886970 +0200
++++ libressl-3.7.1/crypto/compat/arc4random_linux.h 2023-05-14 00:44:32.052886839 +0200
+@@ -27,6 +27,7 @@
+
+ #include <pthread.h>
+ #include <signal.h>
++#include <stdio.h>
+
+ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
+ #define _ARC4_LOCK() pthread_mutex_lock(&arc4random_mtx)
+@@ -43,6 +44,7 @@
+ static inline void
+ _getentropy_fail(void)
+ {
++ fprintf(stderr, "Couldn't obtain randomness from getentropy\n");
+ raise(SIGKILL);
+ }
+
diff --git a/patches/libsasl2-2.1.28_pre.local.patch b/patches/libsasl2-2.1.28_pre.local.patch
new file mode 100644
index 00000000..b6571c2d
--- /dev/null
+++ b/patches/libsasl2-2.1.28_pre.local.patch
@@ -0,0 +1,11 @@
+diff -ru cyrus-sasl-2.1.28.orig/include/Makefile.in cyrus-sasl-2.1.28/include/Makefile.in
+--- cyrus-sasl-2.1.28.orig/include/Makefile.in 2022-02-18 22:53:55.000000000 +0100
++++ cyrus-sasl-2.1.28/include/Makefile.in 2024-01-14 22:34:08.569689272 +0100
+@@ -802,6 +802,7 @@
+
+ makemd5$(BUILD_EXEEXT) $(makemd5_OBJECTS): CC=$(CC_FOR_BUILD)
+ makemd5$(BUILD_EXEEXT) $(makemd5_OBJECTS): CFLAGS=$(CFLAGS_FOR_BUILD)
++makemd5$(BUILD_EXEEXT) $(makemd5_OBJECTS): CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+ makemd5$(BUILD_EXEEXT): LDFLAGS=$(LDFLAGS_FOR_BUILD)
+
+ md5global.h: makemd5$(BUILD_EXEEXT) Makefile
diff --git a/patches/libsndfile-1.0.28.local.patch b/patches/libsndfile-1.2.0.local.patch
index 708ae2c7..708ae2c7 100644
--- a/patches/libsndfile-1.0.28.local.patch
+++ b/patches/libsndfile-1.2.0.local.patch
diff --git a/patches/libssh-0.10.6.local.patch b/patches/libssh-0.10.6.local.patch
new file mode 100644
index 00000000..e2525540
--- /dev/null
+++ b/patches/libssh-0.10.6.local.patch
@@ -0,0 +1,10 @@
+diff -ru libssh-0.10.6.orig/libssh.pc.cmake libssh-0.10.6/libssh.pc.cmake
+--- libssh-0.10.6.orig/libssh.pc.cmake 2022-11-18 16:16:47.000000000 +0100
++++ libssh-0.10.6/libssh.pc.cmake 2023-12-19 14:32:21.461084477 +0100
+@@ -6,5 +6,5 @@
+ Name: @PROJECT_NAME@
+ Description: The SSH Library
+ Version: @PROJECT_VERSION@
+-Libs: -L${libdir} -lssh
++Libs: -lssh
+ Cflags: -I${includedir}
diff --git a/patches/libxslt-1.1.35.local.patch b/patches/libxslt-1.1.35.local.patch
deleted file mode 100644
index 1cf25319..00000000
--- a/patches/libxslt-1.1.35.local.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ru libxslt-1.1.32.orig/Makefile.in libxslt-1.1.32/Makefile.in
---- libxslt-1.1.32.orig/Makefile.in 2017-11-02 21:34:22.000000000 +0100
-+++ libxslt-1.1.32/Makefile.in 2018-08-04 15:15:09.283854093 +0200
-@@ -415,10 +415,7 @@
- SUBDIRS = \
- libxslt \
- libexslt \
-- xsltproc \
-- doc \
-- $(PYTHON_SUBDIR) \
-- tests
-+ xsltproc
-
- DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
- confexecdir = $(libdir)
diff --git a/patches/libxslt-1.1.39.local.patch b/patches/libxslt-1.1.39.local.patch
new file mode 100644
index 00000000..ccafaf1e
--- /dev/null
+++ b/patches/libxslt-1.1.39.local.patch
@@ -0,0 +1,12 @@
+diff -ru libxslt-1.1.37.orig/Makefile.in libxslt-1.1.37/Makefile.in
+--- libxslt-1.1.37.orig/Makefile.in 2022-12-10 12:03:50.891594062 +0100
++++ libxslt-1.1.37/Makefile.in 2022-12-10 12:05:46.048683627 +0100
+@@ -427,7 +427,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ ACLOCAL_AMFLAGS = -I m4
+-SUBDIRS = libxslt libexslt xsltproc doc tests $(am__append_1)
++SUBDIRS = libxslt libexslt xsltproc $(am__append_1)
+ DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
+ confexecdir = $(libdir)
+ confexec_DATA = xsltConf.sh
diff --git a/patches/libxslt-1.1.35_pre.local.patch b/patches/libxslt-1.1.39_pre.local.patch
index 08be2163..08be2163 100644
--- a/patches/libxslt-1.1.35_pre.local.patch
+++ b/patches/libxslt-1.1.39_pre.local.patch
diff --git a/patches/libz/CVE-2022-37434.patch b/patches/libz/CVE-2022-37434.patch
new file mode 100644
index 00000000..b6f5e2e3
--- /dev/null
+++ b/patches/libz/CVE-2022-37434.patch
@@ -0,0 +1,15 @@
+diff -ru libz-1.2.8.2015.12.26.orig/inflate.c libz-1.2.8.2015.12.26/inflate.c
+--- libz-1.2.8.2015.12.26.orig/inflate.c 2015-12-21 23:37:02.000000000 +0100
++++ libz-1.2.8.2015.12.26/inflate.c 2022-10-27 11:32:39.403516533 +0200
+@@ -595,8 +595,9 @@
+ if (copy > have) copy = have;
+ if (copy) {
+ if (state->head != NULL &&
+- state->head->extra != NULL) {
+- len = state->head->extra_len - state->length;
++ state->head->extra != NULL &&
++ (len = state->head->extra_max - state->length) <
++ state->head->extra_max) {
+ memcpy(state->head->extra + len, next,
+ len + copy > state->head->extra_max ?
+ state->head->extra_max - len : copy);
diff --git a/patches/libz_minipix b/patches/libz_minipix
new file mode 120000
index 00000000..1ac1b5ef
--- /dev/null
+++ b/patches/libz_minipix
@@ -0,0 +1 @@
+libz \ No newline at end of file
diff --git a/patches/libzip_host-1.7.1.local.patch b/patches/libzip_host-1.7.1.local.patch
new file mode 100644
index 00000000..ae48c057
--- /dev/null
+++ b/patches/libzip_host-1.7.1.local.patch
@@ -0,0 +1,12 @@
+diff -ru libzip-1.7.1.orig/lib/zip_crypto_openssl.c libzip-1.7.1/lib/zip_crypto_openssl.c
+--- libzip-1.7.1.orig/lib/zip_crypto_openssl.c 2020-06-13 12:12:26.000000000 +0200
++++ libzip-1.7.1/lib/zip_crypto_openssl.c 2022-11-04 12:32:54.040171710 +0100
+@@ -39,7 +39,7 @@
+
+ #include <openssl/rand.h>
+
+-#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x1010000fL || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x02070000fL)
+ #define USE_OPENSSL_1_0_API
+ #endif
+
diff --git a/patches/lighttpd-1.4.67_pre.local.patch b/patches/lighttpd-1.4.67_pre.local.patch
deleted file mode 100644
index 596427ef..00000000
--- a/patches/lighttpd-1.4.67_pre.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru lighttpd-1.4.65.orig/configure lighttpd-1.4.65/configure
---- lighttpd-1.4.65.orig/configure 2022-06-29 20:12:39.278502239 +0200
-+++ lighttpd-1.4.65/configure 2022-06-29 20:18:18.776131546 +0200
-@@ -18859,7 +18859,7 @@
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-- pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8" 2>/dev/null`
-+ pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs-only-l "libpcre2-8" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
- else
- pkg_failed=yes
diff --git a/patches/lighttpd-1.4.67.local.patch b/patches/lighttpd-1.4.76.local.patch
index 50a2ce94..50a2ce94 100644
--- a/patches/lighttpd-1.4.67.local.patch
+++ b/patches/lighttpd-1.4.76.local.patch
diff --git a/patches/lighttpd-1.4.76_pre.local.patch b/patches/lighttpd-1.4.76_pre.local.patch
new file mode 100644
index 00000000..55360673
--- /dev/null
+++ b/patches/lighttpd-1.4.76_pre.local.patch
@@ -0,0 +1,23 @@
+diff -ru lighttpd-1.4.76.orig/configure.ac lighttpd-1.4.76/configure.ac
+--- lighttpd-1.4.76.orig/configure.ac 2024-04-11 07:30:19.000000000 +0200
++++ lighttpd-1.4.76/configure.ac 2024-04-18 12:53:43.846262167 +0200
+@@ -61,7 +61,6 @@
+
+ dnl Checks for programs.
+ AC_PROG_CC
+-AC_PROG_CC_C99
+ AX_PROG_CC_FOR_BUILD
+ LT_PATH_LD
+ AC_PROG_INSTALL
+diff -ru lighttpd-1.4.76.orig/src/Makefile.am lighttpd-1.4.76/src/Makefile.am
+--- lighttpd-1.4.76.orig/src/Makefile.am 2024-04-11 07:30:19.000000000 +0200
++++ lighttpd-1.4.76/src/Makefile.am 2024-04-18 12:45:07.642508927 +0200
+@@ -107,7 +107,7 @@
+ lib_LTLIBRARIES += liblightcomp.la
+ liblightcomp_la_SOURCES=$(common_src)
+ liblightcomp_la_CFLAGS=$(AM_CFLAGS) $(LIBEV_CFLAGS)
+-liblightcomp_la_LDFLAGS = $(common_ldflags) --export-all-symbols
++liblightcomp_la_LDFLAGS = $(common_ldflags)
+ liblightcomp_la_LIBADD = $(PCRE_LIB) $(CRYPTO_LIB) $(FAM_LIBS) $(LIBEV_LIBS) $(ATTR_LIB) $(WS2_32_LIB)
+ common_libadd = liblightcomp.la
+ if !LIGHTTPD_STATIC
diff --git a/patches/llvm_host/llvm-0001-Add-Musl-MuslEABI-and-Musl-EABIHF-triples.patch b/patches/llvm_host/llvm-0001-Add-Musl-MuslEABI-and-Musl-EABIHF-triples.patch
deleted file mode 100644
index c1dfc5bd..00000000
--- a/patches/llvm_host/llvm-0001-Add-Musl-MuslEABI-and-Musl-EABIHF-triples.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 1cec99f6d53d442d8a8c9d2ed9f4a58f8fdc6412 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 08:30:07 +0100
-Subject: [PATCH 1/3] Add Musl, MuslEABI and Musl EABIHF triples
-
----
- include/llvm/ADT/Triple.h | 11 +++++++++++
- lib/Support/Triple.cpp | 7 +++++++
- lib/Target/ARM/ARMSubtarget.h | 3 +++
- lib/Target/ARM/ARMTargetMachine.cpp | 2 ++
- 4 files changed, 23 insertions(+)
-
-diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
-index e01db0a..2fc4fc1 100644
---- a/include/llvm/ADT/Triple.h
-+++ b/include/llvm/ADT/Triple.h
-@@ -174,6 +174,10 @@ public:
- EABIHF,
- Android,
-
-+ Musl,
-+ MuslEABI,
-+ MuslEABIHF,
-+
- MSVC,
- Itanium,
- Cygnus,
-@@ -544,6 +548,13 @@ public:
- /// Tests whether the target is Android
- bool isAndroid() const { return getEnvironment() == Triple::Android; }
-
-+ /// Tests whether the target is musl libc
-+ bool isMusl() const {
-+ return getEnvironment() == Triple::Musl ||
-+ getEnvironment() == Triple::MuslEABI ||
-+ getEnvironment() == Triple::MuslEABIHF;
-+ }
-+
- /// @}
- /// @name Mutators
- /// @{
-diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
-index 11afcf7..d90a06a 100644
---- a/lib/Support/Triple.cpp
-+++ b/lib/Support/Triple.cpp
-@@ -199,6 +199,9 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) {
- case CODE16: return "code16";
- case EABI: return "eabi";
- case EABIHF: return "eabihf";
-+ case Musl: return "musl";
-+ case MuslEABIHF: return "muslgnueabihf";
-+ case MuslEABI: return "muslgnueabi";
- case Android: return "android";
- case MSVC: return "msvc";
- case Itanium: return "itanium";
-@@ -454,6 +457,9 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
- .StartsWith("code16", Triple::CODE16)
- .StartsWith("gnu", Triple::GNU)
- .StartsWith("android", Triple::Android)
-+ .StartsWith("muslgnueabihf", Triple::MuslEABIHF)
-+ .StartsWith("muslgnueabi", Triple::MuslEABI)
-+ .StartsWith("musl", Triple::Musl)
- .StartsWith("msvc", Triple::MSVC)
- .StartsWith("itanium", Triple::Itanium)
- .StartsWith("cygnus", Triple::Cygnus)
-@@ -1431,6 +1437,7 @@ StringRef Triple::getARMCPUForArch(StringRef MArch) const {
- switch (getEnvironment()) {
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- return "arm1176jzf-s";
- default:
- return "arm7tdmi";
-diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h
-index 4d54e57..7ed7ab7 100644
---- a/lib/Target/ARM/ARMSubtarget.h
-+++ b/lib/Target/ARM/ARMSubtarget.h
-@@ -405,8 +405,10 @@ public:
- bool isTargetEHABICompatible() const {
- return (TargetTriple.getEnvironment() == Triple::EABI ||
- TargetTriple.getEnvironment() == Triple::GNUEABI ||
-+ TargetTriple.getEnvironment() == Triple::MuslEABI ||
- TargetTriple.getEnvironment() == Triple::EABIHF ||
- TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
-+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
- isTargetAndroid()) &&
- !isTargetDarwin() && !isTargetWindows();
- }
-@@ -415,6 +417,7 @@ public:
- // FIXME: this is invalid for WindowsCE
- return TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
- TargetTriple.getEnvironment() == Triple::EABIHF ||
-+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
- isTargetWindows() || isAAPCS16_ABI();
- }
- bool isTargetAndroid() const { return TargetTriple.isAndroid(); }
-diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
-index fca1901..25f5cf9 100644
---- a/lib/Target/ARM/ARMTargetMachine.cpp
-+++ b/lib/Target/ARM/ARMTargetMachine.cpp
-@@ -101,6 +101,8 @@ computeTargetABI(const Triple &TT, StringRef CPU,
- case llvm::Triple::GNUEABIHF:
- case llvm::Triple::EABIHF:
- case llvm::Triple::EABI:
-+ case llvm::Triple::MuslEABI:
-+ case llvm::Triple::MuslEABIHF:
- TargetABI = ARMBaseTargetMachine::ARM_ABI_AAPCS;
- break;
- case llvm::Triple::GNU:
---
-2.7.3
-
diff --git a/patches/llvm_host/llvm-0002-Fix-build-with-musl-libc.patch b/patches/llvm_host/llvm-0002-Fix-build-with-musl-libc.patch
deleted file mode 100644
index 1a690808..00000000
--- a/patches/llvm_host/llvm-0002-Fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 5c571082fdaf61f6df19d9b7137dc26d71334058 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 10:33:04 +0100
-Subject: [PATCH 2/3] Fix build with musl libc
-
-On musl libc the fopen64 and fopen are the same thing, but for
-compatibility they have a `#define fopen64 fopen`. Same applies for
-fseek64, fstat64, fstatvfs64, ftello64, lstat64, stat64 and tmpfile64.
----
- include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h
-index 7becdf0..7f14427 100644
---- a/include/llvm/Analysis/TargetLibraryInfo.h
-+++ b/include/llvm/Analysis/TargetLibraryInfo.h
-@@ -18,6 +18,15 @@
- #include "llvm/IR/Module.h"
- #include "llvm/Pass.h"
-
-+#undef fopen64
-+#undef fseeko64
-+#undef fstat64
-+#undef fstatvfs64
-+#undef ftello64
-+#undef lstat64
-+#undef stat64
-+#undef tmpfile64
-+
- namespace llvm {
- /// VecDesc - Describes a possible vectorization of a function.
- /// Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized
---
-2.7.3
-
diff --git a/patches/llvm_host/llvm-0003-Fix-DynamicLibrary-to-build-with-musl-libc.patch b/patches/llvm_host/llvm-0003-Fix-DynamicLibrary-to-build-with-musl-libc.patch
deleted file mode 100644
index d5d7f07b..00000000
--- a/patches/llvm_host/llvm-0003-Fix-DynamicLibrary-to-build-with-musl-libc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d12ecb83d01dcb580dd94f4d57828f33d3eb4c35 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 15:33:21 +0100
-Subject: [PATCH 3/3] Fix DynamicLibrary to build with musl libc
-
-stdin/out/err is part of the libc and not the kernel so we check for the
-specific libc that does the unexpected instead of linux.
-
-This is needed for making it build with musl libc.
----
- lib/Support/DynamicLibrary.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/Support/DynamicLibrary.cpp b/lib/Support/DynamicLibrary.cpp
-index 9a7aeb5..0c1c8f8 100644
---- a/lib/Support/DynamicLibrary.cpp
-+++ b/lib/Support/DynamicLibrary.cpp
-@@ -140,10 +140,10 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) {
- #define EXPLICIT_SYMBOL(SYM) \
- if (!strcmp(symbolName, #SYM)) return &SYM
-
--// On linux we have a weird situation. The stderr/out/in symbols are both
-+// On GNU libc we have a weird situation. The stderr/out/in symbols are both
- // macros and global variables because of standards requirements. So, we
- // boldly use the EXPLICIT_SYMBOL macro without checking for a #define first.
--#if defined(__linux__) and !defined(__ANDROID__)
-+#if defined(__GLIBC__)
- {
- EXPLICIT_SYMBOL(stderr);
- EXPLICIT_SYMBOL(stdout);
---
-2.7.3
-
diff --git a/patches/llvm_host/llvm-0004-Fix-ScalarEvolutionExpander-step-scaling-bug.patch b/patches/llvm_host/llvm-0004-Fix-ScalarEvolutionExpander-step-scaling-bug.patch
deleted file mode 100644
index 9945bf35..00000000
--- a/patches/llvm_host/llvm-0004-Fix-ScalarEvolutionExpander-step-scaling-bug.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From c8ce9e59a883f452bc538b5f16fb83649472dc3e Mon Sep 17 00:00:00 2001
-From: Keno Fischer <kfischer@college.harvard.edu>
-Date: Wed, 13 Jul 2016 01:28:12 +0000
-Subject: [PATCH] Fix ScalarEvolutionExpander step scaling bug
-
-The expandAddRecExprLiterally function incorrectly transforms
-`[Start + Step * X]` into `Step * [Start + X]` instead of the correct
-transform of `[Step * X] + Start`.
-
-This caused https://github.com/JuliaLang/julia/issues/14704#issuecomment-174126219
-due to what appeared to be sufficiently complicated loop interactions.
-
-Patch by Jameson Nash (jameson@juliacomputing.com).
-
-Reviewers: sanjoy
-Differential Revision: http://reviews.llvm.org/D16505
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275239 91177308-0d34-0410-b5e6-96231b3b80d8
-
-Alpine maintainer notes:
-This patch replaces deps/patches/llvm-3.7.1_3.patch from Julia.
----
- lib/Analysis/ScalarEvolutionExpander.cpp | 7 ++++
- .../ScalarEvolution/incorrect-offset-scaling.ll | 48 ++++++++++++++++++++++
- 2 files changed, 55 insertions(+)
- create mode 100644 test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll
-
-diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp
-index 7716435..77e4ec7 100644
---- a/lib/Analysis/ScalarEvolutionExpander.cpp
-+++ b/lib/Analysis/ScalarEvolutionExpander.cpp
-@@ -1288,6 +1288,13 @@ Value *SCEVExpander::expandAddRecExprLiterally(const SCEVAddRecExpr *S) {
- if (!SE.dominates(Step, L->getHeader())) {
- PostLoopScale = Step;
- Step = SE.getConstant(Normalized->getType(), 1);
-+ if (!Start->isZero()) {
-+ // The normalization below assumes that Start is constant zero, so if
-+ // it isn't re-associate Start to PostLoopOffset.
-+ assert(!PostLoopOffset && "Start not-null but PostLoopOffset set?");
-+ PostLoopOffset = Start;
-+ Start = SE.getConstant(Normalized->getType(), 0);
-+ }
- Normalized =
- cast<SCEVAddRecExpr>(SE.getAddRecExpr(
- Start, Step, Normalized->getLoop(),
-diff --git a/test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll b/test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll
-new file mode 100644
-index 0000000..7ffb093
---- /dev/null
-+++ b/test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll
-@@ -0,0 +1,48 @@
-+; RUN: opt -S -loop-reduce < %s | FileCheck %s
-+
-+target triple = "x86_64-unknown-unknown"
-+target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-+
-+define void @incorrect_offset_scaling(i64, i64*) {
-+top:
-+ br label %L
-+
-+L: ; preds = %idxend.10, %idxend, %L2, %top
-+ br i1 undef, label %L, label %L1
-+
-+L1: ; preds = %L1.preheader, %L2
-+ %r13 = phi i64 [ %r1, %L2 ], [ 1, %L ]
-+; CHECK: %lsr.iv = phi i64 [ 0, %L{{[^ ]+}} ], [ %lsr.iv.next, %L2 ]
-+; CHECK-NOT: %lsr.iv = phi i64 [ -1, %L{{[^ ]+}} ], [ %lsr.iv.next, %L2 ]
-+; CHECK: br
-+ %r0 = add i64 %r13, -1
-+ br label %idxend.8
-+
-+L2: ; preds = %idxend.8
-+ %r1 = add i64 %r13, 1
-+ br i1 undef, label %L, label %L1
-+
-+if6: ; preds = %idxend.8
-+ %r2 = add i64 %0, -1
-+ %r3 = load i64, i64* %1, align 8
-+; CHECK-NOT: %r2
-+; CHECK: %r3 = load i64
-+ br label %ib
-+
-+idxend.8: ; preds = %L1
-+ br i1 undef, label %if6, label %L2
-+
-+ib: ; preds = %if6
-+ %r4 = mul i64 %r3, %r0
-+ %r5 = add i64 %r2, %r4
-+ %r6 = icmp ult i64 %r5, undef
-+; CHECK %2 = mul i64 %lsr.iv, %r3
-+; CHECK %3 = add i64 %1, -1
-+; CHECK %4 = add i64 %0, %r3
-+; CHECK %r6
-+ %r7 = getelementptr i64, i64* undef, i64 %r5
-+ store i64 1, i64* %r7, align 8
-+; CHECK %5 = mul i64 %lsr.iv, %r3
-+; CHECK %6 = add i64 %5, -1
-+ br label %L
-+}
diff --git a/patches/llvm_host/llvm-0005-optimize-store-of-bitcast-from-vector-to-aggregate.patch b/patches/llvm_host/llvm-0005-optimize-store-of-bitcast-from-vector-to-aggregate.patch
deleted file mode 100644
index 7f891b66..00000000
--- a/patches/llvm_host/llvm-0005-optimize-store-of-bitcast-from-vector-to-aggregate.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 1ca1fcaa5b4c75a65a202badfd5df8240a36ca0f Mon Sep 17 00:00:00 2001
-From: "Arch D. Robison" <arch.robison@intel.com>
-Date: Mon, 25 Apr 2016 22:22:39 +0000
-Subject: [PATCH] Optimize store of "bitcast" from vector to aggregate.
-
-This patch is what was the "instcombine" portion of D14185, with an additional
-test added (see julia_pseudovec in test/Transforms/InstCombine/insert-val-extract-elem.ll).
-The patch causes instcombine to replace sequences of extractelement-insertvalue-store
-that act essentially like a bitcast followed by a store.
-
-Differential review: http://reviews.llvm.org/D14260
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267482 91177308-0d34-0410-b5e6-96231b3b80d8
-
-Alpine maintainer notes:
- - Updated for llvm 3.8.1.
- - This patch replaces llvm-D14260.patch from Julia.
----
- .../InstCombine/InstCombineLoadStoreAlloca.cpp | 60 ++++++++++++++++++
- .../InstCombine/insert-val-extract-elem.ll | 74 ++++++++++++++++++++++
- 2 files changed, 134 insertions(+)
- create mode 100644 test/Transforms/InstCombine/insert-val-extract-elem.ll
-
-diff --git a/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-index 96f0908..0ee6045 100644
---- a/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-+++ b/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-@@ -913,6 +913,61 @@ Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
- return nullptr;
- }
-
-+/// \brief Look for extractelement/insertvalue sequence that acts like a bitcast.
-+///
-+/// \returns underlying value that was "cast", or nullptr otherwise.
-+///
-+/// For example, if we have:
-+///
-+/// %E0 = extractelement <2 x double> %U, i32 0
-+/// %V0 = insertvalue [2 x double] undef, double %E0, 0
-+/// %E1 = extractelement <2 x double> %U, i32 1
-+/// %V1 = insertvalue [2 x double] %V0, double %E1, 1
-+///
-+/// and the layout of a <2 x double> is isomorphic to a [2 x double],
-+/// then %V1 can be safely approximated by a conceptual "bitcast" of %U.
-+/// Note that %U may contain non-undef values where %V1 has undef.
-+static Value *likeBitCastFromVector(InstCombiner &IC, Value *V) {
-+ Value *U = nullptr;
-+ while (auto *IV = dyn_cast<InsertValueInst>(V)) {
-+ auto *E = dyn_cast<ExtractElementInst>(IV->getInsertedValueOperand());
-+ if (!E)
-+ return nullptr;
-+ auto *W = E->getVectorOperand();
-+ if (!U)
-+ U = W;
-+ else if (U != W)
-+ return nullptr;
-+ auto *CI = dyn_cast<ConstantInt>(E->getIndexOperand());
-+ if (!CI || IV->getNumIndices() != 1 || CI->getZExtValue() != *IV->idx_begin())
-+ return nullptr;
-+ V = IV->getAggregateOperand();
-+ }
-+ if (!isa<UndefValue>(V) ||!U)
-+ return nullptr;
-+
-+ auto *UT = cast<VectorType>(U->getType());
-+ auto *VT = V->getType();
-+ // Check that types UT and VT are bitwise isomorphic.
-+ const auto &DL = IC.getDataLayout();
-+ if (DL.getTypeStoreSizeInBits(UT) != DL.getTypeStoreSizeInBits(VT)) {
-+ return nullptr;
-+ }
-+ if (auto *AT = dyn_cast<ArrayType>(VT)) {
-+ if (AT->getNumElements() != UT->getNumElements())
-+ return nullptr;
-+ } else {
-+ auto *ST = cast<StructType>(VT);
-+ if (ST->getNumElements() != UT->getNumElements())
-+ return nullptr;
-+ for (const auto *EltT : ST->elements()) {
-+ if (EltT != UT->getElementType())
-+ return nullptr;
-+ }
-+ }
-+ return U;
-+}
-+
- /// \brief Combine stores to match the type of value being stored.
- ///
- /// The core idea here is that the memory does not have any intrinsic type and
-@@ -924,6 +979,11 @@
- return true;
- }
-
-+ if (Value *U = likeBitCastFromVector(IC, V)) {
-+ combineStoreToNewValue(IC, SI, U);
-+ return true;
-+ }
-+
- // FIXME: We should also canonicalize loads of vectors when their elements are
- // cast to other types.
- return false;
-diff --git a/test/Transforms/InstCombine/insert-val-extract-elem.ll b/test/Transforms/InstCombine/insert-val-extract-elem.ll
-new file mode 100644
-index 0000000..db7b403
---- /dev/null
-+++ b/test/Transforms/InstCombine/insert-val-extract-elem.ll
-@@ -0,0 +1,74 @@
-+; RUN: opt -S -instcombine %s | FileCheck %s
-+
-+; CHECK-LABEL: julia_2xdouble
-+; CHECK-NOT: insertvalue
-+; CHECK-NOT: extractelement
-+; CHECK: store <2 x double>
-+define void @julia_2xdouble([2 x double]* sret, <2 x double>*) {
-+top:
-+ %x = load <2 x double>, <2 x double>* %1
-+ %x0 = extractelement <2 x double> %x, i32 0
-+ %i0 = insertvalue [2 x double] undef, double %x0, 0
-+ %x1 = extractelement <2 x double> %x, i32 1
-+ %i1 = insertvalue [2 x double] %i0, double %x1, 1
-+ store [2 x double] %i1, [2 x double]* %0, align 4
-+ ret void
-+}
-+
-+; Test with two inserts to the same index
-+; CHECK-LABEL: julia_2xi64
-+; CHECK-NOT: insertvalue
-+; CHECK-NOT: extractelement
-+; CHECK: store <2 x i64>
-+define void @julia_2xi64([2 x i64]* sret, <2 x i64>*) {
-+top:
-+ %x = load <2 x i64>, <2 x i64>* %1
-+ %x0 = extractelement <2 x i64> %x, i32 1
-+ %i0 = insertvalue [2 x i64] undef, i64 %x0, 0
-+ %x1 = extractelement <2 x i64> %x, i32 1
-+ %i1 = insertvalue [2 x i64] %i0, i64 %x1, 1
-+ %x2 = extractelement <2 x i64> %x, i32 0
-+ %i2 = insertvalue [2 x i64] %i1, i64 %x2, 0
-+ store [2 x i64] %i2, [2 x i64]* %0, align 4
-+ ret void
-+}
-+
-+; CHECK-LABEL: julia_4xfloat
-+; CHECK-NOT: insertvalue
-+; CHECK-NOT: extractelement
-+; CHECK: store <4 x float>
-+define void @julia_4xfloat([4 x float]* sret, <4 x float>*) {
-+top:
-+ %x = load <4 x float>, <4 x float>* %1
-+ %x0 = extractelement <4 x float> %x, i32 0
-+ %i0 = insertvalue [4 x float] undef, float %x0, 0
-+ %x1 = extractelement <4 x float> %x, i32 1
-+ %i1 = insertvalue [4 x float] %i0, float %x1, 1
-+ %x2 = extractelement <4 x float> %x, i32 2
-+ %i2 = insertvalue [4 x float] %i1, float %x2, 2
-+ %x3 = extractelement <4 x float> %x, i32 3
-+ %i3 = insertvalue [4 x float] %i2, float %x3, 3
-+ store [4 x float] %i3, [4 x float]* %0, align 4
-+ ret void
-+}
-+
-+%pseudovec = type { float, float, float, float }
-+
-+; CHECK-LABEL: julia_pseudovec
-+; CHECK-NOT: insertvalue
-+; CHECK-NOT: extractelement
-+; CHECK: store <4 x float>
-+define void @julia_pseudovec(%pseudovec* sret, <4 x float>*) {
-+top:
-+ %x = load <4 x float>, <4 x float>* %1
-+ %x0 = extractelement <4 x float> %x, i32 0
-+ %i0 = insertvalue %pseudovec undef, float %x0, 0
-+ %x1 = extractelement <4 x float> %x, i32 1
-+ %i1 = insertvalue %pseudovec %i0, float %x1, 1
-+ %x2 = extractelement <4 x float> %x, i32 2
-+ %i2 = insertvalue %pseudovec %i1, float %x2, 2
-+ %x3 = extractelement <4 x float> %x, i32 3
-+ %i3 = insertvalue %pseudovec %i2, float %x3, 3
-+ store %pseudovec %i3, %pseudovec* %0, align 4
-+ ret void
-+}
diff --git a/patches/llvm_host/llvm-0006-clone-every-functions-debug-info.patch b/patches/llvm_host/llvm-0006-clone-every-functions-debug-info.patch
deleted file mode 100644
index 567ddcad..00000000
--- a/patches/llvm_host/llvm-0006-clone-every-functions-debug-info.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 11adcc4de0797c83e61ae0240927f0bafcf041a9 Mon Sep 17 00:00:00 2001
-From: Keno Fischer <kfischer@college.harvard.edu>
-Date: Sat, 13 Feb 2016 02:04:29 +0000
-Subject: [PATCH] [Cloning] Clone every Function's Debug Info
-
-Summary:
-Export the CloneDebugInfoMetadata utility, which clones all debug info
-associated with a function into the first module. Also use this function
-in CloneModule on each function we clone (the CloneFunction entrypoint
-already does this).
-
-Without this, cloning a module will lead to DI quality regressions,
-especially since r252219 reversed the Function <-> DISubprogram edge
-(before we could get lucky and have this edge preserved if the
-DISubprogram itself was, e.g. due to location metadata).
-
-This was verified to fix missing debug information in julia and
-a unittest to verify the new behavior is included.
-
-Patch by Yichao Yu! Thanks!
-
-Reviewers: loladiro, pcc
-Differential Revision: http://reviews.llvm.org/D17165
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260791 91177308-0d34-0410-b5e6-96231b3b80d8
-
-Alpine maintainer notes:
- - Corresponds to llvm-D17165-D18583.patch in Julia.
----
- include/llvm/Transforms/Utils/Cloning.h | 5 +++++
- lib/Transforms/Utils/CloneFunction.cpp | 4 ++--
- lib/Transforms/Utils/CloneModule.cpp | 1 +
- unittests/Transforms/Utils/Cloning.cpp | 25 +++++++++++++++++++++++++
- 4 files changed, 33 insertions(+), 2 deletions(-)
-
-diff --git a/include/llvm/Transforms/Utils/Cloning.h b/include/llvm/Transforms/Utils/Cloning.h
-index 4f006f2..0bae2bd 100644
---- a/include/llvm/Transforms/Utils/Cloning.h
-+++ b/include/llvm/Transforms/Utils/Cloning.h
-@@ -130,6 +130,11 @@ Function *CloneFunction(const Function *F, ValueToValueMapTy &VMap,
- bool ModuleLevelChanges,
- ClonedCodeInfo *CodeInfo = nullptr);
-
-+/// Clone the module-level debug info associated with OldFunc. The cloned data
-+/// will point to NewFunc instead.
-+void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-+ ValueToValueMapTy &VMap);
-+
- /// Clone OldFunc into NewFunc, transforming the old arguments into references
- /// to VMap values. Note that if NewFunc already has basic blocks, the ones
- /// cloned into it will be added to the end of the function. This function
-diff --git a/lib/Transforms/Utils/CloneFunction.cpp b/lib/Transforms/Utils/CloneFunction.cpp
-index 6454afb..8b5692a 100644
---- a/lib/Transforms/Utils/CloneFunction.cpp
-+++ b/lib/Transforms/Utils/CloneFunction.cpp
-@@ -187,8 +187,8 @@ static void AddOperand(DICompileUnit *CU, DISubprogramArray SPs,
-
- // Clone the module-level debug info associated with OldFunc. The cloned data
- // will point to NewFunc instead.
--static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-- ValueToValueMapTy &VMap) {
-+void llvm::CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-+ ValueToValueMapTy &VMap) {
- DebugInfoFinder Finder;
- Finder.processModule(*OldFunc->getParent());
-
-diff --git a/lib/Transforms/Utils/CloneModule.cpp b/lib/Transforms/Utils/CloneModule.cpp
-index 53de62a..b16a02a 100644
---- a/lib/Transforms/Utils/CloneModule.cpp
-+++ b/lib/Transforms/Utils/CloneModule.cpp
-@@ -136,6 +136,7 @@ std::unique_ptr<Module> llvm::CloneModule(
- VMap[&*J] = &*DestI++;
- }
-
-+ CloneDebugInfoMetadata(F, &*I, VMap);
- SmallVector<ReturnInst*, 8> Returns; // Ignore returns cloned.
- CloneFunctionInto(F, &*I, VMap, /*ModuleLevelChanges=*/true, Returns);
- }
-diff --git a/unittests/Transforms/Utils/Cloning.cpp b/unittests/Transforms/Utils/Cloning.cpp
-index 25e322e..b761e4e 100644
---- a/unittests/Transforms/Utils/Cloning.cpp
-+++ b/unittests/Transforms/Utils/Cloning.cpp
-@@ -423,6 +423,7 @@ class CloneModule : public ::testing::Test {
- void SetupModule() { OldM = new Module("", C); }
-
- void CreateOldModule() {
-+ DIBuilder DBuilder(*OldM);
- IRBuilder<> IBuilder(C);
-
- auto *FuncType = FunctionType::get(Type::getVoidTy(C), false);
-@@ -431,9 +432,25 @@ class CloneModule : public ::testing::Test {
- auto *F =
- Function::Create(FuncType, GlobalValue::PrivateLinkage, "f", OldM);
- F->setPersonalityFn(PersFn);
-+
-+ // Create debug info
-+ auto *File = DBuilder.createFile("filename.c", "/file/dir/");
-+ DITypeRefArray ParamTypes = DBuilder.getOrCreateTypeArray(None);
-+ DISubroutineType *DFuncType = DBuilder.createSubroutineType(ParamTypes);
-+ auto *CU =
-+ DBuilder.createCompileUnit(dwarf::DW_LANG_C99, "filename.c",
-+ "/file/dir", "CloneModule", false, "", 0);
-+ // Function DI
-+ auto *Subprogram = DBuilder.createFunction(CU, "f", "f", File, 4, DFuncType,
-+ true, true, 3, 0, false);
-+ F->setSubprogram(Subprogram);
-+
- auto *Entry = BasicBlock::Create(C, "", F);
- IBuilder.SetInsertPoint(Entry);
- IBuilder.CreateRetVoid();
-+
-+ // Finalize the debug info
-+ DBuilder.finalize();
- }
-
- void CreateNewModule() { NewM = llvm::CloneModule(OldM).release(); }
-@@ -447,4 +464,12 @@ TEST_F(CloneModule, Verify) {
- EXPECT_FALSE(verifyModule(*NewM));
- }
-
-+TEST_F(CloneModule, Subprogram) {
-+ Function *NewF = NewM->getFunction("f");
-+ DISubprogram *SP = NewF->getSubprogram();
-+ EXPECT_TRUE(SP != nullptr);
-+ EXPECT_EQ(SP->getName(), "f");
-+ EXPECT_EQ(SP->getFile()->getFilename(), "filename.c");
-+ EXPECT_EQ(SP->getLine(), (unsigned)4);
-+}
- }
diff --git a/patches/llvm_host/llvm-0007-reduce-complexity-of-debug-info-clonning-and-fix-correctness.patch b/patches/llvm_host/llvm-0007-reduce-complexity-of-debug-info-clonning-and-fix-correctness.patch
deleted file mode 100644
index 0930c28e..00000000
--- a/patches/llvm_host/llvm-0007-reduce-complexity-of-debug-info-clonning-and-fix-correctness.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From af289e04413504c3bdc252e08c3fe17bf7ea6dc8 Mon Sep 17 00:00:00 2001
-From: Peter Collingbourne <peter@pcc.me.uk>
-Date: Wed, 30 Mar 2016 22:05:13 +0000
-Subject: [PATCH] Cloning: Reduce complexity of debug info cloning and fix
- correctness issue.
-
-Commit r260791 contained an error in that it would introduce a cross-module
-reference in the old module. It also introduced O(N^2) complexity in the
-module cloner by requiring the entire module to be visited for each function.
-Fix both of these problems by avoiding use of the CloneDebugInfoMetadata
-function (which is only designed to do intra-module cloning) and cloning
-function-attached metadata in the same way that we clone all other metadata.
-
-Differential Revision: http://reviews.llvm.org/D18583
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264935 91177308-0d34-0410-b5e6-96231b3b80d8
-
-Alpine maintainer notes:
- - Corresponds to llvm-D17165-D18583.patch in Julia.
----
- include/llvm/Transforms/Utils/Cloning.h | 5 -----
- lib/Transforms/Utils/CloneFunction.cpp | 13 +++++++++++--
- lib/Transforms/Utils/CloneModule.cpp | 1 -
- unittests/Transforms/Utils/Cloning.cpp | 6 ++++++
- 4 files changed, 17 insertions(+), 8 deletions(-)
-
-diff --git a/include/llvm/Transforms/Utils/Cloning.h b/include/llvm/Transforms/Utils/Cloning.h
-index 0bae2bd..4f006f2 100644
---- a/include/llvm/Transforms/Utils/Cloning.h
-+++ b/include/llvm/Transforms/Utils/Cloning.h
-@@ -130,11 +130,6 @@ Function *CloneFunction(const Function *F, ValueToValueMapTy &VMap,
- bool ModuleLevelChanges,
- ClonedCodeInfo *CodeInfo = nullptr);
-
--/// Clone the module-level debug info associated with OldFunc. The cloned data
--/// will point to NewFunc instead.
--void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-- ValueToValueMapTy &VMap);
--
- /// Clone OldFunc into NewFunc, transforming the old arguments into references
- /// to VMap values. Note that if NewFunc already has basic blocks, the ones
- /// cloned into it will be added to the end of the function. This function
-diff --git a/lib/Transforms/Utils/CloneFunction.cpp b/lib/Transforms/Utils/CloneFunction.cpp
-index 05b0a17..8e1715a 100644
---- a/lib/Transforms/Utils/CloneFunction.cpp
-+++ b/lib/Transforms/Utils/CloneFunction.cpp
-@@ -119,6 +119,15 @@ void llvm::CloneFunctionInto(Function *NewFunc, const Function *OldFunc,
- .addAttributes(NewFunc->getContext(), AttributeSet::FunctionIndex,
- OldAttrs.getFnAttributes()));
-
-+ SmallVector<std::pair<unsigned, MDNode *>, 1> MDs;
-+ OldFunc->getAllMetadata(MDs);
-+ for (auto MD : MDs)
-+ NewFunc->setMetadata(
-+ MD.first,
-+ MapMetadata(MD.second, VMap,
-+ ModuleLevelChanges ? RF_None : RF_NoModuleLevelChanges,
-+ TypeMapper, Materializer));
-+
- // Loop over all of the basic blocks in the function, cloning them as
- // appropriate. Note that we save BE this way in order to handle cloning of
- // recursive functions into themselves.
-@@ -187,8 +196,8 @@ static void AddOperand(DICompileUnit *CU, DISubprogramArray SPs,
-
- // Clone the module-level debug info associated with OldFunc. The cloned data
- // will point to NewFunc instead.
--void llvm::CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-- ValueToValueMapTy &VMap) {
-+static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
-+ ValueToValueMapTy &VMap) {
- DebugInfoFinder Finder;
- Finder.processModule(*OldFunc->getParent());
-
-diff --git a/lib/Transforms/Utils/CloneModule.cpp b/lib/Transforms/Utils/CloneModule.cpp
-index 494e275..929f51b 100644
---- a/lib/Transforms/Utils/CloneModule.cpp
-+++ b/lib/Transforms/Utils/CloneModule.cpp
-@@ -138,7 +138,6 @@ std::unique_ptr<Module> llvm::CloneModule(
- VMap[&*J] = &*DestI++;
- }
-
-- CloneDebugInfoMetadata(F, &*I, VMap);
- SmallVector<ReturnInst*, 8> Returns; // Ignore returns cloned.
- CloneFunctionInto(F, &*I, VMap, /*ModuleLevelChanges=*/true, Returns);
- }
-diff --git a/unittests/Transforms/Utils/Cloning.cpp b/unittests/Transforms/Utils/Cloning.cpp
-index b761e4e..f06a20f 100644
---- a/unittests/Transforms/Utils/Cloning.cpp
-+++ b/unittests/Transforms/Utils/Cloning.cpp
-@@ -464,6 +464,12 @@ TEST_F(CloneModule, Verify) {
- EXPECT_FALSE(verifyModule(*NewM));
- }
-
-+TEST_F(CloneModule, OldModuleUnchanged) {
-+ DebugInfoFinder Finder;
-+ Finder.processModule(*OldM);
-+ EXPECT_EQ(1U, Finder.subprogram_count());
-+}
-+
- TEST_F(CloneModule, Subprogram) {
- Function *NewF = NewM->getFunction("f");
- DISubprogram *SP = NewF->getSubprogram();
diff --git a/patches/llvm_host/llvm-0008-dont-widen-metadata-on-store-to-load-forwarding.patch b/patches/llvm_host/llvm-0008-dont-widen-metadata-on-store-to-load-forwarding.patch
deleted file mode 100644
index b66584dc..00000000
--- a/patches/llvm_host/llvm-0008-dont-widen-metadata-on-store-to-load-forwarding.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 3c80c2658022201214241e9229ac35097cc476d2 Mon Sep 17 00:00:00 2001
-From: Eli Friedman <eli.friedman@gmail.com>
-Date: Thu, 16 Jun 2016 02:33:42 +0000
-Subject: [PATCH] [InstCombine] Don't widen metadata on store-to-load
- forwarding
-
-The original check for load CSE or store-to-load forwarding is wrong
-when the forwarded stored value happened to be a load.
-
-Ref https://github.com/JuliaLang/julia/issues/16894
-
-Differential Revision: http://reviews.llvm.org/D21271
-
-Patch by Yichao Yu!
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272868 91177308-0d34-0410-b5e6-96231b3b80d8
-
-Alpine maintainer notes:
- - Updated for llvm 3.8.1.
- - Corresponds to llvm-D21271-instcombine-tbaa-3.8.patch in Julia.
----
- include/llvm/Analysis/Loads.h | 3 ++-
- lib/Analysis/Loads.cpp | 5 ++++-
- .../InstCombine/InstCombineLoadStoreAlloca.cpp | 6 ++++--
- test/Transforms/InstCombine/tbaa-store-to-load.ll | 17 +++++++++++++++++
- 4 files changed, 27 insertions(+), 4 deletions(-)
- create mode 100644 test/Transforms/InstCombine/tbaa-store-to-load.ll
-
-diff --git a/include/llvm/Analysis/Loads.h b/include/llvm/Analysis/Loads.h
-index e5bd0c8..9d24b7b 100644
---- a/include/llvm/Analysis/Loads.h
-+++ b/include/llvm/Analysis/Loads.h
-@@ -82,7 +82,8 @@ Value *FindAvailableLoadedValue(LoadInst *Load, BasicBlock *ScanBB,
- BasicBlock::iterator &ScanFrom,
- unsigned MaxInstsToScan = DefMaxInstsToScan,
- AliasAnalysis *AA = nullptr,
-- AAMDNodes *AATags = nullptr);
-+ AAMDNodes *AATags = nullptr,
-+ bool *IsLoadCSE = nullptr);
-
- }
-
-diff --git a/lib/Analysis/Loads.cpp b/lib/Analysis/Loads.cpp
-index dce243c..7d3fd59 100644
---- a/lib/Analysis/Loads.cpp
-+++ b/lib/Analysis/Loads.cpp
-@@ -322,7 +322,8 @@ llvm::DefMaxInstsToScan("available-load-scan-limit", cl::init(6), cl::Hidden,
- Value *llvm::FindAvailableLoadedValue(LoadInst *Load, BasicBlock *ScanBB,
- BasicBlock::iterator &ScanFrom,
- unsigned MaxInstsToScan,
-- AliasAnalysis *AA, AAMDNodes *AATags) {
-+ AliasAnalysis *AA, AAMDNodes *AATags,
-+ bool *IsLoadCSE) {
- if (MaxInstsToScan == 0)
- MaxInstsToScan = ~0U;
-
-@@ -374,6 +375,8 @@ Value *llvm::FindAvailableLoadedValue(LoadInst *Load, BasicBlock *ScanBB,
-
- if (AATags)
- LI->getAAMetadata(*AATags);
-+ if (IsLoadCSE)
-+ *IsLoadCSE = true;
- return LI;
- }
-
-diff --git a/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-index 6a5d5a6..d312983 100644
---- a/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-+++ b/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-@@ -800,10 +800,12 @@ Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
- // separated by a few arithmetic operations.
- BasicBlock::iterator BBI(LI);
- AAMDNodes AATags;
-+ bool IsLoadCSE = false;
- if (Value *AvailableVal =
- FindAvailableLoadedValue(Op, LI.getParent(), BBI,
-- DefMaxInstsToScan, AA, &AATags)) {
-- if (LoadInst *NLI = dyn_cast<LoadInst>(AvailableVal)) {
-+ DefMaxInstsToScan, AA, &AATags, &IsLoadCSE)) {
-+ if (IsLoadCSE) {
-+ LoadInst *NLI = cast<LoadInst>(AvailableVal);
- unsigned KnownIDs[] = {
- LLVMContext::MD_tbaa, LLVMContext::MD_alias_scope,
- LLVMContext::MD_noalias, LLVMContext::MD_range,
-diff --git a/test/Transforms/InstCombine/tbaa-store-to-load.ll b/test/Transforms/InstCombine/tbaa-store-to-load.ll
-new file mode 100644
-index 0000000..707be73
---- /dev/null
-+++ b/test/Transforms/InstCombine/tbaa-store-to-load.ll
-@@ -0,0 +1,17 @@
-+; RUN: opt -S -instcombine < %s 2>&1 | FileCheck %s
-+
-+define i64 @f(i64* %p1, i64* %p2) {
-+top:
-+ ; check that the tbaa is preserved
-+ ; CHECK-LABEL: @f(
-+ ; CHECK: %v1 = load i64, i64* %p1, align 8, !tbaa !0
-+ ; CHECK: store i64 %v1, i64* %p2, align 8
-+ ; CHECK: ret i64 %v1
-+ %v1 = load i64, i64* %p1, align 8, !tbaa !0
-+ store i64 %v1, i64* %p2, align 8
-+ %v2 = load i64, i64* %p2, align 8
-+ ret i64 %v2
-+}
-+
-+!0 = !{!1, !1, i64 0}
-+!1 = !{!"load_tbaa"}
diff --git a/patches/llvm_host/llvm-0009-nm-workaround.patch b/patches/llvm_host/llvm-0009-nm-workaround.patch
deleted file mode 100644
index 5755e57f..00000000
--- a/patches/llvm_host/llvm-0009-nm-workaround.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From https://llvm.org/bugs/show_bug.cgi?id=24115
-
-diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp
-index e7ee312..b9e4779 100644
---- a/tools/llvm-nm/llvm-nm.cpp
-+++ b/tools/llvm-nm/llvm-nm.cpp
-@@ -486,7 +486,7 @@ static void sortAndPrintSymbolList(SymbolicFile &Obj, bool printName,
- std::string ArchiveName,
- std::string ArchitectureName) {
- if (!NoSort) {
-- std::function<bool(const NMSymbol &, const NMSymbol &)> Cmp;
-+ bool (*Cmp)(const NMSymbol &, const NMSymbol &);
- if (NumericSort)
- Cmp = compareSymbolAddress;
- else if (SizeSort)
-@@ -495,8 +495,9 @@ static void sortAndPrintSymbolList(SymbolicFile &Obj, bool printName,
- Cmp = compareSymbolName;
-
- if (ReverseSort)
-- Cmp = [=](const NMSymbol &A, const NMSymbol &B) { return Cmp(B, A); };
-- std::sort(SymbolList.begin(), SymbolList.end(), Cmp);
-+ std::sort(SymbolList.begin(), SymbolList.end(), [=](const NMSymbol &A, const NMSymbol &B) { return Cmp(B, A); });
-+ else
-+ std::sort(SymbolList.begin(), SymbolList.end(), Cmp);
- }
-
- if (!PrintFileName) {
diff --git a/patches/mailutils-3.15.local.patch b/patches/mailutils-3.15.local.patch
index e9dc8300..d5d8d82c 100644
--- a/patches/mailutils-3.15.local.patch
+++ b/patches/mailutils-3.15.local.patch
@@ -1,6 +1,87 @@
+diff -ru mailutils-3.15.orig/libproto/dotmail/tests/Makefile.in mailutils-3.15/libproto/dotmail/tests/Makefile.in
+--- mailutils-3.15.orig/libproto/dotmail/tests/Makefile.in 2022-04-17 20:20:43.000000000 +0200
++++ mailutils-3.15/libproto/dotmail/tests/Makefile.in 2024-03-10 22:14:03.620481168 +0100
+@@ -997,7 +997,7 @@
+ -I$(top_srcdir)\
+ -I$(top_srcdir)/libmailutils/tests
+
+-LDADD = -L$(top_builddir)/libmailutils/tests -lmu_tesh $(MU_LIB_DOTMAIL) $(MU_LIB_MAILUTILS)
++LDADD = $(top_builddir)/libmailutils/tests/libmu_tesh.la $(MU_LIB_DOTMAIL) $(MU_LIB_MAILUTILS)
+ all: all-am
+
+ .SUFFIXES:
+diff -ru mailutils-3.15.orig/libproto/maildir/tests/Makefile.in mailutils-3.15/libproto/maildir/tests/Makefile.in
+--- mailutils-3.15.orig/libproto/maildir/tests/Makefile.in 2022-04-17 20:20:43.000000000 +0200
++++ mailutils-3.15/libproto/maildir/tests/Makefile.in 2024-03-10 22:14:47.727147523 +0100
+@@ -997,7 +997,7 @@
+ -I$(top_srcdir)\
+ -I$(top_srcdir)/libmailutils/tests
+
+-LDADD = -L$(top_builddir)/libmailutils/tests -lmu_tesh $(MU_LIB_MAILDIR) $(MU_LIB_MAILUTILS)
++LDADD = $(top_builddir)/libmailutils/tests/libmu_tesh.la $(MU_LIB_MAILDIR) $(MU_LIB_MAILUTILS)
+ all: all-am
+
+ .SUFFIXES:
+diff -ru mailutils-3.15.orig/libproto/mbox/tests/Makefile.in mailutils-3.15/libproto/mbox/tests/Makefile.in
+--- mailutils-3.15.orig/libproto/mbox/tests/Makefile.in 2022-04-17 20:20:44.000000000 +0200
++++ mailutils-3.15/libproto/mbox/tests/Makefile.in 2024-03-10 22:15:24.401533471 +0100
+@@ -996,7 +996,7 @@
+ -I$(top_srcdir)\
+ -I$(top_srcdir)/libmailutils/tests
+
+-LDADD = -L$(top_builddir)/libmailutils/tests -lmu_tesh $(MU_LIB_MBOX) $(MU_LIB_MAILUTILS)
++LDADD = $(top_builddir)/libmailutils/tests/libmu_tesh.la $(MU_LIB_MBOX) $(MU_LIB_MAILUTILS)
+ all: all-am
+
+ .SUFFIXES:
+diff -ru mailutils-3.15.orig/libproto/mh/tests/Makefile.in mailutils-3.15/libproto/mh/tests/Makefile.in
+--- mailutils-3.15.orig/libproto/mh/tests/Makefile.in 2022-04-17 20:20:44.000000000 +0200
++++ mailutils-3.15/libproto/mh/tests/Makefile.in 2024-03-10 22:13:10.660481552 +0100
+@@ -996,7 +996,7 @@
+ -I$(top_srcdir)\
+ -I$(top_srcdir)/libmailutils/tests
+
+-LDADD = -L$(top_builddir)/libmailutils/tests -lmu_tesh $(MU_LIB_MH) $(MU_LIB_MAILUTILS)
++LDADD = $(top_builddir)/libmailutils/tests/libmu_tesh.la $(MU_LIB_MH) $(MU_LIB_MAILUTILS)
+ all: all-am
+
+ .SUFFIXES:
+diff -ru mailutils-3.15.orig/mda/lmtpd/Makefile.in mailutils-3.15/mda/lmtpd/Makefile.in
+--- mailutils-3.15.orig/mda/lmtpd/Makefile.in 2022-04-17 20:20:45.000000000 +0200
++++ mailutils-3.15/mda/lmtpd/Makefile.in 2024-02-17 13:45:54.067803997 +0100
+@@ -1013,6 +1013,7 @@
+ lmtpd_LDADD = \
+ ../lib/libmda.a\
+ $(top_builddir)/lib/libmuscript.a\
++ $(MU_TCPWRAP_LIBRARIES)\
+ $(MU_APP_LIBRARIES)\
+ $(MU_LIB_SIEVE)\
+ $(MU_LIB_MAILBOX)\
+@@ -1027,7 +1028,6 @@
+ @GUILE_LIBS@\
+ @PYTHON_LIBS@\
+ @DBMLIBS@\
+- $(MU_TCPWRAP_LIBRARIES)\
+ $(MU_COMMON_LIBRARIES)
+
+ all: all-recursive
+diff -ru mailutils-3.15.orig/imap4d/Makefile.in mailutils-3.15/imap4d/Makefile.in
+--- mailutils-3.15.orig/imap4d/Makefile.in 2022-04-17 20:20:36.000000000 +0200
++++ mailutils-3.15/imap4d/Makefile.in 2024-02-17 13:07:06.986978253 +0100
+@@ -1059,8 +1059,8 @@
+ util.c
+
+ imap4d_LDADD = $(MU_APP_LIBRARIES) $(MU_LIB_LOCAL_MAILBOX) \
+- $(MU_LIB_AUTH) $(MU_AUTHLIBS) $(MU_LIB_MAILUTILS) \
+- @SERV_AUTHLIBS@ $(MU_COMMON_LIBRARIES) $(MU_TCPWRAP_LIBRARIES) \
++ $(MU_TCPWRAP_LIBRARIES) $(MU_LIB_AUTH) $(MU_AUTHLIBS) \
++ @SERV_AUTHLIBS@ $(MU_COMMON_LIBRARIES) $(MU_LIB_MAILUTILS) \
+ $(am__append_1)
+ all: all-recursive
+
diff -ru mailutils-3.15.orig/lib/Makefile.in mailutils-3.15/lib/Makefile.in
--- mailutils-3.15.orig/lib/Makefile.in 2022-04-17 20:20:37.000000000 +0200
-+++ mailutils-3.15/lib/Makefile.in 2022-09-23 01:00:08.964321598 +0200
++++ mailutils-3.15/lib/Makefile.in 2024-02-17 13:08:38.956977595 +0100
@@ -1031,7 +1031,7 @@
noinst_LIBRARIES = libmuscript.a libmutcpwrap.a
libmuaux_la_SOURCES = mailcap.c manlock.c mdecode.c signal.c strexit.c \
@@ -10,3 +91,32 @@ diff -ru mailutils-3.15.orig/lib/Makefile.in mailutils-3.15/lib/Makefile.in
libmuaux_la_LDFLAGS = -version-info @VI_CURRENT@:@VI_REVISION@:@VI_AGE@
libmutcpwrap_a_SOURCES = tcpwrap.c
noinst_HEADERS = \
+diff -ru mailutils-3.15.orig/mu/libexec/Makefile.in mailutils-3.15/mu/libexec/Makefile.in
+--- mailutils-3.15.orig/mu/libexec/Makefile.in 2022-04-17 20:20:48.000000000 +0200
++++ mailutils-3.15/mu/libexec/Makefile.in 2024-02-17 13:07:57.013644547 +0100
+@@ -1195,7 +1195,7 @@
+ $(MU_APP_LIBRARIES)\
+ $(MU_LIB_MAILUTILS)\
+ @READLINE_LIBS@\
+- $(MU_COMMON_LIBRARIES)
++ $(MU_COMMON_LIBRARIES) ../../libmailutils/libmailutils.la
+
+ LDADD = $(MU_APP_LIBRARIES) $(MUTOOL_LIBRARIES_TAIL)
+ AM_CPPFLAGS = \
+diff -ru mailutils-3.15.orig/pop3d/Makefile.in mailutils-3.15/pop3d/Makefile.in
+--- mailutils-3.15.orig/pop3d/Makefile.in 2022-04-17 20:20:48.000000000 +0200
++++ mailutils-3.15/pop3d/Makefile.in 2024-02-17 13:07:39.963644684 +0100
+@@ -1033,11 +1033,11 @@
+ $(MU_LIB_LOCAL_MAILBOX)\
+ $(MU_LIB_AUTH)\
+ $(MU_AUTHLIBS) \
+- $(MU_LIB_MAILUTILS)\
+ $(MU_COMMON_LIBRARIES)\
+ $(LIBMU_DBM)\
+ @DBMLIBS@\
+- $(MU_TCPWRAP_LIBRARIES)
++ $(MU_TCPWRAP_LIBRARIES)\
++ $(MU_LIB_MAILUTILS)
+
+ popauth_SOURCES = popauth.c
+ popauth_LDADD = \
diff --git a/patches/mandoc-1.14.5_pre.local.patch b/patches/mandoc-1.14.5_pre.local.patch
deleted file mode 100644
index 1d193e6f..00000000
--- a/patches/mandoc-1.14.5_pre.local.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-diff -Nru mandoc-1.14.5.orig/configure mandoc-1.14.5/configure
---- mandoc-1.14.5.orig/configure 2020-06-02 12:36:34.215963438 +0200
-+++ mandoc-1.14.5/configure 2020-06-02 13:35:04.100931431 +0200
-@@ -41,7 +41,7 @@
- OSNAME=
- UTF8_LOCALE=
-
--CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -`
-+CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i PATH="${PATH}" make -sf -`
- CFLAGS=
- LDADD=
- LDFLAGS=
-@@ -289,8 +289,6 @@
- runtest EFTYPE EFTYPE || true
- runtest err ERR || true
- runtest getline GETLINE || true
--singletest getsubopt GETSUBOPT || \
-- runtest getsubopt GETSUBOPT -D_GNU_SOURCE || true
- runtest isblank ISBLANK || true
- runtest mkdtemp MKDTEMP || true
- runtest ntohl NTOHL || true
-@@ -299,8 +297,6 @@
- runtest pledge PLEDGE || true
- runtest sandbox_init SANDBOX_INIT || true
- runtest progname PROGNAME || true
--singletest reallocarray REALLOCARRAY || \
-- runtest reallocarray REALLOCARRAY -D_OPENBSD_SOURCE || true
- singletest recallocarray RECALLOCARRAY || \
- runtest recallocarray RECALLOCARRAY -D_OPENBSD_SOURCE || true
- runtest rewb-bsd REWB_BSD || true
-@@ -361,20 +357,6 @@
- echo 1>&3
- fi
-
--# --- nanosleep ---
--if [ -n "${LD_NANOSLEEP}" ]; then
-- runtest nanosleep NANOSLEEP "${LD_NANOSLEEP}" || true
--elif singletest nanosleep NANOSLEEP; then
-- :
--elif runtest nanosleep NANOSLEEP "-lrt"; then
-- LD_NANOSLEEP="-lrt"
--fi
--if [ "${HAVE_NANOSLEEP}" -eq 0 ]; then
-- echo "FATAL: nanosleep: no" 1>&2
-- echo "FATAL: nanosleep: no" 1>&3
-- exit 1
--fi
--
- if [ ${BUILD_CATMAN} -gt 0 ]; then
- # --- recvmsg ---
- if [ -n "${LD_RECVMSG}" ]; then
-diff -Nru mandoc-1.14.5.orig/configure.local mandoc-1.14.5/configure.local
---- mandoc-1.14.5.orig/configure.local 1970-01-01 01:00:00.000000000 +0100
-+++ mandoc-1.14.5/configure.local 2020-06-02 13:35:25.328930766 +0200
-@@ -0,0 +1,54 @@
-+PREFIX=
-+MANDIR=/share/man
-+LIBDIR=/lib
-+UTF8_LOCALE="en_US.UTF-8"
-+MANPATH_DEFAULT="/share/man"
-+LN="ln -sf"
-+
-+# no gnu man, so this is fine.
-+BINM_MAN=man
-+BINM_APROPOS=apropos
-+BINM_WHATIS=whatis
-+BINM_MAKEWHATIS=makewhatis
-+BINM_SOELIM=soelim
-+MANM_MANCONF="man.conf"
-+
-+# *sigh*
-+HAVE_DIRENT_NAMLEN=0
-+HAVE_ISBLANK=1
-+HAVE_ENDIAN=1
-+HAVE_EFTYPE=0
-+HAVE_ERR=1
-+HAVE_FTS=1
-+HAVE_FTS_COMPARE_CONST=1
-+HAVE_GETLINE=1
-+HAVE_GETSUBOPT=1
-+HAVE_ISBLANK=1
-+HAVE_LESS_T=0
-+HAVE_MKDTEMP=1
-+HAVE_NTOHL=1
-+HAVE_O_DIRECTORY=1
-+HAVE_OHASH=0
-+HAVE_PATH_MAX=1
-+HAVE_PLEDGE=0
-+HAVE_PROGNAME=0
-+HAVE_REALLOCARRAY=0
-+HAVE_RECALLOCARRAY=0
-+HAVE_REWB_BSD=0
-+HAVE_REWB_SYSV=1
-+HAVE_STRCASESTR=1
-+HAVE_STRINGLIST=0
-+HAVE_STRLCAT=1
-+HAVE_STRLCPY=1
-+HAVE_STRPTIME=1
-+HAVE_STRSEP=1
-+HAVE_STRTONUM=0
-+HAVE_SYS_ENDIAN=0
-+HAVE_VASPRINTF=1
-+HAVE_WCHAR=1
-+HAVE_STRNDUP=1
-+HAVE_SANDBOX_INIT=0
-+
-+# *sigh x2*
-+OSENUM=MANDOC_OS_OTHER
-+OSNAME="Midipix"
diff --git a/patches/mandoc-1.14.6.local.patch b/patches/mandoc-1.14.6.local.patch
new file mode 100644
index 00000000..ebd3dace
--- /dev/null
+++ b/patches/mandoc-1.14.6.local.patch
@@ -0,0 +1,109 @@
+diff -ru mandoc-1.14.6.orig/Makefile mandoc-1.14.6/Makefile
+--- mandoc-1.14.6.orig/Makefile 2021-09-23 20:03:23.000000000 +0200
++++ mandoc-1.14.6/Makefile 2024-02-26 15:20:48.758788836 +0100
+@@ -369,11 +369,40 @@
+
+ # === USER CONFIGURATION ===============================================
+
+-include Makefile.local
++MANDOC_COBJS = compat_fts.o compat_ohash.o compat_progname.o compat_recallocarray.o compat_strtonum.o
++SOELIM_COBJS = compat_progname.o compat_stringlist.o
++PREFIX =
++BINDIR = /bin
++SBINDIR = /sbin
++BIN_FROM_SBIN = ../bin
++INCLUDEDIR = /include/mandoc
++LIBDIR = /lib/mandoc
++MANDIR = /man
++WWWPREFIX = /var/www
++HTDOCDIR = /var/www/htdocs
++CGIBINDIR = /var/www/cgi-bin
++BINM_APROPOS = apropos
++BINM_CATMAN = catman
++BINM_MAKEWHATIS = makewhatis
++BINM_MAN = man
++BINM_SOELIM = soelim
++BINM_WHATIS = whatis
++MANM_MAN = man
++MANM_MANCONF = man.conf
++MANM_MDOC = mdoc
++MANM_ROFF = roff
++MANM_EQN = eqn
++MANM_TBL = tbl
++INSTALL = install
++INSTALL_PROGRAM = install -m 0555
++INSTALL_LIB = install -m 0444
++INSTALL_MAN = install -m 0444
++INSTALL_DATA = install -m 0444
++LN = ln -f
+
+ # === DEPENDENCY HANDLING ==============================================
+
+-all: mandoc man demandoc soelim $(BUILD_TARGETS) Makefile.local
++all: mandoc man demandoc soelim $(BUILD_TARGETS)
+
+ install: base-install $(INSTALL_TARGETS)
+
+diff -ruN mandoc-1.14.6.orig/config.h mandoc-1.14.6/config.h
+--- mandoc-1.14.6.orig/config.h 1970-01-01 01:00:00.000000000 +0100
++++ mandoc-1.14.6/config.h 2024-02-26 14:41:39.744045181 +0100
+@@ -0,0 +1,59 @@
++#ifdef __cplusplus
++#error "Do not use C++. See the INSTALL file."
++#endif
++
++#include <sys/types.h>
++
++#define MAN_CONF_FILE "/etc/man.conf"
++#define MANPATH_BASE "/usr/share/man:/usr/X11R6/man"
++#define MANPATH_DEFAULT "/share/man"
++#define OSENUM MANDOC_OS_OTHER
++#define OSNAME "Midipix"
++#define UTF8_LOCALE "en_US.UTF-8"
++#define EFTYPE EINVAL
++
++#define HAVE_DIRENT_NAMLEN 0
++#define HAVE_ENDIAN 1
++#define HAVE_ERR 1
++#define HAVE_FTS 1
++#define HAVE_FTS_COMPARE_CONST 0
++#define HAVE_GETLINE 1
++#define HAVE_GETSUBOPT 1
++#define HAVE_ISBLANK 1
++#define HAVE_LESS_T 0
++#define HAVE_MKDTEMP 1
++#define HAVE_MKSTEMPS 1
++#define HAVE_NTOHL 1
++#define HAVE_PLEDGE 0
++#define HAVE_PROGNAME 0
++#define HAVE_REALLOCARRAY 1
++#define HAVE_RECALLOCARRAY 0
++#define HAVE_REWB_BSD 0
++#define HAVE_REWB_SYSV 1
++#define HAVE_SANDBOX_INIT 0
++#define HAVE_STRCASESTR 1
++#define HAVE_STRINGLIST 0
++#define HAVE_STRLCAT 1
++#define HAVE_STRLCPY 1
++#define HAVE_STRNDUP 1
++#define HAVE_STRPTIME 1
++#define HAVE_STRSEP 1
++#define HAVE_STRTONUM 0
++#define HAVE_SYS_ENDIAN 0
++#define HAVE_VASPRINTF 1
++#define HAVE_WCHAR 1
++#define HAVE_OHASH 0
++#define NEED_XPG4_2 0
++
++#define BINM_APROPOS "apropos"
++#define BINM_CATMAN "catman"
++#define BINM_MAKEWHATIS "makewhatis"
++#define BINM_MAN "man"
++#define BINM_SOELIM "soelim"
++#define BINM_WHATIS "whatis"
++#define BINM_PAGER "less"
++
++extern const char *getprogname(void);
++extern void setprogname(const char *);
++extern void *recallocarray(void *, size_t, size_t, size_t);
++extern long long strtonum(const char *, long long, long long, const char **);
diff --git a/patches/mesa-18.0.0.local.patch b/patches/mesa-18.0.0.local.patch
deleted file mode 100644
index e5278bda..00000000
--- a/patches/mesa-18.0.0.local.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -ru mesa-18.0.0.orig/src/gallium/auxiliary/os/os_misc.c mesa-18.0.0/src/gallium/auxiliary/os/os_misc.c
---- mesa-18.0.0.orig/src/gallium/auxiliary/os/os_misc.c 2018-03-27 19:35:14.000000000 +0200
-+++ mesa-18.0.0/src/gallium/auxiliary/os/os_misc.c 2018-03-31 17:16:02.843416010 +0200
-@@ -47,7 +47,7 @@
- #endif
-
-
--#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS)
-+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_MIDIPIX)
- # include <unistd.h>
- #elif defined(PIPE_OS_APPLE) || defined(PIPE_OS_BSD)
- # include <sys/sysctl.h>
-@@ -124,7 +124,7 @@
- bool
- os_get_total_physical_memory(uint64_t *size)
- {
--#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS)
-+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_MIDIPIX)
- const long phys_pages = sysconf(_SC_PHYS_PAGES);
- const long page_size = sysconf(_SC_PAGE_SIZE);
-
-diff -ru mesa-18.0.0.orig/src/gallium/auxiliary/rtasm/rtasm_x86sse.h mesa-18.0.0/src/gallium/auxiliary/rtasm/rtasm_x86sse.h
---- mesa-18.0.0.orig/src/gallium/auxiliary/rtasm/rtasm_x86sse.h 2018-03-27 19:35:14.000000000 +0200
-+++ mesa-18.0.0/src/gallium/auxiliary/rtasm/rtasm_x86sse.h 2018-03-31 17:12:28.412711185 +0200
-@@ -140,7 +140,7 @@
- {
- #ifdef PIPE_ARCH_X86
- return X86_32;
--#elif (defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_WINDOWS)) && defined(PIPE_ARCH_X86_64)
-+#elif (defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_WINDOWS) || defined(PIPE_OS_MIDIPIX)) && defined(PIPE_ARCH_X86_64)
- return X86_64_WIN64_ABI;
- #elif defined(PIPE_ARCH_X86_64)
- return X86_64_STD_ABI;
-diff -ru mesa-18.0.0.orig/src/gallium/auxiliary/util/u_network.c mesa-18.0.0/src/gallium/auxiliary/util/u_network.c
---- mesa-18.0.0.orig/src/gallium/auxiliary/util/u_network.c 2018-03-27 19:35:14.000000000 +0200
-+++ mesa-18.0.0/src/gallium/auxiliary/util/u_network.c 2018-03-31 17:14:07.064114855 +0200
-@@ -10,7 +10,7 @@
- # include <windows.h>
- # include <ws2tcpip.h>
- #elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || \
-- defined(PIPE_OS_APPLE) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS)
-+ defined(PIPE_OS_APPLE) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_MIDIPIX)
- # include <sys/socket.h>
- # include <netinet/in.h>
- # include <unistd.h>
-diff -ru mesa-18.0.0.orig/src/gallium/include/pipe/p_config.h mesa-18.0.0/src/gallium/include/pipe/p_config.h
---- mesa-18.0.0.orig/src/gallium/include/pipe/p_config.h 2018-03-27 19:35:15.000000000 +0200
-+++ mesa-18.0.0/src/gallium/include/pipe/p_config.h 2018-03-31 17:16:40.779187231 +0200
-@@ -213,6 +213,11 @@
- #define PIPE_OS_UNIX
- #endif
-
-+#if defined(__midipix__)
-+#define PIPE_OS_MIDIPIX
-+#define PIPE_OS_UNIX
-+#endif
-+
- /*
- * Try to auto-detect the subsystem.
- *
-diff -ru mesa-18.0.0.orig/src/util/xmlconfig.c mesa-18.0.0/src/util/xmlconfig.c
---- mesa-18.0.0.orig/src/util/xmlconfig.c 2018-03-27 19:35:15.000000000 +0200
-+++ mesa-18.0.0/src/util/xmlconfig.c 2018-03-31 17:36:30.362136400 +0200
-@@ -40,7 +40,7 @@
-
- #undef GET_PROGRAM_NAME
-
--#if (defined(__GNU_LIBRARY__) || defined(__GLIBC__)) && !defined(__UCLIBC__)
-+#if (defined(__GNU_LIBRARY__) || defined(__GLIBC__) || defined(__midipix__)) && !defined(__UCLIBC__)
- # if !defined(__GLIBC__) || (__GLIBC__ < 2)
- /* These aren't declared in any libc5 header */
- extern char *program_invocation_name, *program_invocation_short_name;
diff --git a/patches/moe-1.12_pre.local.patch b/patches/moe-1.12_pre.local.patch
deleted file mode 100644
index b5abbc7a..00000000
--- a/patches/moe-1.12_pre.local.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ru moe-1.12.orig/configure moe-1.12/configure
---- moe-1.12.orig/configure 2022-01-20 17:28:29.000000000 +0100
-+++ moe-1.12/configure 2022-02-03 23:41:43.452057383 +0100
-@@ -23,9 +23,9 @@
- sysconfdir='$(prefix)/etc'
- CXX=g++
- CPPFLAGS=
--CXXFLAGS='-Wall -W -O2'
-+CXXFLAGS ?= '-Wall -W -O2'
- LDFLAGS=
--LIBS=-lncurses
-+LIBS='-lncurses -ltinfo'
-
- # checking whether we are using GNU C++.
- /bin/sh -c "${CXX} --version" > /dev/null 2>&1 || { CXX=c++ ; CXXFLAGS=-O2 ; }
diff --git a/patches/moe-1.13_pre.local.patch b/patches/moe-1.13_pre.local.patch
new file mode 100644
index 00000000..b764aa21
--- /dev/null
+++ b/patches/moe-1.13_pre.local.patch
@@ -0,0 +1,14 @@
+diff -ru moe-1.13.orig/configure moe-1.13/configure
+--- moe-1.13.orig/configure 2023-02-12 02:02:08.000000000 +0100
++++ moe-1.13/configure 2023-02-27 15:49:22.285591646 +0100
+@@ -23,9 +23,8 @@
+ sysconfdir='$(prefix)/etc'
+ CXX=g++
+ CPPFLAGS=
+-CXXFLAGS='-Wall -W -O2'
+ LDFLAGS=
+-LIBS=-lncurses
++LIBS='-lncurses -ltinfo'
+ MAKEINFO=makeinfo
+
+ # checking whether we are using GNU C++.
diff --git a/patches/musl_compat.local.patch b/patches/musl_compat.local.patch
new file mode 100644
index 00000000..1e4d6af3
--- /dev/null
+++ b/patches/musl_compat.local.patch
@@ -0,0 +1,116 @@
+diff --git a/bin/iconv.c b/bin/iconv.c
+deleted file mode 100644
+index f5d5ce2..0000000
+--- a/bin/iconv.c
++++ /dev/null
+@@ -1,110 +0,0 @@
+-/*
+- * iconv.c
+- * Implementation of SUSv4 XCU iconv utility
+- * Copyright © 2011 Rich Felker
+- * Licensed under the terms of the GNU General Public License, v2 or later
+- */
+-
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <iconv.h>
+-#include <locale.h>
+-#include <langinfo.h>
+-#include <unistd.h>
+-#include <errno.h>
+-#include <string.h>
+-
+-int main(int argc, char **argv)
+-{
+- const char *from=0, *to=0;
+- int b;
+- iconv_t cd;
+- char buf[BUFSIZ];
+- char outbuf[BUFSIZ*4];
+- char *in, *out;
+- size_t inb;
+- size_t l;
+- size_t unitsize=0;
+- int err=0;
+- FILE *f;
+-
+- while ((b = getopt(argc, argv, "f:t:csl")) != EOF) switch(b) {
+- case 'l':
+- puts("UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF32-LE, UCS-2BE, UCS-2LE, WCHAR_T,\n"
+- "US_ASCII, ISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5,\n"
+- "ISO8859-6, ISO8859-7, ...");
+- exit(0);
+- case 'c': case 's': break;
+- case 'f': from=optarg; break;
+- case 't': to=optarg; break;
+- default: exit(1);
+- }
+-
+- if (!from || !to) {
+- setlocale(LC_CTYPE, "");
+- if (!to) to = nl_langinfo(CODESET);
+- if (!from) from = nl_langinfo(CODESET);
+- }
+- cd = iconv_open(to, from);
+- if (cd == (iconv_t)-1) {
+- if (iconv_open(to, "WCHAR_T") == (iconv_t)-1)
+- fprintf(stderr, "iconv: destination charset %s: ", to);
+- else
+- fprintf(stderr, "iconv: source charset %s: ", from);
+- perror("");
+- exit(1);
+- }
+- if (optind == argc) argv[argc++] = "-";
+-
+- for (; optind < argc; optind++) {
+- if (argv[optind][0]=='-' && !argv[optind][1]) {
+- f = stdin;
+- argv[optind] = "(stdin)";
+- } else if (!(f = fopen(argv[optind], "rb"))) {
+- fprintf(stderr, "iconv: %s: ", argv[optind]);
+- perror("");
+- err = 1;
+- continue;
+- }
+- inb = 0;
+- for (;;) {
+- in = buf;
+- out = outbuf;
+- l = fread(buf+inb, 1, sizeof(buf)-inb, f);
+- inb += l;
+- if (!inb) break;
+- if (iconv(cd, &in, &inb, &out, (size_t [1]){sizeof outbuf})==-1
+- && errno == EILSEQ) {
+- if (!unitsize) {
+- wchar_t wc='0';
+- char dummy[4], *dummyp=dummy;
+- iconv_t cd2 = iconv_open(from, "WCHAR_T");
+- if (cd == (iconv_t)-1) {
+- unitsize = 1;
+- } else {
+- iconv(cd2,
+- (char *[1]){(char *)&wc},
+- (size_t[1]){1},
+- &dummyp, (size_t[1]){4});
+- unitsize = dummyp-dummy;
+- if (!unitsize) unitsize=1;
+- }
+- }
+- inb-=unitsize;
+- in+=unitsize;
+- }
+- if (inb && !l && errno==EINVAL) break;
+- if (out>outbuf && !fwrite(outbuf, out-outbuf, 1, stdout)) {
+- perror("iconv: write error");
+- exit(1);
+- }
+- if (inb) memmove(buf, in, inb);
+- }
+- if (ferror(f)) {
+- fprintf(stderr, "iconv: %s: ", argv[optind]);
+- perror("");
+- err = 1;
+- }
+- }
+- return err;
+-}
diff --git a/patches/nasm-2.14.02.local.patch b/patches/nasm-2.14.02.local.patch
deleted file mode 120000
index 0a3acf14..00000000
--- a/patches/nasm-2.14.02.local.patch
+++ /dev/null
@@ -1 +0,0 @@
-nasm_host-2.14.02.local.patch \ No newline at end of file
diff --git a/patches/nasm-2.16.01.local.patch b/patches/nasm-2.16.01.local.patch
new file mode 120000
index 00000000..b2cff0eb
--- /dev/null
+++ b/patches/nasm-2.16.01.local.patch
@@ -0,0 +1 @@
+nasm_host-2.16.01.local.patch \ No newline at end of file
diff --git a/patches/nasm_cross-2.16.01.local.patch b/patches/nasm_cross-2.16.01.local.patch
new file mode 120000
index 00000000..b2cff0eb
--- /dev/null
+++ b/patches/nasm_cross-2.16.01.local.patch
@@ -0,0 +1 @@
+nasm_host-2.16.01.local.patch \ No newline at end of file
diff --git a/patches/nasm_host-2.14.02.local.patch b/patches/nasm_host-2.16.01.local.patch
index defc369b..5e61a289 100644
--- a/patches/nasm_host-2.14.02.local.patch
+++ b/patches/nasm_host-2.16.01.local.patch
@@ -1,6 +1,8 @@
---- nasm-2.14.02/output/outcoff.c.orig 2018-12-26 13:44:06.000000000 +0000
-+++ nasm-2.14.02/output/outcoff.c 2019-01-20 13:18:06.240000000 +0000
-@@ -701,6 +701,7 @@
+diff --git nasm-2.16.01/output/outcoff.c.orig nasm-2.16.01/output/outcoff.c
+index c2b4eb6..fc57c1e 100644
+--- nasm-2.16.01/output/outcoff.c.orig
++++ nasm-2.16.01/output/outcoff.c
+@@ -820,6 +820,7 @@ static void coff_sect_write(struct coff_Section *sect,
sect->len += len;
}
@@ -8,7 +10,7 @@
typedef struct tagString {
struct tagString *next;
int len;
-@@ -765,6 +766,98 @@
+@@ -884,6 +885,98 @@ static void BuildExportTable(STRING **rvp)
*rvp = NULL;
}
@@ -105,10 +107,10 @@
+}
+#endif
- static enum directive_result
- coff_directives(enum directive directive, char *value, int pass)
-@@ -793,7 +886,9 @@
- nasm_error(ERR_NONFATAL, "unrecognized export qualifier `%s'", q);
+ static void coff_defcomdatname(char *name, int32_t segment)
+ {
+@@ -924,7 +1017,9 @@ coff_directives(enum directive directive, char *value)
+ nasm_nonfatal("unrecognized export qualifier `%s'", q);
return DIRR_ERROR;
}
+#ifndef COFF_MIDIPIX
@@ -117,7 +119,7 @@
return DIRR_OK;
}
case D_SAFESEH:
-@@ -888,8 +983,12 @@
+@@ -1039,8 +1134,12 @@ static void coff_write(void)
int32_t pos, sympos, vsize;
int i;
@@ -130,7 +132,7 @@
if (win32) {
/* add default value for @feat.00, this allows to 'link /safeseh' */
-@@ -1086,7 +1185,10 @@
+@@ -1278,7 +1377,10 @@ static void coff_write_symbols(void)
memset(filename, 0, 18); /* useful zeroed buffer */
for (i = 0; i < (uint32_t) coff_nsects; i++) {
@@ -141,4 +143,4 @@
+ coff_symbol(NULL, coff_sects[i]->namepos, 0L, i + 1, 0, 3, 1);
fwriteint32_t(coff_sects[i]->len, ofile);
fwriteint16_t(coff_sects[i]->nrelocs,ofile);
- nasm_write(filename, 12, ofile);
+ if (coff_sects[i]->flags & IMAGE_SCN_LNK_COMDAT) {
diff --git a/patches/ncdu-1.18.local.patch b/patches/ncdu-1.18.local.patch
new file mode 100644
index 00000000..72f20723
--- /dev/null
+++ b/patches/ncdu-1.18.local.patch
@@ -0,0 +1,62 @@
+diff -ru ncdu-1.18.orig/src/dir.h ncdu-1.18/src/dir.h
+--- ncdu-1.18.orig/src/dir.h 2022-04-28 11:16:45.000000000 +0200
++++ ncdu-1.18/src/dir.h 2022-12-23 15:57:39.201824078 +0100
+@@ -113,7 +113,7 @@
+ extern int dir_import_active;
+ int dir_import_init(const char *fn);
+
+-#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS
++#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS || __midipix__
+ extern int exclude_kernfs;
+ #endif
+
+diff -ru ncdu-1.18.orig/src/dir_scan.c ncdu-1.18/src/dir_scan.c
+--- ncdu-1.18.orig/src/dir_scan.c 2022-04-28 11:16:57.000000000 +0200
++++ ncdu-1.18/src/dir_scan.c 2022-12-23 15:57:10.769823906 +0100
+@@ -38,10 +38,12 @@
+ #include <sys/attr.h>
+ #endif
+
+-#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS
++#if HAVE_SYS_STATFS_H && HAVE_STATFS
+ #include <sys/statfs.h>
++#if HAVE_LINUX_MAGIC_H
+ #include <linux/magic.h>
+ #endif
++#endif
+
+
+ /* set S_BLKSIZE if not defined already in sys/stat.h */
+@@ -60,7 +62,7 @@
+ static unsigned int buf_nlink;
+
+
+-#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS
++#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS || __midipix__
+ int exclude_kernfs; /* Exclude Linux pseudo filesystems */
+
+ static int is_kernfs(unsigned long type) {
+diff -ru ncdu-1.18.orig/src/main.c ncdu-1.18/src/main.c
+--- ncdu-1.18.orig/src/main.c 2022-11-30 11:30:55.000000000 +0100
++++ ncdu-1.18/src/main.c 2022-12-23 15:58:20.801824331 +0100
+@@ -291,7 +291,7 @@
+ printf(" -X, --exclude-from FILE Exclude files that match any pattern in FILE\n");
+ printf(" -L, --follow-symlinks Follow symbolic links (excluding directories)\n");
+ printf(" --exclude-caches Exclude directories containing CACHEDIR.TAG\n");
+-#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS
++#if HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS || __midipix__
+ printf(" --exclude-kernfs Exclude Linux pseudo filesystems (procfs,sysfs,cgroup,...)\n");
+ #endif
+ #if HAVE_SYS_ATTR_H && HAVE_GETATTRLIST && HAVE_DECL_ATTR_CMNEXT_NOFIRMLINKPATH
+@@ -395,9 +395,11 @@
+ else if(!arg_option()) die("Unknown option '%s'.\n", argparser_state.last);
+ }
+
++#ifndef __midipix__
+ #if !(HAVE_LINUX_MAGIC_H && HAVE_SYS_STATFS_H && HAVE_STATFS)
+ if(exclude_kernfs) die("The --exclude-kernfs flag is currently only supported on Linux.\n");
+ #endif
++#endif
+
+ if(export) {
+ if(dir_export_init(export)) die("Can't open %s: %s\n", export, strerror(errno));
diff --git a/patches/ncurses-6.3.local.patch b/patches/ncurses-6.3.local.patch
index d77d715a..5dfd9b6a 100644
--- a/patches/ncurses-6.3.local.patch
+++ b/patches/ncurses-6.3.local.patch
@@ -19,10 +19,9 @@ diff -ru ncurses-6.3.orig/configure ncurses-6.3/configure
if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
-diff -ru ncurses-6.3.orig/misc/gen-pkgconfig.in ncurses-6.3/misc/gen-pkgconfig.in
---- ncurses-6.3.orig/misc/gen-pkgconfig.in 2021-08-07 23:36:33.000000000 +0200
-+++ ncurses-6.3/misc/gen-pkgconfig.in 2021-11-17 20:35:45.111876569 +0100
-@@ -71,17 +71,7 @@
+--- ncurses-6.3/misc/gen-pkgconfig.in.orig 2021-08-07 23:36:33.000000000 +0200
++++ ncurses-6.3/misc/gen-pkgconfig.in 2022-12-27 09:17:07.295020120 +0100
+@@ -71,19 +71,9 @@
MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
@@ -39,8 +38,11 @@ diff -ru ncurses-6.3.orig/misc/gen-pkgconfig.in ncurses-6.3/misc/gen-pkgconfig.i
-
+CFLAGS='-I${includedir}'
lib_flags=
- for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
+-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
++for opt in @EXTRA_PKG_LDFLAGS@ @LIBS@
do
+ case $opt in
+ -l*) # LIBS is handled specially below
diff -ru ncurses-6.3.orig/misc/Makefile.in ncurses-6.3/misc/Makefile.in
--- ncurses-6.3.orig/misc/Makefile.in 2021-07-03 21:07:50.000000000 +0200
+++ ncurses-6.3/misc/Makefile.in 2021-11-17 20:44:37.633501552 +0100
@@ -116,3 +118,14 @@ diff -ru ncurses-6.3.orig/misc/run_tic.in ncurses-6.3/misc/run_tic.in
: ${source:=@TERMINFO_SRC@}
: ${LN_S:="@LN_S@"}
: ${cross_compiling:=no}
+--- ncurses-6.3/misc/ncurses-config.in.orig 2021-08-07 23:36:14.000000000 +0200
++++ ncurses-6.3/misc/ncurses-config.in 2022-12-27 10:22:34.532835499 +0100
+@@ -101,7 +101,7 @@
+ # There is no portable way to find the list of standard library directories.
+ # Require a POSIX shell anyway, to keep this simple.
+ lib_flags=
+-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS
++for opt in @EXTRA_PKG_LDFLAGS@ $LIBS
+ do
+ case $opt in
+ -specs*) # ignore linker specs-files which were used to build library
diff --git a/patches/nettle-3.7.3.local.patch b/patches/nettle-3.8.1.local.patch
index 87596831..08e0560b 100644
--- a/patches/nettle-3.7.3.local.patch
+++ b/patches/nettle-3.8.1.local.patch
@@ -1,3 +1,287 @@
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes128-decrypt-2.asm nettle-3.8.1/x86_64/fat/aes128-decrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes128-decrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes128-decrypt-2.asm 2023-02-17 13:40:13.492569768 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes128-decrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes128_decrypt_aesni,"r"
++ .global __imp__nettle_aes128_decrypt_aesni
++__imp__nettle_aes128_decrypt_aesni:
++ .quad _nettle_aes128_decrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes128-encrypt-2.asm nettle-3.8.1/x86_64/fat/aes128-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes128-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes128-encrypt-2.asm 2023-02-17 13:39:44.528569389 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes128-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes128_encrypt_aesni,"r"
++ .global __imp__nettle_aes128_encrypt_aesni
++__imp__nettle_aes128_encrypt_aesni:
++ .quad _nettle_aes128_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes192-decrypt-2.asm nettle-3.8.1/x86_64/fat/aes192-decrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes192-decrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes192-decrypt-2.asm 2023-02-17 13:41:00.400570382 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes192-decrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes192_decrypt_aesni,"r"
++ .global __imp__nettle_aes192_decrypt_aesni
++__imp__nettle_aes192_decrypt_aesni:
++ .quad _nettle_aes192_decrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes192-encrypt-2.asm nettle-3.8.1/x86_64/fat/aes192-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes192-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes192-encrypt-2.asm 2023-02-17 13:40:37.196570078 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes192-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes192_encrypt_aesni,"r"
++ .global __imp__nettle_aes192_encrypt_aesni
++__imp__nettle_aes192_encrypt_aesni:
++ .quad _nettle_aes192_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes256-decrypt-2.asm nettle-3.8.1/x86_64/fat/aes256-decrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes256-decrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes256-decrypt-2.asm 2023-02-17 13:44:55.409072440 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes256-decrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes256_decrypt_aesni,"r"
++ .global __imp__nettle_aes256_decrypt_aesni
++__imp__nettle_aes256_decrypt_aesni:
++ .quad _nettle_aes256_decrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/aes256-encrypt-2.asm nettle-3.8.1/x86_64/fat/aes256-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/aes256-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/aes256-encrypt-2.asm 2023-02-17 13:44:31.165072123 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/aes256-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_aes256_encrypt_aesni,"r"
++ .global __imp__nettle_aes256_encrypt_aesni
++__imp__nettle_aes256_encrypt_aesni:
++ .quad _nettle_aes256_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/cbc-aes128-encrypt-2.asm nettle-3.8.1/x86_64/fat/cbc-aes128-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/cbc-aes128-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/cbc-aes128-encrypt-2.asm 2023-02-17 13:45:43.369073067 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/cbc-aes128-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_cbc_aes128_encrypt_aesni,"r"
++ .global __imp__nettle_cbc_aes128_encrypt_aesni
++__imp__nettle_cbc_aes128_encrypt_aesni:
++ .quad _nettle_cbc_aes128_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/cbc-aes192-encrypt-2.asm nettle-3.8.1/x86_64/fat/cbc-aes192-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/cbc-aes192-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/cbc-aes192-encrypt-2.asm 2023-02-17 13:46:09.457073408 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/cbc-aes192-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_cbc_aes192_encrypt_aesni,"r"
++ .global __imp__nettle_cbc_aes192_encrypt_aesni
++__imp__nettle_cbc_aes192_encrypt_aesni:
++ .quad _nettle_cbc_aes192_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/cbc-aes256-encrypt-2.asm nettle-3.8.1/x86_64/fat/cbc-aes256-encrypt-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/cbc-aes256-encrypt-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/cbc-aes256-encrypt-2.asm 2023-02-17 13:46:31.545073697 +0100
+@@ -34,3 +34,11 @@
+
+ define(`fat_transform', `_$1_aesni')
+ include_src(`x86_64/aesni/cbc-aes256-encrypt.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_cbc_aes256_encrypt_aesni,"r"
++ .global __imp__nettle_cbc_aes256_encrypt_aesni
++__imp__nettle_cbc_aes256_encrypt_aesni:
++ .quad _nettle_cbc_aes256_encrypt_aesni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/sha1-compress-2.asm nettle-3.8.1/x86_64/fat/sha1-compress-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/sha1-compress-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/sha1-compress-2.asm 2023-02-17 12:37:28.782267505 +0100
+@@ -32,3 +32,11 @@
+
+ define(`fat_transform', `_$1_sha_ni')
+ include_src(`x86_64/sha_ni/sha1-compress.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_sha1_compress_sha_ni,"r"
++ .global __imp__nettle_sha1_compress_sha_ni
++__imp__nettle_sha1_compress_sha_ni:
++ .quad _nettle_sha1_compress_sha_ni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/sha1-compress.asm nettle-3.8.1/x86_64/fat/sha1-compress.asm
+--- nettle-3.8.1.orig/x86_64/fat/sha1-compress.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/sha1-compress.asm 2023-02-17 12:37:57.546267881 +0100
+@@ -32,3 +32,11 @@
+
+ define(`fat_transform', `_$1_x86_64')
+ include_src(`x86_64/sha1-compress.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_sha1_compress_x86_64,"r"
++ .global __imp__nettle_sha1_compress_x86_64
++__imp__nettle_sha1_compress_x86_64:
++ .quad _nettle_sha1_compress_x86_64
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/ghash-set-key-2.asm nettle-3.8.1/x86_64/fat/ghash-set-key-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/ghash-set-key-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/ghash-set-key-2.asm 2023-02-17 12:32:21.594437764 +0100
+@@ -35,3 +35,11 @@
+
+ define(`fat_transform', `$1_pclmul')
+ include_src(`x86_64/pclmul/ghash-set-key.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_ghash_set_key_pclmul,"r"
++ .global __imp__nettle_ghash_set_key_pclmul
++__imp__nettle_ghash_set_key_pclmul:
++ .quad _nettle_ghash_set_key_pclmul
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/sha256-compress-2.asm nettle-3.8.1/x86_64/fat/sha256-compress-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/sha256-compress-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/sha256-compress-2.asm 2023-02-17 12:35:29.438265944 +0100
+@@ -32,3 +32,11 @@
+
+ define(`fat_transform', `$1_sha_ni')
+ include_src(`x86_64/sha_ni/sha256-compress.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_sha256_compress_sha_ni,"r"
++ .global __imp__nettle_sha256_compress_sha_ni
++__imp__nettle_sha256_compress_sha_ni:
++ .quad _nettle_sha256_compress_sha_ni
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/sha256-compress.asm nettle-3.8.1/x86_64/fat/sha256-compress.asm
+--- nettle-3.8.1.orig/x86_64/fat/sha256-compress.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/sha256-compress.asm 2023-02-17 12:34:02.826264811 +0100
+@@ -32,3 +32,11 @@
+
+ define(`fat_transform', `$1_x86_64')
+ include_src(`x86_64/sha256-compress.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_sha256_compress_x86_64,"r"
++ .global __imp__nettle_sha256_compress_x86_64
++__imp__nettle_sha256_compress_x86_64:
++ .quad _nettle_sha256_compress_x86_64
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/ghash-update-2.asm nettle-3.8.1/x86_64/fat/ghash-update-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/ghash-update-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/ghash-update-2.asm 2023-02-17 12:29:12.138435285 +0100
+@@ -35,3 +35,11 @@
+
+ define(`fat_transform', `$1_pclmul')
+ include_src(`x86_64/pclmul/ghash-update.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_ghash_update_pclmul,"r"
++ .global __imp__nettle_ghash_update_pclmul
++__imp__nettle_ghash_update_pclmul:
++ .quad _nettle_ghash_update_pclmul
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/memxor-2.asm nettle-3.8.1/x86_64/fat/memxor-2.asm
+--- nettle-3.8.1.orig/x86_64/fat/memxor-2.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/memxor-2.asm 2023-02-17 12:27:46.702434168 +0100
+@@ -34,3 +34,11 @@
+ define(`fat_transform', `_$1_sse2')
+ define(`USE_SSE2', `yes')
+ include_src(`x86_64/memxor.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_memxor_sse2,"r"
++ .global __imp__nettle_memxor_sse2
++__imp__nettle_memxor_sse2:
++ .quad _nettle_memxor_sse2
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/memxor.asm nettle-3.8.1/x86_64/fat/memxor.asm
+--- nettle-3.8.1.orig/x86_64/fat/memxor.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/memxor.asm 2023-02-17 12:25:20.797229091 +0100
+@@ -33,3 +33,11 @@
+
+ define(`fat_transform', `_$1_x86_64')
+ include_src(`x86_64/memxor.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_memxor_x86_64,"r"
++ .global __imp__nettle_memxor_x86_64
++__imp__nettle_memxor_x86_64:
++ .quad _nettle_memxor_x86_64
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/cpuid.asm nettle-3.8.1/x86_64/fat/cpuid.asm
+--- nettle-3.8.1.orig/x86_64/fat/cpuid.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/cpuid.asm 2023-02-17 12:20:01.842500301 +0100
+@@ -57,3 +57,10 @@
+ ret
+ EPILOGUE(_nettle_cpuid)
+
++#ifdef __midipix__
++ .section .got$_nettle_cpuid,"r"
++ .global __imp__nettle_cpuid
++__imp__nettle_cpuid:
++ .quad _nettle_cpuid
++ .linkonce discard
++#endif
+diff -ru nettle-3.8.1.orig/x86_64/fat/ghash-update.asm nettle-3.8.1/x86_64/fat/ghash-update.asm
+--- nettle-3.8.1.orig/x86_64/fat/ghash-update.asm 2022-07-27 21:23:20.000000000 +0200
++++ nettle-3.8.1/x86_64/fat/ghash-update.asm 2023-02-17 12:22:38.869226973 +0100
+@@ -35,3 +35,11 @@
+
+ define(`fat_transform', `$1_table')
+ include_src(`x86_64/ghash-update.asm')
++
++#ifdef __midipix__
++ .section .got$_nettle_ghash_update_table,"r"
++ .global __imp__nettle_ghash_update_table
++__imp__nettle_ghash_update_table:
++ .quad _nettle_ghash_update_table
++ .linkonce discard
++#endif
diff -ru nettle-3.7.2.orig/x86_64/salsa20-2core.asm nettle-3.7.2/x86_64/salsa20-2core.asm
--- nettle-3.7.2.orig/x86_64/salsa20-2core.asm 2021-03-21 09:32:25.000000000 +0100
+++ nettle-3.7.2/x86_64/salsa20-2core.asm 2021-04-10 14:56:55.970009499 +0200
@@ -178,21 +462,6 @@ diff -ru nettle-3.6.orig/x86_64/ecc-secp521r1-modp.asm nettle-3.6/x86_64/ecc-sec
+ .quad _nettle_ecc_secp521r1_modp
+ .linkonce discard
+#endif
-diff -ru nettle-3.6.orig/x86_64/gcm-hash8.asm nettle-3.6/x86_64/gcm-hash8.asm
---- nettle-3.6.orig/x86_64/gcm-hash8.asm 2020-04-29 20:11:44.000000000 +0200
-+++ nettle-3.6/x86_64/gcm-hash8.asm 2020-09-07 13:42:31.107641232 +0200
-@@ -238,3 +238,11 @@
- .value W(a7,d0),W(a6,12),W(a4,54),W(a5,96),W(a0,d8),W(a1,1a),W(a3,5c),W(a2,9e)
- .value W(b5,e0),W(b4,22),W(b6,64),W(b7,a6),W(b2,e8),W(b3,2a),W(b1,6c),W(b0,ae)
- .value W(bb,f0),W(ba,32),W(b8,74),W(b9,b6),W(bc,f8),W(bd,3a),W(bf,7c),W(be,be)
-+
-+#ifdef __midipix__
-+ .section .got$_nettle_gcm_hash8,"r"
-+ .global __imp__nettle_gcm_hash8
-+__imp__nettle_gcm_hash8:
-+ .quad _nettle_gcm_hash8
-+ .linkonce discard
-+#endif
diff -ru nettle-3.6.orig/x86_64/md5-compress.asm nettle-3.6/x86_64/md5-compress.asm
--- nettle-3.6.orig/x86_64/md5-compress.asm 2020-04-29 20:11:44.000000000 +0200
+++ nettle-3.6/x86_64/md5-compress.asm 2020-09-07 13:44:12.135638069 +0200
@@ -223,21 +492,6 @@ diff -ru nettle-3.6.orig/x86_64/memxor3.asm nettle-3.6/x86_64/memxor3.asm
+ .quad nettle_memxor3
+ .linkonce discard
+#endif
-diff -ru nettle-3.6.orig/x86_64/memxor.asm nettle-3.6/x86_64/memxor.asm
---- nettle-3.6.orig/x86_64/memxor.asm 2020-04-29 20:11:44.000000000 +0200
-+++ nettle-3.6/x86_64/memxor.asm 2020-09-07 13:46:40.999633408 +0200
-@@ -171,3 +171,11 @@
- >)
-
- EPILOGUE(nettle_memxor)
-+
-+#ifdef __midipix__
-+ .section .got$nettle_memxor,"r"
-+ .global __imp_nettle_memxor
-+__imp_nettle_memxor:
-+ .quad nettle_memxor
-+ .linkonce discard
-+#endif
diff -ru nettle-3.6.orig/x86_64/poly1305-internal.asm nettle-3.6/x86_64/poly1305-internal.asm
--- nettle-3.6.orig/x86_64/poly1305-internal.asm 2020-04-29 20:11:44.000000000 +0200
+++ nettle-3.6/x86_64/poly1305-internal.asm 2020-09-07 13:51:14.239748557 +0200
@@ -309,36 +563,6 @@ diff -ru nettle-3.6.orig/x86_64/serpent-encrypt.asm nettle-3.6/x86_64/serpent-en
+ .quad nettle_serpent_encrypt
+ .linkonce discard
+#endif
-diff -ru nettle-3.6.orig/x86_64/sha1-compress.asm nettle-3.6/x86_64/sha1-compress.asm
---- nettle-3.6.orig/x86_64/sha1-compress.asm 2020-04-29 20:11:44.000000000 +0200
-+++ nettle-3.6/x86_64/sha1-compress.asm 2020-09-07 13:56:37.603788439 +0200
-@@ -305,3 +305,11 @@
- W64_EXIT(2, 0)
- ret
- EPILOGUE(nettle_sha1_compress)
-+
-+#ifdef __midipix__
-+ .section .got$nettle_sha1_compress,"r"
-+ .global __imp_nettle_sha1_compress
-+__imp_nettle_sha1_compress:
-+ .quad nettle_sha1_compress
-+ .linkonce discard
-+#endif
-diff -ru nettle-3.6.orig/x86_64/sha256-compress.asm nettle-3.6/x86_64/sha256-compress.asm
---- nettle-3.6.orig/x86_64/sha256-compress.asm 2020-04-29 20:11:44.000000000 +0200
-+++ nettle-3.6/x86_64/sha256-compress.asm 2020-09-07 13:56:57.671787810 +0200
-@@ -208,3 +208,11 @@
- W64_EXIT(3, 0)
- ret
- EPILOGUE(_nettle_sha256_compress)
-+
-+#ifdef __midipix__
-+ .section .got$_nettle_sha256_compress,"r"
-+ .global __imp__nettle_sha256_compress
-+__imp__nettle_sha256_compress:
-+ .quad _nettle_sha256_compress
-+ .linkonce discard
-+#endif
diff -ru nettle-3.6.orig/x86_64/sha3-permute.asm nettle-3.6/x86_64/sha3-permute.asm
--- nettle-3.6.orig/x86_64/sha3-permute.asm 2020-04-29 20:11:44.000000000 +0200
+++ nettle-3.6/x86_64/sha3-permute.asm 2020-09-07 13:57:35.427786628 +0200
diff --git a/patches/opensmtpd-7.3.0p2_pre.local.patch b/patches/opensmtpd-7.3.0p2_pre.local.patch
new file mode 100644
index 00000000..dcc53c95
--- /dev/null
+++ b/patches/opensmtpd-7.3.0p2_pre.local.patch
@@ -0,0 +1,12 @@
+diff -ru opensmtpd-7.3.0p2.orig/configure opensmtpd-7.3.0p2/configure
+--- opensmtpd-7.3.0p2.orig/configure 2023-09-16 20:13:41.000000000 +0200
++++ opensmtpd-7.3.0p2/configure 2024-02-22 11:56:12.905668537 +0100
+@@ -21333,7 +21333,7 @@
+ fi
+
+
+- if test "x$ac_cv_func_arc4random" != "xyes" -a "x$ac_cv_have_decl_LIBRESSL_VERSION_NUMBER" != "xyes"; then
++ if test "x$ac_cv_func_arc4random" != "xyes"; then
+ NEED_ARC4RANDOM_TRUE=
+ NEED_ARC4RANDOM_FALSE='#'
+ else
diff --git a/patches/openssh-9.0p1.local.patch b/patches/openssh-9.5p1.local.patch
index 8e995354..8e995354 100644
--- a/patches/openssh-9.0p1.local.patch
+++ b/patches/openssh-9.5p1.local.patch
diff --git a/patches/p2c-2.02.local.patch b/patches/p2c-2.02.local.patch
new file mode 100644
index 00000000..207ae68a
--- /dev/null
+++ b/patches/p2c-2.02.local.patch
@@ -0,0 +1,203 @@
+diff -ru p2c-2.02.orig/Makefile p2c-2.02/Makefile
+--- p2c-2.02.orig/Makefile 1993-12-08 06:37:05.000000000 +0100
++++ p2c-2.02/Makefile 2024-03-20 10:32:36.899062261 +0100
+@@ -24,25 +24,7 @@
+ # and src/Makefile.
+
+ test:
+- @echo "Compiling p2c, installing in `pwd`/home..."
+- cd src; make install
+- @echo ""
+- @echo "Translating and compiling example files..."
+- cd examples; make comp
+- @echo ""
+- @echo "Running the factorial example..."
+- examples/fact
+- @echo ""
+- @echo "Running the 'e' computation example..."
+- examples/e
+- @echo ""
+- @echo "Running the self-printing Pascal example..."
+- examples/self >examples/self.out
+- cat examples/self.out
+- diff examples/self.p examples/self.out
+- @echo ""
+- @echo "Also try 'cref' and 'basic' in the examples directory."
+-
++ cd src; make
+
+ install:
+ cd src; make install
+diff -ru p2c-2.02.orig/src/Makefile p2c-2.02/src/Makefile
+--- p2c-2.02.orig/src/Makefile 2015-11-18 21:12:06.000000000 +0100
++++ p2c-2.02/src/Makefile 2024-03-20 10:32:36.899062261 +0100
+@@ -19,25 +19,21 @@
+ SHELL = /bin/sh
+
+ # Directories (private version)
+-HOMEDIR = ../home
+-INCDIR = ../home/p2c
+-BINDIR = ..
+-LIBDIR = ../home
+-MANDIR = ../home
+-MANFILE = p2c.cat # human-readable manual (for cat.1)
+ #MANFILE = p2c.man.inst # uncompressed nroff source (for man.1)
+ #MANFILE = p2c.man.Z # compressed nroff source (for man.1.Z)
+
+ # Directories (public version)
+-#HOMEDIR = /usr/lib/p2c
+-#INCDIR = /usr/include/p2c
+-#BINDIR = /usr/bin
+-#LIBDIR = /usr/lib
+-#MANDIR = /usr/man/man1
+-#MANFILE = p2c.man.inst
++HOMEDIR = /usr/lib/p2c
++INCDIR = /usr/include/p2c
++BINDIR = /usr/bin
++LIBDIR = /usr/lib
++MANDIR = /usr/man/man1
++MANFILE = p2c.man.inst
++DESTDIR ?=
+
+ # Compiler options
+ CC = cc # you may wish to use gcc here instead
++AR = ar
+ OPT = # -O # uncomment this for optimization
+ DEB = # -g # uncomment this for debugging
+ DEFS = -DTEST_MALLOC # place other -D types of things here # TDS 2015nov18
+@@ -74,7 +70,7 @@
+
+
+ # Top-level targets
+-all: proto p2c libp2c.a p2c.cat
++all: proto p2c libp2c.a p2c.cat proto
+ proto: $(PROTOS)
+
+
+@@ -86,7 +82,7 @@
+ $(CC) -c $(CFLAGS) $(CUSTDEFS) dir.c
+
+ trans.o: trans.c trans.h
+- $(CC) -c $(CFLAGS) -DHASDUMPS -DP2C_HOME=\"$(ABSHOMEDIR)\" trans.c
++ $(CC) -c $(CFLAGS) -DHASDUMPS -DP2C_HOME=\"/usr/lib/p2c\" trans.c
+
+
+ # Making and using makeproto
+@@ -97,12 +93,12 @@
+ ./makeproto -n -m -h -t16 -a35 -s1 -i $(SRCS) -o p2c.proto
+
+ makeproto: makeproto.c
+- $(CC) $(CFLAGS) $(LFLAGS) makeproto.c -o makeproto
++ $(HOST_CC) $(CFLAGS) $(LFLAGS) makeproto.c -o makeproto
+
+
+ # Making the p2c runtime library
+ libp2c.a: $(LIBOBJS)
+- ar r libp2c.a $(LIBOBJS) $(OTHERLIBOBJS)
++ $(AR) r libp2c.a $(LIBOBJS) $(OTHERLIBOBJS)
+
+ p2clib.o: p2clib.c
+ $(CC) -c $(CFLAGS) p2clib.c
+@@ -145,61 +141,23 @@
+ newhome:
+ rm -f trans.o # force trans.c to be recompiled (if HOMEDIR changes)
+
+-install: proto \
+- makedirs \
+- $(BINDIR)/p2c \
+- $(BINDIR)/p2cc \
+- $(LIBDIR)/libp2c.a \
+- $(MANDIR)/p2c.1 \
+- $(INCDIR)/p2c.h \
+- $(HOMEDIR)/p2crc \
+- $(HOMEDIR)/loc.p2crc \
+- $(HOMEDIR)/system.imp \
+- $(HOMEDIR)/system.m2 \
+- $(HOMEDIR)/turbo.imp \
+- $(HOMEDIR)/string.pas
+-
+-SHELL=/bin/sh
+-makedirs:
+- if [ ! -d $(HOMEDIR) ]; then mkdir $(HOMEDIR); else true; fi
+- if [ ! -d $(BINDIR) ]; then mkdir $(BINDIR); else true; fi
+- if [ ! -d $(LIBDIR) ]; then mkdir $(LIBDIR); else true; fi
+- if [ ! -d $(MANDIR) ]; then mkdir $(MANDIR); else true; fi
+- if [ ! -d $(INCDIR) ]; then mkdir $(INCDIR); else true; fi
+-
+-$(BINDIR)/p2c: p2c
+- $(COPY) p2c $(BINDIR)/p2c
+-
+-$(BINDIR)/p2cc: p2cc
+- $(COPY) p2cc $(BINDIR)/p2cc
+-
+-$(LIBDIR)/libp2c.a: libp2c.a
+- $(COPY) libp2c.a $(LIBDIR)/libp2c.a
+- if [ -f /usr/bin/ranlib -o -f /bin/ranlib ]; then ranlib $(LIBDIR)/libp2c.a; fi
+-
+-$(MANDIR)/p2c.1: $(MANFILE)
+- $(COPY) $(MANFILE) $(MANDIR)/p2c.1
+-
+-$(INCDIR)/p2c.h: p2c.h
+- $(COPY) p2c.h $(INCDIR)/p2c.h
+-
+-$(HOMEDIR)/p2crc: sys.p2crc
+- $(COPY) sys.p2crc $(HOMEDIR)/p2crc
+-
+-$(HOMEDIR)/loc.p2crc: loc.p2crc
+- $(COPY) loc.p2crc $(HOMEDIR)/loc.p2crc
+-
+-$(HOMEDIR)/system.imp: system.imp
+- $(COPY) system.imp $(HOMEDIR)/system.imp
+-
+-$(HOMEDIR)/system.m2: system.m2
+- $(COPY) system.m2 $(HOMEDIR)/system.m2
+-
+-$(HOMEDIR)/turbo.imp: turbo.imp
+- $(COPY) turbo.imp $(HOMEDIR)/turbo.imp
+-
+-$(HOMEDIR)/string.pas: string.pas
+- $(COPY) string.pas $(HOMEDIR)/string.pas
++install:
++ if [ ! -d $(DESTDIR)$(HOMEDIR) ]; then mkdir $(DESTDIR)$(HOMEDIR); else true; fi
++ if [ ! -d $(DESTDIR)$(BINDIR) ]; then mkdir $(DESTDIR)$(BINDIR); else true; fi
++ if [ ! -d $(DESTDIR)$(LIBDIR) ]; then mkdir $(DESTDIR)$(LIBDIR); else true; fi
++ if [ ! -d $(DESTDIR)$(MANDIR) ]; then mkdir $(DESTDIR)$(MANDIR); else true; fi
++ if [ ! -d $(DESTDIR)$(INCDIR) ]; then mkdir $(DESTDIR)$(INCDIR); else true; fi
++ $(COPY) p2c $(DESTDIR)$(BINDIR)/p2c
++ $(COPY) libp2c.a $(DESTDIR)$(LIBDIR)/libp2c.a
++ $(AR) -s $(DESTDIR)$(LIBDIR)/libp2c.a
++ $(COPY) $(MANFILE) $(DESTDIR)$(MANDIR)/p2c.1
++ $(COPY) p2c.h $(DESTDIR)$(INCDIR)/p2c.h
++ $(COPY) sys.p2crc $(DESTDIR)$(HOMEDIR)/p2crc
++ $(COPY) loc.p2crc $(DESTDIR)$(HOMEDIR)/loc.p2crc
++ $(COPY) system.imp $(DESTDIR)$(HOMEDIR)/system.imp
++ $(COPY) system.m2 $(DESTDIR)$(HOMEDIR)/system.m2
++ $(COPY) turbo.imp $(DESTDIR)$(HOMEDIR)/turbo.imp
++ $(COPY) string.pas $(DESTDIR)$(HOMEDIR)/string.pas
+
+
+
+diff -ru p2c-2.02.orig/src/stuff.c p2c-2.02/src/stuff.c
+--- p2c-2.02.orig/src/stuff.c 1993-12-08 06:36:48.000000000 +0100
++++ p2c-2.02/src/stuff.c 2024-03-20 10:43:13.059760161 +0100
+@@ -316,7 +316,7 @@
+ cp = my_strrchr(fn, '.');
+ if (!cp)
+ return;
+-#if defined(unix) || defined(__unix)
++#if defined(unix) || defined(__unix) || defined(__midipix__)
+ cp2 = my_strrchr(fn, '/');
+ if (cp2 && cp < cp2)
+ return;
+diff -ru p2c-2.02.orig/src/trans.c p2c-2.02/src/trans.c
+--- p2c-2.02.orig/src/trans.c 2015-10-02 19:52:53.000000000 +0200
++++ p2c-2.02/src/trans.c 2024-03-20 10:45:31.173956389 +0100
+@@ -558,7 +558,7 @@
+ void saveoldfile(fname)
+ char *fname;
+ {
+-#if defined(unix) || defined(__unix) || defined(CAN_LINK)
++#if defined(unix) || defined(__unix) || defined(CAN_LINK) || defined(__midipix__)
+ (void) unlink(format_s("%s~", fname));
+ if (link(fname, format_s("%s~", fname)) == 0)
+ (void) unlink(fname);
diff --git a/patches/patch/no-ownership-hack.patch b/patches/patch/no-ownership-hack.patch
new file mode 100644
index 00000000..0d74cdd2
--- /dev/null
+++ b/patches/patch/no-ownership-hack.patch
@@ -0,0 +1,19 @@
+diff -ru patch-2.7.6.orig/src/util.c patch-2.7.6/src/util.c
+--- patch-2.7.6.orig/src/util.c 2018-02-03 13:41:49.000000000 +0100
++++ patch-2.7.6/src/util.c 2024-01-01 18:44:53.339218111 +0100
+@@ -269,6 +269,7 @@
+ uid = (euid == st->st_uid) ? -1 : st->st_uid;
+ gid = (egid == st->st_gid) ? -1 : st->st_gid;
+
++#ifndef __midipix__
+ /* May fail if we are not privileged to set the file owner, or we are
+ not in group instat.st_gid. Ignore those errors. */
+ if ((uid != -1 || gid != -1)
+@@ -281,6 +282,7 @@
+ (uid == -1) ? "owner" : "owning group",
+ S_ISLNK (mode) ? "symbolic link" : "file",
+ quotearg (to));
++#endif
+ }
+ if (attr & FA_XATTRS)
+ if (copy_attr (from, to) != 0
diff --git a/patches/patch_minipix b/patches/patch_minipix
new file mode 120000
index 00000000..dbcae144
--- /dev/null
+++ b/patches/patch_minipix
@@ -0,0 +1 @@
+patch \ No newline at end of file
diff --git a/patches/perl-5.22.1.local.patch b/patches/perl-5.22.1.local.patch
deleted file mode 100644
index 2113c540..00000000
--- a/patches/perl-5.22.1.local.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ru perl-5.22.1.orig/installman perl-5.22.1/installman
---- perl-5.22.1.orig/installman 2017-11-17 23:35:34.386593179 +0100
-+++ perl-5.22.1/installman 2017-11-17 23:03:41.388858972 +0100
-@@ -146,9 +146,10 @@
- next;
- }
-
-- if ($^O eq 'os2' || $^O eq 'amigaos' || $^O eq 'uwin' || $^O eq 'cygwin') {
-+ #Fix me later?
-+ #if ($^O eq 'os2' || $^O eq 'amigaos' || $^O eq 'uwin' || $^O eq 'cygwin' || $^O eq 'midipix') {
- $manpage =~ s#::#.#g;
-- }
-+ #}
- my $tmp = "${mandir}/${manpage}.tmp";
- $manpage = "${mandir}/${manpage}.${manext}";
-
-diff -ru perl-5.22.1.orig/Makefile perl-5.22.1/Makefile
---- perl-5.22.1.orig/Makefile 2017-11-17 19:06:50.298908618 +0100
-+++ perl-5.22.1/Makefile 2017-11-17 23:32:21.687695934 +0100
-@@ -135,7 +135,7 @@
- perl$x: perlmain$o $(LIBPERL) $(static_tgt) static.list ext.libs
- $(eval extlibs=$(shell cat ext.libs))
- $(eval statars=$(shell cat static.list))
-- $(CC) $(LDFLAGS) -o $@ $(filter %$o,$^) $(LIBPERL) $(statars) $(LIBS) $(extlibs)
-+ $(CC) $(LDFLAGS) -o $@ $(filter %$o,$^) -L. -lperl $(statars) $(LIBS) $(extlibs)
-
- %$o: %.c config.h
- $(CC) $(CFLAGS) -c -o $@ $<
diff --git a/patches/perl-5.36.0.local.patch b/patches/perl-5.36.0.local.patch
new file mode 100644
index 00000000..b56ecc69
--- /dev/null
+++ b/patches/perl-5.36.0.local.patch
@@ -0,0 +1,13 @@
+diff -ru perl-5.36.0.orig/installman perl-5.36.0/installman
+--- perl-5.36.0.orig/installman 2022-10-12 21:41:08.169953621 +0200
++++ perl-5.36.0/installman 2022-10-12 21:59:24.769494586 +0200
+@@ -152,9 +152,7 @@
+ next;
+ }
+
+- if ($^O eq 'os2' || $^O eq 'amigaos' || $^O eq 'cygwin') {
+ $manpage =~ s#::#.#g;
+- }
+ my $tmp = "${mandir}/${manpage}.tmp";
+ $manpage = "${mandir}/${manpage}.${manext}";
+
diff --git a/patches/perl/yes-we-can-hack.patch b/patches/perl/yes-we-can-hack.patch
new file mode 100644
index 00000000..ce0616c8
--- /dev/null
+++ b/patches/perl/yes-we-can-hack.patch
@@ -0,0 +1,12 @@
+diff -ru perl-5.36.0.orig/doio.c perl-5.36.0/doio.c
+--- perl-5.36.0.orig/doio.c 2022-05-20 02:01:22.000000000 +0200
++++ perl-5.36.0/doio.c 2022-10-30 18:20:57.721541670 +0100
+@@ -2892,6 +2892,8 @@
+ PERL_ARGS_ASSERT_CANDO;
+ PERL_UNUSED_CONTEXT;
+
++ return TRUE;
++
+ #ifdef DOSISH
+ /* [Comments and code from Len Reed]
+ * MS-DOS "user" is similar to UNIX's "superuser," but can't write
diff --git a/patches/php-8.1.9_pre.local.patch b/patches/php-8.1.9_pre.local.patch
deleted file mode 100644
index dda9bf5b..00000000
--- a/patches/php-8.1.9_pre.local.patch
+++ /dev/null
@@ -1,968 +0,0 @@
-diff -Nru php-8.1.0.orig/build/libtool.m4 php-8.1.0/build/libtool.m4
---- php-8.1.0.orig/build/libtool.m4 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/build/libtool.m4 2021-11-26 11:59:47.795396689 +0100
-@@ -56,10 +56,6 @@
- # This can be used to rebuild libtool when needed
- LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
--# Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
--AC_SUBST(LIBTOOL)dnl
--
- # Prevent multiple expansion
- define([AC_PROG_LIBTOOL], [])
- ])# _AC_PROG_LIBTOOL
-diff -Nru php-8.1.0.orig/build/Makefile.global php-8.1.0/build/Makefile.global
---- php-8.1.0.orig/build/Makefile.global 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/build/Makefile.global 2021-11-26 11:59:25.139396233 +0100
-@@ -11,9 +11,9 @@
- @echo "Don't forget to run 'make test'."
- @echo
-
--build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
-+build-modules: $(PHP_MODULES) $(PHP_ZEND_EX) libphp.la
-
--build-binaries: $(PHP_BINARIES)
-+build-binaries: $(PHP_BINARIES) libphp.la
-
- libphp.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
- $(LIBTOOL) --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-diff -Nru php-8.1.0.orig/configure php-8.1.0/configure
---- php-8.1.0.orig/configure 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/configure 2021-11-28 11:23:38.328485103 +0100
-@@ -7771,6 +7771,9 @@
- *darwin*)
- BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
- ;;
-+ *midipix*)
-+ BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH) \$(top_builddir)/libs/libphp.so"
-+ ;;
- *)
- BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
- ;;
-@@ -11403,14 +11406,12 @@
-
- BUILD_PHPDBG="\$(LIBTOOL) --mode=link \
- \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \
-- \$(PHP_GLOBAL_OBJS:.lo=.o) \
-- \$(PHP_BINARY_OBJS:.lo=.o) \
- \$(PHP_PHPDBG_OBJS:.lo=.o) \
- \$(EXTRA_LIBS) \
- \$(PHPDBG_EXTRA_LIBS) \
- \$(ZEND_EXTRA_LIBS) \
- \$(PHP_FRAMEWORKS) \
-- -o \$(BUILD_BINARY)"
-+ -o \$(BUILD_BINARY) \$(top_builddir)/libs/libphp.so"
-
- BUILD_PHPDBG_SHARED="\$(LIBTOOL) --mode=link \
- \$(CC) -shared -Wl,-soname,libphpdbg.so -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \
-@@ -11636,6 +11637,9 @@
- *darwin*)
- BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
- ;;
-+ *midipix*)
-+ BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH) \$(top_builddir)/libs/libphp.so"
-+ ;;
- *)
- BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
- ;;
-@@ -21247,7 +21251,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/libxml.$suffix \$(phplibdir)
-
- $ext_builddir/libxml.$suffix: \$(shared_objects_libxml) \$(LIBXML_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_libxml) \$(LIBXML_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_libxml) \$(LIBXML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -21624,7 +21628,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/openssl.$suffix \$(phplibdir)
-
- $ext_builddir/openssl.$suffix: \$(shared_objects_openssl) \$(OPENSSL_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_openssl) \$(OPENSSL_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_openssl) \$(OPENSSL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -22705,7 +22709,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/pcre.$suffix \$(phplibdir)
-
- $ext_builddir/pcre.$suffix: \$(shared_objects_pcre) \$(PCRE_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -24106,7 +24110,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/sqlite3.$suffix \$(phplibdir)
-
- $ext_builddir/sqlite3.$suffix: \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -24652,7 +24656,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/zlib.$suffix \$(phplibdir)
-
- $ext_builddir/zlib.$suffix: \$(shared_objects_zlib) \$(ZLIB_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zlib) \$(ZLIB_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zlib) \$(ZLIB_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -24969,7 +24973,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/bcmath.$suffix \$(phplibdir)
-
- $ext_builddir/bcmath.$suffix: \$(shared_objects_bcmath) \$(BCMATH_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bcmath) \$(BCMATH_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bcmath) \$(BCMATH_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -25606,7 +25610,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/bz2.$suffix \$(phplibdir)
-
- $ext_builddir/bz2.$suffix: \$(shared_objects_bz2) \$(BZ2_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bz2) \$(BZ2_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bz2) \$(BZ2_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -25918,7 +25922,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/calendar.$suffix \$(phplibdir)
-
- $ext_builddir/calendar.$suffix: \$(shared_objects_calendar) \$(CALENDAR_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_calendar) \$(CALENDAR_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_calendar) \$(CALENDAR_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -26227,7 +26231,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/ctype.$suffix \$(phplibdir)
-
- $ext_builddir/ctype.$suffix: \$(shared_objects_ctype) \$(CTYPE_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ctype) \$(CTYPE_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ctype) \$(CTYPE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -27277,7 +27281,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/curl.$suffix \$(phplibdir)
-
- $ext_builddir/curl.$suffix: \$(shared_objects_curl) \$(CURL_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_curl) \$(CURL_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_curl) \$(CURL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -31630,7 +31634,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/dba.$suffix \$(phplibdir)
-
- $ext_builddir/dba.$suffix: \$(shared_objects_dba) \$(DBA_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dba) \$(DBA_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dba) \$(DBA_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -32221,7 +32225,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/dom.$suffix \$(phplibdir)
-
- $ext_builddir/dom.$suffix: \$(shared_objects_dom) \$(DOM_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dom) \$(DOM_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dom) \$(DOM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -33684,7 +33688,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/exif.$suffix \$(phplibdir)
-
- $ext_builddir/exif.$suffix: \$(shared_objects_exif) \$(EXIF_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_exif) \$(EXIF_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_exif) \$(EXIF_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -34870,7 +34874,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/fileinfo.$suffix \$(phplibdir)
-
- $ext_builddir/fileinfo.$suffix: \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lpcre2-8
-
- EOF
-
-@@ -35202,7 +35206,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/filter.$suffix \$(phplibdir)
-
- $ext_builddir/filter.$suffix: \$(shared_objects_filter) \$(FILTER_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_filter) \$(FILTER_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_filter) \$(FILTER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lpcre2-8
-
- EOF
-
-@@ -35577,7 +35581,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/ftp.$suffix \$(phplibdir)
-
- $ext_builddir/ftp.$suffix: \$(shared_objects_ftp) \$(FTP_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ftp) \$(FTP_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ftp) \$(FTP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -40772,7 +40776,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/gettext.$suffix \$(phplibdir)
-
- $ext_builddir/gettext.$suffix: \$(shared_objects_gettext) \$(GETTEXT_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gettext) \$(GETTEXT_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gettext) \$(GETTEXT_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -43440,7 +43444,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/iconv.$suffix \$(phplibdir)
-
- $ext_builddir/iconv.$suffix: \$(shared_objects_iconv) \$(ICONV_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_iconv) \$(ICONV_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_iconv) \$(ICONV_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-liconv
-
- EOF
-
-@@ -49790,7 +49794,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/mbstring.$suffix \$(phplibdir)
-
- $ext_builddir/mbstring.$suffix: \$(shared_objects_mbstring) \$(MBSTRING_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mbstring) \$(MBSTRING_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mbstring) \$(MBSTRING_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lpcre2-8
-
- EOF
-
-@@ -54970,7 +54974,16 @@
- printf %s "checking for sysvipc shared memory support... " >&6; }
- if test "$cross_compiling" = yes
- then :
-- have_shm_ipc=no
-+
-+ case $host_alias in
-+ *midipix*)
-+ have_shm_ipc=yes
-+ ;;
-+ *)
-+ have_shm_ipc=no
-+ ;;
-+ esac
-+
- else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-@@ -55846,7 +55859,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/opcache.$suffix \$(phplibdir)
-
- $ext_builddir/opcache.$suffix: \$(shared_objects_opcache) \$(OPCACHE_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_opcache) \$(OPCACHE_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_opcache) \$(OPCACHE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lpcre2-8
-
- EOF
-
-@@ -65092,7 +65105,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/posix.$suffix \$(phplibdir)
-
- $ext_builddir/posix.$suffix: \$(shared_objects_posix) \$(POSIX_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_posix) \$(POSIX_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_posix) \$(POSIX_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -68635,7 +68648,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/readline.$suffix \$(phplibdir)
-
- $ext_builddir/readline.$suffix: \$(shared_objects_readline) \$(READLINE_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_readline) \$(READLINE_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_readline) \$(READLINE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -69464,7 +69477,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/session.$suffix \$(phplibdir)
-
- $ext_builddir/session.$suffix: \$(shared_objects_session) \$(SESSION_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_session) \$(SESSION_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_session) \$(SESSION_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -70001,7 +70014,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/shmop.$suffix \$(phplibdir)
-
- $ext_builddir/shmop.$suffix: \$(shared_objects_shmop) \$(SHMOP_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_shmop) \$(SHMOP_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_shmop) \$(SHMOP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -70553,7 +70566,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/simplexml.$suffix \$(phplibdir)
-
- $ext_builddir/simplexml.$suffix: \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -72343,7 +72356,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/soap.$suffix \$(phplibdir)
-
- $ext_builddir/soap.$suffix: \$(shared_objects_soap) \$(SOAP_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_soap) \$(SOAP_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_soap) \$(SOAP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -72854,7 +72867,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/sockets.$suffix \$(phplibdir)
-
- $ext_builddir/sockets.$suffix: \$(shared_objects_sockets) \$(SOCKETS_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sockets) \$(SOCKETS_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sockets) \$(SOCKETS_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -78714,7 +78727,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/sysvmsg.$suffix \$(phplibdir)
-
- $ext_builddir/sysvmsg.$suffix: \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -79020,7 +79033,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/sysvsem.$suffix \$(phplibdir)
-
- $ext_builddir/sysvsem.$suffix: \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -79377,7 +79390,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/sysvshm.$suffix \$(phplibdir)
-
- $ext_builddir/sysvshm.$suffix: \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -80659,7 +80672,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/tokenizer.$suffix \$(phplibdir)
-
- $ext_builddir/tokenizer.$suffix: \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -81503,7 +81516,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/xml.$suffix \$(phplibdir)
-
- $ext_builddir/xml.$suffix: \$(shared_objects_xml) \$(XML_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xml) \$(XML_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xml) \$(XML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -82079,7 +82092,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/xmlreader.$suffix \$(phplibdir)
-
- $ext_builddir/xmlreader.$suffix: \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -82655,7 +82668,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/xmlwriter.$suffix \$(phplibdir)
-
- $ext_builddir/xmlwriter.$suffix: \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -83426,7 +83439,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/xsl.$suffix \$(phplibdir)
-
- $ext_builddir/xsl.$suffix: \$(shared_objects_xsl) \$(XSL_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xsl) \$(XSL_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xsl) \$(XSL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -83754,7 +83767,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/zend_test.$suffix \$(phplibdir)
-
- $ext_builddir/zend_test.$suffix: \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
-
- EOF
-
-@@ -85286,7 +85299,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/zip.$suffix \$(phplibdir)
-
- $ext_builddir/zip.$suffix: \$(shared_objects_zip) \$(ZIP_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zip) \$(ZIP_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zip) \$(ZIP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lpcre2-8
-
- EOF
-
-@@ -86122,7 +86135,7 @@
- \$(LIBTOOL) --mode=install cp $ext_builddir/mysqlnd.$suffix \$(phplibdir)
-
- $ext_builddir/mysqlnd.$suffix: \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_DEPENDENCIES)
-- \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_LIBADD)
-+ \$(LIBTOOL) --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \-lcrypto \-lz
-
- EOF
-
-@@ -86355,7 +86368,7 @@
- enable_static=yes
-
- case $php_sapi_module in
-- shared)
-+ *)
- if test "$PHP_CGI" = "no" && test "$PHP_CLI" = "no" && test "$PHP_FPM" = "no" && test "$PHP_LITESPEED" = "no" && test "$PHP_PHPDBG" = "no"; then
- enable_static=no
- fi
-@@ -86369,12 +86382,6 @@
- esac
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module"
- ;;
-- *)
-- standard_libtool_flag='-prefer-non-pic -static'
-- if test -z "$PHP_MODULES" && test -z "$PHP_ZEND_EX"; then
-- enable_shared=no
-- fi
-- ;;
- esac
-
- EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
-@@ -86541,6 +86548,8 @@
- fiber_os="mac" ;; #(
- aix*|os400*) :
- fiber_os="aix" ;; #(
-+ midipix*) :
-+ fiber_os="midipix" ;; #(
- *) :
- fiber_os="other"
- ;;
-@@ -86572,6 +86581,8 @@
-
- if test "$fiber_os" = 'mac'; then
- fiber_asm_file="combined_sysv_macho_gas"
-+elif test "$fiber_os" = 'midipix'; then
-+ fiber_asm_file="x86_64_ms_pe_gas"
- elif test "$fiber_os" = 'aix'; then
- # AIX uses a different calling convention (shared with non-_CALL_ELF Linux).
- # The AIX assembler isn't GNU, but the file is compatible.
-@@ -86646,8 +86657,14 @@
- if test "x$ac_cv_header_ucontext_h" = xyes
- then :
-
--
--printf "%s\n" "#define ZEND_FIBER_UCONTEXT 1" >>confdefs.h
-+ case $host_alias in
-+ *midipix*)
-+ # not supported
-+ ;;
-+ *)
-+ printf "%s\n" "#define ZEND_FIBER_UCONTEXT 1" >>confdefs.h
-+ ;;
-+ esac
-
-
- else $as_nop
-@@ -90670,7 +90687,7 @@
- lt_prog_compiler_static='-Bstatic'
- ;;
-
-- linux* | k*bsd*-gnu)
-+ linux* | k*bsd*-gnu | midipix*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
-@@ -92390,6 +92407,17 @@
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-+midipix*)
-+ version_type=linux # correct to gnu/linux during the next big refactor
-+ need_lib_prefix=no
-+ need_version=no
-+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-+ soname_spec='$libname$release$shared_ext$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+ shlibpath_var=LD_LIBRARY_PATH
-+ dynamic_linker='GNU/Linux ld.so'
-+ ;;
-+
- netbsd*)
- version_type=sunos
- need_lib_prefix=no
-@@ -94461,7 +94489,7 @@
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- ;;
-- linux* | k*bsd*-gnu)
-+ linux* | k*bsd*-gnu | midipix*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-diff -Nru php-8.1.0.orig/sapi/cgi/Makefile.frag php-8.1.0/sapi/cgi/Makefile.frag
---- php-8.1.0.orig/sapi/cgi/Makefile.frag 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/sapi/cgi/Makefile.frag 2021-11-26 12:00:32.631397589 +0100
-@@ -6,7 +6,7 @@
- install-cgi: $(SAPI_CGI_PATH)
- @echo "Installing PHP CGI binary: $(INSTALL_ROOT)$(bindir)/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-- @$(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT)
-+ @$(LIBTOOL) --mode=install cp $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT)
- @echo "Installing PHP CGI man page: $(INSTALL_ROOT)$(mandir)/man1/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
- @$(INSTALL_DATA) sapi/cgi/php-cgi.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php-cgi$(program_suffix).1
-diff -Nru php-8.1.0.orig/sapi/cli/Makefile.frag php-8.1.0/sapi/cli/Makefile.frag
---- php-8.1.0.orig/sapi/cli/Makefile.frag 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/sapi/cli/Makefile.frag 2021-11-26 12:01:05.943398259 +0100
-@@ -6,7 +6,7 @@
- install-cli: $(SAPI_CLI_PATH)
- @echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-- @$(INSTALL) -m 0755 $(SAPI_CLI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)
-+ @$(LIBTOOL) --mode=install cp $(SAPI_CLI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)
- @echo "Installing PHP CLI man page: $(INSTALL_ROOT)$(mandir)/man1/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
- @$(INSTALL_DATA) sapi/cli/php.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php$(program_suffix).1
-diff -Nru php-8.1.0.orig/sapi/phpdbg/Makefile.frag php-8.1.0/sapi/phpdbg/Makefile.frag
---- php-8.1.0.orig/sapi/phpdbg/Makefile.frag 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/sapi/phpdbg/Makefile.frag 2021-11-26 12:01:32.975398802 +0100
-@@ -25,7 +25,7 @@
- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log
- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run
-- @$(INSTALL) -m 0755 $(BUILD_BINARY) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT)
-+ @$(LIBTOOL) --mode=install cp $(BUILD_BINARY) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT)
- @echo "Installing phpdbg man page: $(INSTALL_ROOT)$(mandir)/man1/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
- @$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1
-diff -Nru php-8.1.0.orig/TSRM/TSRM.h php-8.1.0/TSRM/TSRM.h
---- php-8.1.0.orig/TSRM/TSRM.h 2021-11-23 19:56:11.000000000 +0100
-+++ php-8.1.0/TSRM/TSRM.h 2021-11-26 12:02:01.263399370 +0100
-@@ -147,7 +147,7 @@
- # define __has_attribute(x) 0
- #endif
-
--#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__MUSL__) || defined(__HAIKU__)
-+#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__MUSL__) || defined(__HAIKU__) || defined(__midipix__)
- # define TSRM_TLS_MODEL_ATTR
- #elif __PIC__
- # define TSRM_TLS_MODEL_ATTR __attribute__((tls_model("initial-exec")))
-diff -Nru php-8.1.0.orig/Zend/asm/jump_x86_64_ms_pe_gas.S php-8.1.0/Zend/asm/jump_x86_64_ms_pe_gas.S
---- php-8.1.0.orig/Zend/asm/jump_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100
-+++ php-8.1.0/Zend/asm/jump_x86_64_ms_pe_gas.S 2021-11-28 11:43:11.689492139 +0100
-@@ -0,0 +1,213 @@
-+/*
-+ Copyright Oliver Kowalke 2009.
-+ Copyright Thomas Sailer 2013.
-+ Distributed under the Boost Software License, Version 1.0.
-+ (See accompanying file LICENSE_1_0.txt or copy at
-+ http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/*************************************************************************************
-+* ---------------------------------------------------------------------------------- *
-+* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x0 | 0x4 | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x20 | 0x24 | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xe40 | 0x44 | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x60 | 0x64 | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 32 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xa0 | 0xa4 | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | *
-+* ---------------------------------------------------------------------------------- *
-+* | fc_mxcsr|fc_x87_cw| <alignment> | fbr_strg | fc_dealloc | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xc0 | 0xc4 | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | *
-+* ---------------------------------------------------------------------------------- *
-+* | limit | base | R12 | R13 | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xe0 | 0xe4 | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | *
-+* ---------------------------------------------------------------------------------- *
-+* | R14 | R15 | RDI | RSI | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | *
-+* ---------------------------------------------------------------------------------- *
-+* | RBX | RBP | hidden | RIP | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 | 0x138 | 0x13c | *
-+* ---------------------------------------------------------------------------------- *
-+* | parameter area | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 | 0x158 | 0x15c | *
-+* ---------------------------------------------------------------------------------- *
-+* | FCTX | DATA | | *
-+* ---------------------------------------------------------------------------------- *
-+**************************************************************************************/
-+
-+.file "jump_x86_64_ms_pe_gas.asm"
-+.text
-+.p2align 4,,15
-+.def jump_fcontext; .scl 2; .type 32; .endef
-+.seh_proc jump_fcontext
-+jump_fcontext:
-+.seh_endprologue
-+
-+ leaq -0x118(%rsp), %rsp /* prepare stack */
-+
-+#if !defined(BOOST_USE_TSX)
-+ /* save XMM storage */
-+ movaps %xmm6, 0x0(%rsp)
-+ movaps %xmm7, 0x10(%rsp)
-+ movaps %xmm8, 0x20(%rsp)
-+ movaps %xmm9, 0x30(%rsp)
-+ movaps %xmm10, 0x40(%rsp)
-+ movaps %xmm11, 0x50(%rsp)
-+ movaps %xmm12, 0x60(%rsp)
-+ movaps %xmm13, 0x70(%rsp)
-+ movaps %xmm14, 0x80(%rsp)
-+ movaps %xmm15, 0x90(%rsp)
-+ stmxcsr 0xa0(%rsp) /* save MMX control- and status-word */
-+ fnstcw 0xa4(%rsp) /* save x87 control-word */
-+#endif
-+
-+ /* load NT_TIB */
-+ movq %gs:(0x30), %r10
-+ /* save fiber local storage */
-+ movq 0x20(%r10), %rax
-+ movq %rax, 0xb0(%rsp)
-+ /* save current deallocation stack */
-+ movq 0x1478(%r10), %rax
-+ movq %rax, 0xb8(%rsp)
-+ /* save current stack limit */
-+ movq 0x10(%r10), %rax
-+ movq %rax, 0xc0(%rsp)
-+ /* save current stack base */
-+ movq 0x08(%r10), %rax
-+ movq %rax, 0xc8(%rsp)
-+
-+ movq %r12, 0xd0(%rsp) /* save R12 */
-+ movq %r13, 0xd8(%rsp) /* save R13 */
-+ movq %r14, 0xe0(%rsp) /* save R14 */
-+ movq %r15, 0xe8(%rsp) /* save R15 */
-+ movq %rdi, 0xf0(%rsp) /* save RDI */
-+ movq %rsi, 0xf8(%rsp) /* save RSI */
-+ movq %rbx, 0x100(%rsp) /* save RBX */
-+ movq %rbp, 0x108(%rsp) /* save RBP */
-+
-+ movq %rcx, 0x110(%rsp) /* save hidden address of transport_t */
-+
-+ /* preserve RSP (pointing to context-data) in R9 */
-+ movq %rsp, %r9
-+
-+ /* restore RSP (pointing to context-data) from RDX */
-+ movq %rdx, %rsp
-+
-+#if !defined(BOOST_USE_TSX)
-+ /* restore XMM storage */
-+ movaps 0x0(%rsp), %xmm6
-+ movaps 0x10(%rsp), %xmm7
-+ movaps 0x20(%rsp), %xmm8
-+ movaps 0x30(%rsp), %xmm9
-+ movaps 0x40(%rsp), %xmm10
-+ movaps 0x50(%rsp), %xmm11
-+ movaps 0x60(%rsp), %xmm12
-+ movaps 0x70(%rsp), %xmm13
-+ movaps 0x80(%rsp), %xmm14
-+ movaps 0x90(%rsp), %xmm15
-+ ldmxcsr 0xa0(%rsp) /* restore MMX control- and status-word */
-+ fldcw 0xa4(%rsp) /* restore x87 control-word */
-+#endif
-+
-+ /* load NT_TIB */
-+ movq %gs:(0x30), %r10
-+ /* restore fiber local storage */
-+ movq 0xb0(%rsp), %rax
-+ movq %rax, 0x20(%r10)
-+ /* restore current deallocation stack */
-+ movq 0xb8(%rsp), %rax
-+ movq %rax, 0x1478(%r10)
-+ /* restore current stack limit */
-+ movq 0xc0(%rsp), %rax
-+ movq %rax, 0x10(%r10)
-+ /* restore current stack base */
-+ movq 0xc8(%rsp), %rax
-+ movq %rax, 0x08(%r10)
-+
-+ movq 0xd0(%rsp), %r12 /* restore R12 */
-+ movq 0xd8(%rsp), %r13 /* restore R13 */
-+ movq 0xe0(%rsp), %r14 /* restore R14 */
-+ movq 0xe8(%rsp), %r15 /* restore R15 */
-+ movq 0xf0(%rsp), %rdi /* restore RDI */
-+ movq 0xf8(%rsp), %rsi /* restore RSI */
-+ movq 0x100(%rsp), %rbx /* restore RBX */
-+ movq 0x108(%rsp), %rbp /* restore RBP */
-+
-+ movq 0x110(%rsp), %rax /* restore hidden address of transport_t */
-+
-+ leaq 0x118(%rsp), %rsp /* prepare stack */
-+
-+ /* restore return-address */
-+ popq %r10
-+
-+ /* transport_t returned in RAX */
-+ /* return parent fcontext_t */
-+ movq %r9, 0x0(%rax)
-+ /* return data */
-+ movq %r8, 0x8(%rax)
-+
-+ /* transport_t as 1.arg of context-function */
-+ movq %rax, %rcx
-+
-+ /* indirect jump to context */
-+ jmp *%r10
-+.seh_endproc
-+
-+#ifdef __midipix__
-+ .section .got$jump_fcontext,"r"
-+ .global __imp_jump_fcontext
-+__imp_jump_fcontext:
-+ .quad jump_fcontext
-+ .linkonce discard
-+#endif
-diff -Nru php-8.1.0.orig/Zend/asm/make_x86_64_ms_pe_gas.S php-8.1.0/Zend/asm/make_x86_64_ms_pe_gas.S
---- php-8.1.0.orig/Zend/asm/make_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100
-+++ php-8.1.0/Zend/asm/make_x86_64_ms_pe_gas.S 2021-11-28 11:44:29.385178672 +0100
-@@ -0,0 +1,178 @@
-+/*
-+ Copyright Oliver Kowalke 2009.
-+ Copyright Thomas Sailer 2013.
-+ Distributed under the Boost Software License, Version 1.0.
-+ (See accompanying file LICENSE_1_0.txt or copy at
-+ http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/*************************************************************************************
-+* ---------------------------------------------------------------------------------- *
-+* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x0 | 0x4 | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x20 | 0x24 | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xe40 | 0x44 | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x60 | 0x64 | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 32 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | *
-+* ---------------------------------------------------------------------------------- *
-+* | SEE registers (XMM6-XMM15) | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xa0 | 0xa4 | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | *
-+* ---------------------------------------------------------------------------------- *
-+* | fc_mxcsr|fc_x87_cw| <alignment> | fbr_strg | fc_dealloc | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xc0 | 0xc4 | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | *
-+* ---------------------------------------------------------------------------------- *
-+* | limit | base | R12 | R13 | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0xe0 | 0xe4 | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | *
-+* ---------------------------------------------------------------------------------- *
-+* | R14 | R15 | RDI | RSI | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | *
-+* ---------------------------------------------------------------------------------- *
-+* | RBX | RBP | hidden | RIP | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 | 0x138 | 0x13c | *
-+* ---------------------------------------------------------------------------------- *
-+* | parameter area | *
-+* ---------------------------------------------------------------------------------- *
-+* ---------------------------------------------------------------------------------- *
-+* | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | *
-+* ---------------------------------------------------------------------------------- *
-+* | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 | 0x158 | 0x15c | *
-+* ---------------------------------------------------------------------------------- *
-+* | FCTX | DATA | | *
-+* ---------------------------------------------------------------------------------- *
-+**************************************************************************************/
-+
-+.file "make_x86_64_ms_pe_gas.asm"
-+.text
-+.p2align 4,,15
-+.def make_fcontext; .scl 2; .type 32; .endef
-+.seh_proc make_fcontext
-+make_fcontext:
-+.seh_endprologue
-+
-+ /* first arg of make_fcontext() == top of context-stack */
-+ movq %rcx, %rax
-+
-+ /* shift address in RAX to lower 16 byte boundary */
-+ /* == pointer to fcontext_t and address of context stack */
-+ andq $-16, %rax
-+
-+ /* reserve space for context-data on context-stack */
-+ /* on context-function entry: (RSP -0x8) % 16 == 0 */
-+ leaq -0x150(%rax), %rax
-+
-+ /* third arg of make_fcontext() == address of context-function */
-+ movq %r8, 0x100(%rax)
-+
-+ /* first arg of make_fcontext() == top of context-stack */
-+ /* save top address of context stack as 'base' */
-+ movq %rcx, 0xc8(%rax)
-+ /* second arg of make_fcontext() == size of context-stack */
-+ /* negate stack size for LEA instruction (== substraction) */
-+ negq %rdx
-+ /* compute bottom address of context stack (limit) */
-+ leaq (%rcx,%rdx), %rcx
-+ /* save bottom address of context stack as 'limit' */
-+ movq %rcx, 0xc0(%rax)
-+ /* save address of context stack limit as 'dealloction stack' */
-+ movq %rcx, 0xb8(%rax)
-+ /* set fiber-storage to zero */
-+ xorq %rcx, %rcx
-+ movq %rcx, 0xb0(%rax)
-+
-+ /* save MMX control- and status-word */
-+ stmxcsr 0xa0(%rax)
-+ /* save x87 control-word */
-+ fnstcw 0xa4(%rax)
-+
-+ /* compute address of transport_t */
-+ leaq 0x140(%rax), %rcx
-+ /* store address of transport_t in hidden field */
-+ movq %rcx, 0x110(%rax)
-+
-+ /* compute abs address of label trampoline */
-+ leaq trampoline(%rip), %rcx
-+ /* save address of finish as return-address for context-function */
-+ /* will be entered after jump_fcontext() first time */
-+ movq %rcx, 0x118(%rax)
-+
-+ /* compute abs address of label finish */
-+ leaq finish(%rip), %rcx
-+ /* save address of finish as return-address for context-function */
-+ /* will be entered after context-function returns */
-+ movq %rcx, 0x108(%rax)
-+
-+ ret /* return pointer to context-data */
-+
-+trampoline:
-+ /* store return address on stack */
-+ /* fix stack alignment */
-+ pushq %rbp
-+ /* jump to context-function */
-+ jmp *%rbx
-+
-+finish:
-+ /* 32byte shadow-space for _exit() */
-+ andq $-32, %rsp
-+ /* 32byte shadow-space for _exit() are */
-+ /* already reserved by make_fcontext() */
-+ /* exit code is zero */
-+ xorq %rcx, %rcx
-+ /* exit application */
-+ call _exit
-+ hlt
-+.seh_endproc
-+
-+.def _exit; .scl 2; .type 32; .endef /* standard C library function */
-+
-+#ifdef __midipix__
-+ .section .got$make_fcontext,"r"
-+ .global __imp_make_fcontext
-+__imp_make_fcontext:
-+ .quad make_fcontext
-+ .linkonce discard
-+#endif
diff --git a/patches/php-8.3.4.local.patch b/patches/php-8.3.4.local.patch
new file mode 100644
index 00000000..e9f551a1
--- /dev/null
+++ b/patches/php-8.3.4.local.patch
@@ -0,0 +1,399 @@
+diff -Nru php-8.1.0.orig/Zend/asm/jump_x86_64_ms_pe_gas.S php-8.1.0/Zend/asm/jump_x86_64_ms_pe_gas.S
+--- php-8.1.0.orig/Zend/asm/jump_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100
++++ php-8.1.0/Zend/asm/jump_x86_64_ms_pe_gas.S 2021-11-28 11:43:11.689492139 +0100
+@@ -0,0 +1,213 @@
++/*
++ Copyright Oliver Kowalke 2009.
++ Copyright Thomas Sailer 2013.
++ Distributed under the Boost Software License, Version 1.0.
++ (See accompanying file LICENSE_1_0.txt or copy at
++ http://www.boost.org/LICENSE_1_0.txt)
++*/
++
++/*************************************************************************************
++* ---------------------------------------------------------------------------------- *
++* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x0 | 0x4 | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x20 | 0x24 | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xe40 | 0x44 | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x60 | 0x64 | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 32 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xa0 | 0xa4 | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | *
++* ---------------------------------------------------------------------------------- *
++* | fc_mxcsr|fc_x87_cw| <alignment> | fbr_strg | fc_dealloc | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xc0 | 0xc4 | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | *
++* ---------------------------------------------------------------------------------- *
++* | limit | base | R12 | R13 | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xe0 | 0xe4 | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | *
++* ---------------------------------------------------------------------------------- *
++* | R14 | R15 | RDI | RSI | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | *
++* ---------------------------------------------------------------------------------- *
++* | RBX | RBP | hidden | RIP | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 | 0x138 | 0x13c | *
++* ---------------------------------------------------------------------------------- *
++* | parameter area | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 | 0x158 | 0x15c | *
++* ---------------------------------------------------------------------------------- *
++* | FCTX | DATA | | *
++* ---------------------------------------------------------------------------------- *
++**************************************************************************************/
++
++.file "jump_x86_64_ms_pe_gas.asm"
++.text
++.p2align 4,,15
++.def jump_fcontext; .scl 2; .type 32; .endef
++.seh_proc jump_fcontext
++jump_fcontext:
++.seh_endprologue
++
++ leaq -0x118(%rsp), %rsp /* prepare stack */
++
++#if !defined(BOOST_USE_TSX)
++ /* save XMM storage */
++ movaps %xmm6, 0x0(%rsp)
++ movaps %xmm7, 0x10(%rsp)
++ movaps %xmm8, 0x20(%rsp)
++ movaps %xmm9, 0x30(%rsp)
++ movaps %xmm10, 0x40(%rsp)
++ movaps %xmm11, 0x50(%rsp)
++ movaps %xmm12, 0x60(%rsp)
++ movaps %xmm13, 0x70(%rsp)
++ movaps %xmm14, 0x80(%rsp)
++ movaps %xmm15, 0x90(%rsp)
++ stmxcsr 0xa0(%rsp) /* save MMX control- and status-word */
++ fnstcw 0xa4(%rsp) /* save x87 control-word */
++#endif
++
++ /* load NT_TIB */
++ movq %gs:(0x30), %r10
++ /* save fiber local storage */
++ movq 0x20(%r10), %rax
++ movq %rax, 0xb0(%rsp)
++ /* save current deallocation stack */
++ movq 0x1478(%r10), %rax
++ movq %rax, 0xb8(%rsp)
++ /* save current stack limit */
++ movq 0x10(%r10), %rax
++ movq %rax, 0xc0(%rsp)
++ /* save current stack base */
++ movq 0x08(%r10), %rax
++ movq %rax, 0xc8(%rsp)
++
++ movq %r12, 0xd0(%rsp) /* save R12 */
++ movq %r13, 0xd8(%rsp) /* save R13 */
++ movq %r14, 0xe0(%rsp) /* save R14 */
++ movq %r15, 0xe8(%rsp) /* save R15 */
++ movq %rdi, 0xf0(%rsp) /* save RDI */
++ movq %rsi, 0xf8(%rsp) /* save RSI */
++ movq %rbx, 0x100(%rsp) /* save RBX */
++ movq %rbp, 0x108(%rsp) /* save RBP */
++
++ movq %rcx, 0x110(%rsp) /* save hidden address of transport_t */
++
++ /* preserve RSP (pointing to context-data) in R9 */
++ movq %rsp, %r9
++
++ /* restore RSP (pointing to context-data) from RDX */
++ movq %rdx, %rsp
++
++#if !defined(BOOST_USE_TSX)
++ /* restore XMM storage */
++ movaps 0x0(%rsp), %xmm6
++ movaps 0x10(%rsp), %xmm7
++ movaps 0x20(%rsp), %xmm8
++ movaps 0x30(%rsp), %xmm9
++ movaps 0x40(%rsp), %xmm10
++ movaps 0x50(%rsp), %xmm11
++ movaps 0x60(%rsp), %xmm12
++ movaps 0x70(%rsp), %xmm13
++ movaps 0x80(%rsp), %xmm14
++ movaps 0x90(%rsp), %xmm15
++ ldmxcsr 0xa0(%rsp) /* restore MMX control- and status-word */
++ fldcw 0xa4(%rsp) /* restore x87 control-word */
++#endif
++
++ /* load NT_TIB */
++ movq %gs:(0x30), %r10
++ /* restore fiber local storage */
++ movq 0xb0(%rsp), %rax
++ movq %rax, 0x20(%r10)
++ /* restore current deallocation stack */
++ movq 0xb8(%rsp), %rax
++ movq %rax, 0x1478(%r10)
++ /* restore current stack limit */
++ movq 0xc0(%rsp), %rax
++ movq %rax, 0x10(%r10)
++ /* restore current stack base */
++ movq 0xc8(%rsp), %rax
++ movq %rax, 0x08(%r10)
++
++ movq 0xd0(%rsp), %r12 /* restore R12 */
++ movq 0xd8(%rsp), %r13 /* restore R13 */
++ movq 0xe0(%rsp), %r14 /* restore R14 */
++ movq 0xe8(%rsp), %r15 /* restore R15 */
++ movq 0xf0(%rsp), %rdi /* restore RDI */
++ movq 0xf8(%rsp), %rsi /* restore RSI */
++ movq 0x100(%rsp), %rbx /* restore RBX */
++ movq 0x108(%rsp), %rbp /* restore RBP */
++
++ movq 0x110(%rsp), %rax /* restore hidden address of transport_t */
++
++ leaq 0x118(%rsp), %rsp /* prepare stack */
++
++ /* restore return-address */
++ popq %r10
++
++ /* transport_t returned in RAX */
++ /* return parent fcontext_t */
++ movq %r9, 0x0(%rax)
++ /* return data */
++ movq %r8, 0x8(%rax)
++
++ /* transport_t as 1.arg of context-function */
++ movq %rax, %rcx
++
++ /* indirect jump to context */
++ jmp *%r10
++.seh_endproc
++
++#ifdef __midipix__
++ .section .got$jump_fcontext,"r"
++ .global __imp_jump_fcontext
++__imp_jump_fcontext:
++ .quad jump_fcontext
++ .linkonce discard
++#endif
+diff -Nru php-8.1.0.orig/Zend/asm/make_x86_64_ms_pe_gas.S php-8.1.0/Zend/asm/make_x86_64_ms_pe_gas.S
+--- php-8.1.0.orig/Zend/asm/make_x86_64_ms_pe_gas.S 1970-01-01 01:00:00.000000000 +0100
++++ php-8.1.0/Zend/asm/make_x86_64_ms_pe_gas.S 2021-11-28 11:44:29.385178672 +0100
+@@ -0,0 +1,178 @@
++/*
++ Copyright Oliver Kowalke 2009.
++ Copyright Thomas Sailer 2013.
++ Distributed under the Boost Software License, Version 1.0.
++ (See accompanying file LICENSE_1_0.txt or copy at
++ http://www.boost.org/LICENSE_1_0.txt)
++*/
++
++/*************************************************************************************
++* ---------------------------------------------------------------------------------- *
++* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x0 | 0x4 | 0x8 | 0xc | 0x10 | 0x14 | 0x18 | 0x1c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x20 | 0x24 | 0x28 | 0x2c | 0x30 | 0x34 | 0x38 | 0x3c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xe40 | 0x44 | 0x48 | 0x4c | 0x50 | 0x54 | 0x58 | 0x5c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x60 | 0x64 | 0x68 | 0x6c | 0x70 | 0x74 | 0x78 | 0x7c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 32 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c | *
++* ---------------------------------------------------------------------------------- *
++* | SEE registers (XMM6-XMM15) | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xa0 | 0xa4 | 0xa8 | 0xac | 0xb0 | 0xb4 | 0xb8 | 0xbc | *
++* ---------------------------------------------------------------------------------- *
++* | fc_mxcsr|fc_x87_cw| <alignment> | fbr_strg | fc_dealloc | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xc0 | 0xc4 | 0xc8 | 0xcc | 0xd0 | 0xd4 | 0xd8 | 0xdc | *
++* ---------------------------------------------------------------------------------- *
++* | limit | base | R12 | R13 | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | *
++* ---------------------------------------------------------------------------------- *
++* | 0xe0 | 0xe4 | 0xe8 | 0xec | 0xf0 | 0xf4 | 0xf8 | 0xfc | *
++* ---------------------------------------------------------------------------------- *
++* | R14 | R15 | RDI | RSI | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c | *
++* ---------------------------------------------------------------------------------- *
++* | RBX | RBP | hidden | RIP | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 | 0x138 | 0x13c | *
++* ---------------------------------------------------------------------------------- *
++* | parameter area | *
++* ---------------------------------------------------------------------------------- *
++* ---------------------------------------------------------------------------------- *
++* | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | *
++* ---------------------------------------------------------------------------------- *
++* | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 | 0x158 | 0x15c | *
++* ---------------------------------------------------------------------------------- *
++* | FCTX | DATA | | *
++* ---------------------------------------------------------------------------------- *
++**************************************************************************************/
++
++.file "make_x86_64_ms_pe_gas.asm"
++.text
++.p2align 4,,15
++.def make_fcontext; .scl 2; .type 32; .endef
++.seh_proc make_fcontext
++make_fcontext:
++.seh_endprologue
++
++ /* first arg of make_fcontext() == top of context-stack */
++ movq %rcx, %rax
++
++ /* shift address in RAX to lower 16 byte boundary */
++ /* == pointer to fcontext_t and address of context stack */
++ andq $-16, %rax
++
++ /* reserve space for context-data on context-stack */
++ /* on context-function entry: (RSP -0x8) % 16 == 0 */
++ leaq -0x150(%rax), %rax
++
++ /* third arg of make_fcontext() == address of context-function */
++ movq %r8, 0x100(%rax)
++
++ /* first arg of make_fcontext() == top of context-stack */
++ /* save top address of context stack as 'base' */
++ movq %rcx, 0xc8(%rax)
++ /* second arg of make_fcontext() == size of context-stack */
++ /* negate stack size for LEA instruction (== substraction) */
++ negq %rdx
++ /* compute bottom address of context stack (limit) */
++ leaq (%rcx,%rdx), %rcx
++ /* save bottom address of context stack as 'limit' */
++ movq %rcx, 0xc0(%rax)
++ /* save address of context stack limit as 'dealloction stack' */
++ movq %rcx, 0xb8(%rax)
++ /* set fiber-storage to zero */
++ xorq %rcx, %rcx
++ movq %rcx, 0xb0(%rax)
++
++ /* save MMX control- and status-word */
++ stmxcsr 0xa0(%rax)
++ /* save x87 control-word */
++ fnstcw 0xa4(%rax)
++
++ /* compute address of transport_t */
++ leaq 0x140(%rax), %rcx
++ /* store address of transport_t in hidden field */
++ movq %rcx, 0x110(%rax)
++
++ /* compute abs address of label trampoline */
++ leaq trampoline(%rip), %rcx
++ /* save address of finish as return-address for context-function */
++ /* will be entered after jump_fcontext() first time */
++ movq %rcx, 0x118(%rax)
++
++ /* compute abs address of label finish */
++ leaq finish(%rip), %rcx
++ /* save address of finish as return-address for context-function */
++ /* will be entered after context-function returns */
++ movq %rcx, 0x108(%rax)
++
++ ret /* return pointer to context-data */
++
++trampoline:
++ /* store return address on stack */
++ /* fix stack alignment */
++ pushq %rbp
++ /* jump to context-function */
++ jmp *%rbx
++
++finish:
++ /* 32byte shadow-space for _exit() */
++ andq $-32, %rsp
++ /* 32byte shadow-space for _exit() are */
++ /* already reserved by make_fcontext() */
++ /* exit code is zero */
++ xorq %rcx, %rcx
++ /* exit application */
++ call _exit
++ hlt
++.seh_endproc
++
++.def _exit; .scl 2; .type 32; .endef /* standard C library function */
++
++#ifdef __midipix__
++ .section .got$make_fcontext,"r"
++ .global __imp_make_fcontext
++__imp_make_fcontext:
++ .quad make_fcontext
++ .linkonce discard
++#endif
diff --git a/patches/php-8.3.4_pre.local.patch b/patches/php-8.3.4_pre.local.patch
new file mode 100644
index 00000000..3d2fba04
--- /dev/null
+++ b/patches/php-8.3.4_pre.local.patch
@@ -0,0 +1,1146 @@
+diff -ru php-8.3.4.orig/build/Makefile.global php-8.3.4/build/Makefile.global
+--- php-8.3.4.orig/build/Makefile.global 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/build/Makefile.global 2024-04-05 18:32:27.722533671 +0200
+@@ -11,9 +11,9 @@
+ @echo "Don't forget to run 'make test'."
+ @echo
+
+-build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
++build-modules: $(PHP_MODULES) $(PHP_ZEND_EX) libphp.la
+
+-build-binaries: $(PHP_BINARIES)
++build-binaries: $(PHP_BINARIES) libphp.la
+
+ libphp.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
+ $(LIBTOOL) --tag=CC --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
+@@ -26,7 +26,7 @@
+
+ install-sapi: $(OVERALL_TARGET)
+ @echo "Installing PHP SAPI module: $(PHP_SAPI)"
+- -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
++ -@$(mkinstalldirs) $(DESTDIR)$(bindir)
+ -@if test ! -r $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME); then \
+ for i in 0.0.0 0.0 0; do \
+ if test -r $(phptempdir)/libphp.$(SHLIB_DL_SUFFIX_NAME).$$i; then \
+@@ -41,19 +41,19 @@
+
+ install-modules: build-modules
+ @test -d modules && \
+- $(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
+- @echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
++ $(mkinstalldirs) $(DESTDIR)$(EXTENSION_DIR)
++ @echo "Installing shared extensions: $(DESTDIR)$(EXTENSION_DIR)/"
+ @rm -f modules/*.la >/dev/null 2>&1
+- @$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
++ @$(INSTALL) modules/* $(DESTDIR)$(EXTENSION_DIR)
+
+ install-headers:
+ -@if test "$(INSTALL_HEADERS)"; then \
+ for i in `echo $(INSTALL_HEADERS)`; do \
+ i=`$(top_srcdir)/build/shtool path -d $$i`; \
+- paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
++ paths="$$paths $(DESTDIR)$(phpincludedir)/$$i"; \
+ done; \
+ $(mkinstalldirs) $$paths && \
+- echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
++ echo "Installing header files: $(DESTDIR)$(phpincludedir)/" && \
+ for i in `echo $(INSTALL_HEADERS)`; do \
+ if test "$(PHP_PECL_EXTENSION)"; then \
+ src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
+@@ -61,12 +61,12 @@
+ src=$$i; \
+ fi; \
+ if test -f "$(top_srcdir)/$$src"; then \
+- $(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
++ $(INSTALL_DATA) $(top_srcdir)/$$src $(DESTDIR)$(phpincludedir)/$$i; \
+ elif test -f "$(top_builddir)/$$src"; then \
+- $(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
++ $(INSTALL_DATA) $(top_builddir)/$$src $(DESTDIR)$(phpincludedir)/$$i; \
+ else \
+- (cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
+- cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
++ (cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(DESTDIR)$(phpincludedir)/$$i; \
++ cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(DESTDIR)$(phpincludedir)/$$i) 2>/dev/null || true; \
+ fi \
+ done; \
+ fi
+diff -ru php-8.3.4.orig/configure php-8.3.4/configure
+--- php-8.3.4.orig/configure 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/configure 2024-04-05 18:54:20.076691855 +0200
+@@ -6487,13 +6487,13 @@
+ as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
+ fi
+
+- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++ APXS_LIBEXECDIR='$(DESTDIR)'`$APXS -q LIBEXECDIR`
+ if test -z `$APXS -q SYSCONFDIR`; then
+ INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+ -i -n php"
+ else
+- APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
++ APXS_SYSCONFDIR='$(DESTDIR)'`$APXS -q SYSCONFDIR`
+ INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+ \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+@@ -6622,7 +6622,7 @@
+ php_sapi_module=static
+ ;;
+ esac
+- install_sapi="install-sapi"
++ install_sapi=""
+
+
+ case sapi/apache2handler in
+@@ -7253,6 +7253,9 @@
+ *darwin*)
+ BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
+ ;;
++ *midipix*)
++ BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH) \$(top_builddir)/libs/libphp.so"
++ ;;
+ *)
+ BUILD_CLI="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
+ ;;
+@@ -7328,12 +7331,12 @@
+ yes|shared)
+ LIBPHP_CFLAGS="-shared"
+ PHP_EMBED_TYPE=shared
+- INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib; \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(prefix)/lib"
++ INSTALL_IT="\$(mkinstalldirs) \$(DESTDIR)\$(prefix)/lib; \$(INSTALL) -m 0755 $SAPI_SHARED \$(DESTDIR)\$(prefix)/lib"
+ ;;
+ static)
+ LIBPHP_CFLAGS="-static"
+ PHP_EMBED_TYPE=static
+- INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib; \$(INSTALL) -m 0644 $SAPI_STATIC \$(INSTALL_ROOT)\$(prefix)/lib"
++ INSTALL_IT="\$(mkinstalldirs) \$(DESTDIR)\$(prefix)/lib; \$(INSTALL) -m 0644 $SAPI_STATIC \$(DESTDIR)\$(prefix)/lib"
+ ;;
+ *)
+ PHP_EMBED_TYPE=no
+@@ -7456,7 +7459,7 @@
+ php_sapi_module=static
+ ;;
+ esac
+- install_sapi="install-sapi"
++ install_sapi=""
+
+
+ case sapi/embed in
+@@ -11213,14 +11216,12 @@
+
+ BUILD_PHPDBG="\$(LIBTOOL) --tag=CC --mode=link \
+ \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \
+- \$(PHP_GLOBAL_OBJS:.lo=.o) \
+- \$(PHP_BINARY_OBJS:.lo=.o) \
+ \$(PHP_PHPDBG_OBJS:.lo=.o) \
+ \$(EXTRA_LIBS) \
+ \$(PHPDBG_EXTRA_LIBS) \
+ \$(ZEND_EXTRA_LIBS) \
+ \$(PHP_FRAMEWORKS) \
+- -o \$(BUILD_BINARY)"
++ -o \$(BUILD_BINARY) \$(top_builddir)/libs/libphp.so"
+
+ BUILD_PHPDBG_SHARED="\$(LIBTOOL) --tag=CC --mode=link \
+ \$(CC) -shared -Wl,-soname,libphpdbg.so -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \
+@@ -11444,6 +11445,9 @@
+ *darwin*)
+ BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
+ ;;
++ *midipix*)
++ BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH) \$(top_builddir)/libs/libphp.so"
++ ;;
+ *)
+ BUILD_CGI="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
+ ;;
+@@ -11728,10 +11732,6 @@
+ fi
+
+
+-if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
+- CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
+- LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
+-fi
+ test -d /usr/ucblib &&
+ if test "/usr/ucblib" != "/usr/$PHP_LIBDIR" && test "/usr/ucblib" != "/usr/lib"; then
+
+@@ -19311,7 +19311,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/date.$suffix \$(phplibdir)
+
+ $ext_builddir/date.$suffix: \$(shared_objects_date) \$(DATE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_date) \$(DATE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_date) \$(DATE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -19973,7 +19973,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/libxml.$suffix \$(phplibdir)
+
+ $ext_builddir/libxml.$suffix: \$(shared_objects_libxml) \$(LIBXML_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_libxml) \$(LIBXML_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_libxml) \$(LIBXML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -20349,7 +20349,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/openssl.$suffix \$(phplibdir)
+
+ $ext_builddir/openssl.$suffix: \$(shared_objects_openssl) \$(OPENSSL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_openssl) \$(OPENSSL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_openssl) \$(OPENSSL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -21431,7 +21431,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pcre.$suffix \$(phplibdir)
+
+ $ext_builddir/pcre.$suffix: \$(shared_objects_pcre) \$(PCRE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -21775,7 +21775,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pcre.$suffix \$(phplibdir)
+
+ $ext_builddir/pcre.$suffix: \$(shared_objects_pcre) \$(PCRE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcre) \$(PCRE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -22833,7 +22833,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sqlite3.$suffix \$(phplibdir)
+
+ $ext_builddir/sqlite3.$suffix: \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sqlite3) \$(SQLITE3_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -23380,7 +23380,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/zlib.$suffix \$(phplibdir)
+
+ $ext_builddir/zlib.$suffix: \$(shared_objects_zlib) \$(ZLIB_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zlib) \$(ZLIB_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zlib) \$(ZLIB_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -23698,7 +23698,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/bcmath.$suffix \$(phplibdir)
+
+ $ext_builddir/bcmath.$suffix: \$(shared_objects_bcmath) \$(BCMATH_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bcmath) \$(BCMATH_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bcmath) \$(BCMATH_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -24336,7 +24336,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/bz2.$suffix \$(phplibdir)
+
+ $ext_builddir/bz2.$suffix: \$(shared_objects_bz2) \$(BZ2_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bz2) \$(BZ2_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_bz2) \$(BZ2_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -24649,7 +24649,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/calendar.$suffix \$(phplibdir)
+
+ $ext_builddir/calendar.$suffix: \$(shared_objects_calendar) \$(CALENDAR_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_calendar) \$(CALENDAR_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_calendar) \$(CALENDAR_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -24959,7 +24959,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/ctype.$suffix \$(phplibdir)
+
+ $ext_builddir/ctype.$suffix: \$(shared_objects_ctype) \$(CTYPE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ctype) \$(CTYPE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ctype) \$(CTYPE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -26012,7 +26012,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/curl.$suffix \$(phplibdir)
+
+ $ext_builddir/curl.$suffix: \$(shared_objects_curl) \$(CURL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_curl) \$(CURL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_curl) \$(CURL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -30370,7 +30370,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/dba.$suffix \$(phplibdir)
+
+ $ext_builddir/dba.$suffix: \$(shared_objects_dba) \$(DBA_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dba) \$(DBA_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dba) \$(DBA_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -30698,7 +30698,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/dl_test.$suffix \$(phplibdir)
+
+ $ext_builddir/dl_test.$suffix: \$(shared_objects_dl_test) \$(DL_TEST_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dl_test) \$(DL_TEST_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dl_test) \$(DL_TEST_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -31269,7 +31269,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/dom.$suffix \$(phplibdir)
+
+ $ext_builddir/dom.$suffix: \$(shared_objects_dom) \$(DOM_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dom) \$(DOM_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_dom) \$(DOM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -32421,7 +32421,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/enchant.$suffix \$(phplibdir)
+
+ $ext_builddir/enchant.$suffix: \$(shared_objects_enchant) \$(ENCHANT_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_enchant) \$(ENCHANT_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_enchant) \$(ENCHANT_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -32734,7 +32734,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/exif.$suffix \$(phplibdir)
+
+ $ext_builddir/exif.$suffix: \$(shared_objects_exif) \$(EXIF_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_exif) \$(EXIF_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_exif) \$(EXIF_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -33534,7 +33534,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/ffi.$suffix \$(phplibdir)
+
+ $ext_builddir/ffi.$suffix: \$(shared_objects_ffi) \$(FFI_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ffi) \$(FFI_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ffi) \$(FFI_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -33907,7 +33907,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/fileinfo.$suffix \$(phplibdir)
+
+ $ext_builddir/fileinfo.$suffix: \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_fileinfo) \$(FILEINFO_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lpcre2-8
+
+ EOF
+
+@@ -34239,7 +34239,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/filter.$suffix \$(phplibdir)
+
+ $ext_builddir/filter.$suffix: \$(shared_objects_filter) \$(FILTER_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_filter) \$(FILTER_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_filter) \$(FILTER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lpcre2-8
+
+ EOF
+
+@@ -34614,7 +34614,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/ftp.$suffix \$(phplibdir)
+
+ $ext_builddir/ftp.$suffix: \$(shared_objects_ftp) \$(FTP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ftp) \$(FTP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ftp) \$(FTP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -37083,7 +37083,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/gd.$suffix \$(phplibdir)
+
+ $ext_builddir/gd.$suffix: \$(shared_objects_gd) \$(GD_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gd) \$(GD_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gd) \$(GD_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -38539,7 +38539,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/gd.$suffix \$(phplibdir)
+
+ $ext_builddir/gd.$suffix: \$(shared_objects_gd) \$(GD_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gd) \$(GD_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gd) \$(GD_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -39149,7 +39149,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/gettext.$suffix \$(phplibdir)
+
+ $ext_builddir/gettext.$suffix: \$(shared_objects_gettext) \$(GETTEXT_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gettext) \$(GETTEXT_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gettext) \$(GETTEXT_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -40268,7 +40268,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/gmp.$suffix \$(phplibdir)
+
+ $ext_builddir/gmp.$suffix: \$(shared_objects_gmp) \$(GMP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gmp) \$(GMP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_gmp) \$(GMP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -40672,7 +40672,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/hash.$suffix \$(phplibdir)
+
+ $ext_builddir/hash.$suffix: \$(shared_objects_hash) \$(HASH_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_hash) \$(HASH_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_hash) \$(HASH_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -41805,7 +41805,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/iconv.$suffix \$(phplibdir)
+
+ $ext_builddir/iconv.$suffix: \$(shared_objects_iconv) \$(ICONV_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_iconv) \$(ICONV_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_iconv) \$(ICONV_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -liconv
+
+ EOF
+
+@@ -42198,7 +42198,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/imap.$suffix \$(phplibdir)
+
+ $ext_builddir/imap.$suffix: \$(shared_objects_imap) \$(IMAP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_imap) \$(IMAP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_imap) \$(IMAP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -45653,7 +45653,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/json.$suffix \$(phplibdir)
+
+ $ext_builddir/json.$suffix: \$(shared_objects_json) \$(JSON_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_json) \$(JSON_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_json) \$(JSON_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -46019,7 +46019,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/ldap.$suffix \$(phplibdir)
+
+ $ext_builddir/ldap.$suffix: \$(shared_objects_ldap) \$(LDAP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ldap) \$(LDAP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_ldap) \$(LDAP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -47933,7 +47933,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/mbstring.$suffix \$(phplibdir)
+
+ $ext_builddir/mbstring.$suffix: \$(shared_objects_mbstring) \$(MBSTRING_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mbstring) \$(MBSTRING_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mbstring) \$(MBSTRING_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lpcre2-8
+
+ EOF
+
+@@ -48436,7 +48436,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/mysqli.$suffix \$(phplibdir)
+
+ $ext_builddir/mysqli.$suffix: \$(shared_objects_mysqli) \$(MYSQLI_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqli) \$(MYSQLI_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqli) \$(MYSQLI_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -49531,7 +49531,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/oci8.$suffix \$(phplibdir)
+
+ $ext_builddir/oci8.$suffix: \$(shared_objects_oci8) \$(OCI8_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_oci8) \$(OCI8_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_oci8) \$(OCI8_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -50147,7 +50147,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/oci8.$suffix \$(phplibdir)
+
+ $ext_builddir/oci8.$suffix: \$(shared_objects_oci8) \$(OCI8_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_oci8) \$(OCI8_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_oci8) \$(OCI8_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -52121,7 +52121,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/odbc.$suffix \$(phplibdir)
+
+ $ext_builddir/odbc.$suffix: \$(shared_objects_odbc) \$(ODBC_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_odbc) \$(ODBC_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_odbc) \$(ODBC_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -52677,7 +52677,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysvipc shared memory support" >&5
+ $as_echo_n "checking for sysvipc shared memory support... " >&6; }
+ if test "$cross_compiling" = yes; then :
+- have_shm_ipc=no
++ have_shm_ipc=yes
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+@@ -53544,7 +53544,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/opcache.$suffix \$(phplibdir)
+
+ $ext_builddir/opcache.$suffix: \$(shared_objects_opcache) \$(OPCACHE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_opcache) \$(OPCACHE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_opcache) \$(OPCACHE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lpcre2-8
+
+ EOF
+
+@@ -54004,7 +54004,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pcntl.$suffix \$(phplibdir)
+
+ $ext_builddir/pcntl.$suffix: \$(shared_objects_pcntl) \$(PCNTL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcntl) \$(PCNTL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pcntl) \$(PCNTL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -54314,7 +54314,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo.$suffix: \$(shared_objects_pdo) \$(PDO_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo) \$(PDO_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo) \$(PDO_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -55031,7 +55031,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_dblib.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_dblib.$suffix: \$(shared_objects_pdo_dblib) \$(PDO_DBLIB_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_dblib) \$(PDO_DBLIB_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_dblib) \$(PDO_DBLIB_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -56351,7 +56351,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_firebird.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_firebird.$suffix: \$(shared_objects_pdo_firebird) \$(PDO_FIREBIRD_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_firebird) \$(PDO_FIREBIRD_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_firebird) \$(PDO_FIREBIRD_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -57070,7 +57070,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_mysql.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_mysql.$suffix: \$(shared_objects_pdo_mysql) \$(PDO_MYSQL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_mysql) \$(PDO_MYSQL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_mysql) \$(PDO_MYSQL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -58854,7 +58854,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_oci.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_oci.$suffix: \$(shared_objects_pdo_oci) \$(PDO_OCI_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_oci) \$(PDO_OCI_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_oci) \$(PDO_OCI_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -60019,7 +60019,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_odbc.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_odbc.$suffix: \$(shared_objects_pdo_odbc) \$(PDO_ODBC_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_odbc) \$(PDO_ODBC_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_odbc) \$(PDO_ODBC_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -60634,7 +60634,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_pgsql.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_pgsql.$suffix: \$(shared_objects_pdo_pgsql) \$(PDO_PGSQL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_pgsql) \$(PDO_PGSQL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_pgsql) \$(PDO_PGSQL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -61551,7 +61551,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pdo_sqlite.$suffix \$(phplibdir)
+
+ $ext_builddir/pdo_sqlite.$suffix: \$(shared_objects_pdo_sqlite) \$(PDO_SQLITE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_sqlite) \$(PDO_SQLITE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pdo_sqlite) \$(PDO_SQLITE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -62258,7 +62258,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pgsql.$suffix \$(phplibdir)
+
+ $ext_builddir/pgsql.$suffix: \$(shared_objects_pgsql) \$(PGSQL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pgsql) \$(PGSQL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pgsql) \$(PGSQL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -62565,7 +62565,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/phar.$suffix \$(phplibdir)
+
+ $ext_builddir/phar.$suffix: \$(shared_objects_phar) \$(PHAR_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_phar) \$(PHAR_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_phar) \$(PHAR_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -62961,7 +62961,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/posix.$suffix \$(phplibdir)
+
+ $ext_builddir/posix.$suffix: \$(shared_objects_posix) \$(POSIX_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_posix) \$(POSIX_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_posix) \$(POSIX_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -63395,7 +63395,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/pspell.$suffix \$(phplibdir)
+
+ $ext_builddir/pspell.$suffix: \$(shared_objects_pspell) \$(PSPELL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pspell) \$(PSPELL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_pspell) \$(PSPELL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -64118,7 +64118,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/random.$suffix \$(phplibdir)
+
+ $ext_builddir/random.$suffix: \$(shared_objects_random) \$(RANDOM_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_random) \$(RANDOM_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_random) \$(RANDOM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -66792,7 +66792,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/readline.$suffix \$(phplibdir)
+
+ $ext_builddir/readline.$suffix: \$(shared_objects_readline) \$(READLINE_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_readline) \$(READLINE_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_readline) \$(READLINE_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -67057,7 +67057,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/reflection.$suffix \$(phplibdir)
+
+ $ext_builddir/reflection.$suffix: \$(shared_objects_reflection) \$(REFLECTION_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_reflection) \$(REFLECTION_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_reflection) \$(REFLECTION_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -67613,7 +67613,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/session.$suffix \$(phplibdir)
+
+ $ext_builddir/session.$suffix: \$(shared_objects_session) \$(SESSION_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_session) \$(SESSION_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_session) \$(SESSION_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -68151,7 +68151,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/shmop.$suffix \$(phplibdir)
+
+ $ext_builddir/shmop.$suffix: \$(shared_objects_shmop) \$(SHMOP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_shmop) \$(SHMOP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_shmop) \$(SHMOP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -68704,7 +68704,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/simplexml.$suffix \$(phplibdir)
+
+ $ext_builddir/simplexml.$suffix: \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_simplexml) \$(SIMPLEXML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -69935,7 +69935,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/snmp.$suffix \$(phplibdir)
+
+ $ext_builddir/snmp.$suffix: \$(shared_objects_snmp) \$(SNMP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_snmp) \$(SNMP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_snmp) \$(SNMP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -70491,7 +70491,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/soap.$suffix \$(phplibdir)
+
+ $ext_builddir/soap.$suffix: \$(shared_objects_soap) \$(SOAP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_soap) \$(SOAP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_soap) \$(SOAP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -71069,7 +71069,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sockets.$suffix \$(phplibdir)
+
+ $ext_builddir/sockets.$suffix: \$(shared_objects_sockets) \$(SOCKETS_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sockets) \$(SOCKETS_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sockets) \$(SOCKETS_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -71669,7 +71669,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sodium.$suffix \$(phplibdir)
+
+ $ext_builddir/sodium.$suffix: \$(shared_objects_sodium) \$(SODIUM_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sodium) \$(SODIUM_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sodium) \$(SODIUM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -71934,7 +71934,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/spl.$suffix \$(phplibdir)
+
+ $ext_builddir/spl.$suffix: \$(shared_objects_spl) \$(SPL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_spl) \$(SPL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_spl) \$(SPL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -76512,7 +76512,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/standard.$suffix \$(phplibdir)
+
+ $ext_builddir/standard.$suffix: \$(shared_objects_standard) \$(STANDARD_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_standard) \$(STANDARD_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_standard) \$(STANDARD_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -76884,7 +76884,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sysvmsg.$suffix \$(phplibdir)
+
+ $ext_builddir/sysvmsg.$suffix: \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvmsg) \$(SYSVMSG_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -77191,7 +77191,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sysvsem.$suffix \$(phplibdir)
+
+ $ext_builddir/sysvsem.$suffix: \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvsem) \$(SYSVSEM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -77547,7 +77547,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/sysvshm.$suffix \$(phplibdir)
+
+ $ext_builddir/sysvshm.$suffix: \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_sysvshm) \$(SYSVSHM_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -78518,7 +78518,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/tidy.$suffix \$(phplibdir)
+
+ $ext_builddir/tidy.$suffix: \$(shared_objects_tidy) \$(TIDY_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tidy) \$(TIDY_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tidy) \$(TIDY_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -78831,7 +78831,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/tokenizer.$suffix \$(phplibdir)
+
+ $ext_builddir/tokenizer.$suffix: \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_tokenizer) \$(TOKENIZER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -79675,7 +79675,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/xml.$suffix \$(phplibdir)
+
+ $ext_builddir/xml.$suffix: \$(shared_objects_xml) \$(XML_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xml) \$(XML_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xml) \$(XML_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -80252,7 +80252,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/xmlreader.$suffix \$(phplibdir)
+
+ $ext_builddir/xmlreader.$suffix: \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlreader) \$(XMLREADER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \$(top_builddir)/ext/dom/dom.la
+
+ EOF
+
+@@ -80829,7 +80829,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/xmlwriter.$suffix \$(phplibdir)
+
+ $ext_builddir/xmlwriter.$suffix: \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xmlwriter) \$(XMLWRITER_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so
+
+ EOF
+
+@@ -81601,7 +81601,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/xsl.$suffix \$(phplibdir)
+
+ $ext_builddir/xsl.$suffix: \$(shared_objects_xsl) \$(XSL_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xsl) \$(XSL_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_xsl) \$(XSL_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so \$(top_builddir)/ext/dom/dom.la
+
+ EOF
+
+@@ -81930,7 +81930,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/zend_test.$suffix \$(phplibdir)
+
+ $ext_builddir/zend_test.$suffix: \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zend_test) \$(ZEND_TEST_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lxml2
+
+ EOF
+
+@@ -83463,7 +83463,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/zip.$suffix \$(phplibdir)
+
+ $ext_builddir/zip.$suffix: \$(shared_objects_zip) \$(ZIP_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zip) \$(ZIP_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_zip) \$(ZIP_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lpcre2-8
+
+ EOF
+
+@@ -84292,7 +84292,7 @@
+ \$(LIBTOOL) --tag=CC --mode=install cp $ext_builddir/mysqlnd.$suffix \$(phplibdir)
+
+ $ext_builddir/mysqlnd.$suffix: \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_DEPENDENCIES)
+- \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_LIBADD)
++ \$(LIBTOOL) --tag=CC --mode=link \$(CC) -shared \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(LDFLAGS) $additional_flags -o \$@ -export-dynamic -avoid-version -prefer-pic -module -rpath \$(phplibdir) \$(EXTRA_LDFLAGS) \$(shared_objects_mysqlnd) \$(MYSQLND_SHARED_LIBADD) \$(top_builddir)/libs/libphp.so -lz -lcrypto
+
+ EOF
+
+@@ -84523,7 +84523,7 @@
+ enable_static=yes
+
+ case $php_sapi_module in
+- shared)
++ *)
+ if test "$PHP_CGI" = "no" && test "$PHP_CLI" = "no" && test "$PHP_FPM" = "no" && test "$PHP_LITESPEED" = "no" && test "$PHP_PHPDBG" = "no"; then
+ enable_static=no
+ fi
+@@ -84537,12 +84537,6 @@
+ esac
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module"
+ ;;
+- *)
+- standard_libtool_flag='-prefer-non-pic -static'
+- if test -z "$PHP_MODULES" && test -z "$PHP_ZEND_EX"; then
+- enable_shared=no
+- fi
+- ;;
+ esac
+
+ EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
+@@ -84707,6 +84701,8 @@
+ fiber_os="mac" ;; #(
+ aix*|os400*) :
+ fiber_os="aix" ;; #(
++ midipix) :
++ fiber_os="midipix" ;; #(
+ freebsd*) :
+ fiber_os="freebsd" ;; #(
+ *) :
+@@ -84742,6 +84738,8 @@
+
+ if test "$fiber_os" = 'mac'; then
+ fiber_asm_file="combined_sysv_macho_gas"
++elif test "$fiber_os" = 'midipix'; then
++ fiber_asm_file="x86_64_ms_pe_gas"
+ elif test "$fiber_os" = 'aix'; then
+ # AIX uses a different calling convention (shared with non-_CALL_ELF Linux).
+ # The AIX assembler isn't GNU, but the file is compatible.
+@@ -89077,7 +89075,7 @@
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+- linux* | k*bsd*-gnu)
++ linux* | k*bsd*-gnu | midipix*)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+@@ -90794,6 +90792,17 @@
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
++midipix*)
++ version_type=linux # correct to gnu/linux during the next big refactor
++ need_lib_prefix=no
++ need_version=no
++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
++ soname_spec='$libname$release$shared_ext$major'
++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
++ shlibpath_var=LD_LIBRARY_PATH
++ dynamic_linker='GNU/Linux ld.so'
++ ;;
++
+ netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+@@ -92854,7 +92863,7 @@
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+- linux* | k*bsd*-gnu)
++ linux* | k*bsd*-gnu | midipix*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+@@ -95134,9 +95143,6 @@
+ # This can be used to rebuild libtool when needed
+ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+-# Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+-
+ # Prevent multiple expansion
+
+
+diff -ru php-8.3.4.orig/ext/pdo/Makefile.frag php-8.3.4/ext/pdo/Makefile.frag
+--- php-8.3.4.orig/ext/pdo/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/ext/pdo/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -15,17 +15,17 @@
+ fi)
+
+ install-pdo-headers:
+- @echo "Installing PDO headers: $(INSTALL_ROOT)$(phpincludedir)/ext/pdo/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(phpincludedir)/ext/pdo
++ @echo "Installing PDO headers: $(DESTDIR)$(phpincludedir)/ext/pdo/"
++ @$(mkinstalldirs) $(DESTDIR)$(phpincludedir)/ext/pdo
+ @for f in $(PDO_HEADER_FILES); do \
+ if test -f "$(top_srcdir)/$$f"; then \
+- $(INSTALL_DATA) $(top_srcdir)/$$f $(INSTALL_ROOT)$(phpincludedir)/ext/pdo; \
++ $(INSTALL_DATA) $(top_srcdir)/$$f $(DESTDIR)$(phpincludedir)/ext/pdo; \
+ elif test -f "$(top_builddir)/$$f"; then \
+- $(INSTALL_DATA) $(top_builddir)/$$f $(INSTALL_ROOT)$(phpincludedir)/ext/pdo; \
++ $(INSTALL_DATA) $(top_builddir)/$$f $(DESTDIR)$(phpincludedir)/ext/pdo; \
+ elif test -f "$(top_srcdir)/ext/pdo/$$f"; then \
+- $(INSTALL_DATA) $(top_srcdir)/ext/pdo/$$f $(INSTALL_ROOT)$(phpincludedir)/ext/pdo; \
++ $(INSTALL_DATA) $(top_srcdir)/ext/pdo/$$f $(DESTDIR)$(phpincludedir)/ext/pdo; \
+ elif test -f "$(top_builddir)/ext/pdo/$$f"; then \
+- $(INSTALL_DATA) $(top_builddir)/ext/pdo/$$f $(INSTALL_ROOT)$(phpincludedir)/ext/pdo; \
++ $(INSTALL_DATA) $(top_builddir)/ext/pdo/$$f $(DESTDIR)$(phpincludedir)/ext/pdo; \
+ else \
+ echo "hmmm"; \
+ fi \
+diff -ru php-8.3.4.orig/ext/phar/Makefile.frag php-8.3.4/ext/phar/Makefile.frag
+--- php-8.3.4.orig/ext/phar/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/ext/phar/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -23,7 +23,7 @@
+ else \
+ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+ fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(DESTDIR)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ -@test -d $(builddir)/phar || mkdir $(builddir)/phar
+diff -ru php-8.3.4.orig/pear/Makefile.frag php-8.3.4/pear/Makefile.frag
+--- php-8.3.4.orig/pear/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/pear/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -13,7 +13,7 @@
+ @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+- @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
++ @echo "Installing PEAR environment: $(DESTDIR)$(peardir)/"
+ @if test ! -f $(builddir)/install-pear-nozlib.phar; then \
+ if test -f $(srcdir)/install-pear-nozlib.phar; then \
+ cp $(srcdir)/install-pear-nozlib.phar $(builddir)/install-pear-nozlib.phar; \
+@@ -27,7 +27,7 @@
+ fi \
+ fi \
+ fi
+- @if test -f $(builddir)/install-pear-nozlib.phar && $(mkinstalldirs) $(INSTALL_ROOT)$(peardir); then \
++ @if test -f $(builddir)/install-pear-nozlib.phar && $(mkinstalldirs) $(DESTDIR)$(peardir); then \
+ $(MAKE) -s install-pear-installer; \
+ else \
+ cat $(srcdir)/install-pear.txt; \
+diff -ru php-8.3.4.orig/sapi/cgi/Makefile.frag php-8.3.4/sapi/cgi/Makefile.frag
+--- php-8.3.4.orig/sapi/cgi/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/sapi/cgi/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -4,9 +4,9 @@
+ $(BUILD_CGI)
+
+ install-cgi: $(SAPI_CGI_PATH)
+- @echo "Installing PHP CGI binary: $(INSTALL_ROOT)$(bindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
+- @$(INSTALL) -m 0755 $(SAPI_CGI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT)
+- @echo "Installing PHP CGI man page: $(INSTALL_ROOT)$(mandir)/man1/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
+- @$(INSTALL_DATA) sapi/cgi/php-cgi.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php-cgi$(program_suffix).1
++ @echo "Installing PHP CGI binary: $(DESTDIR)$(bindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(bindir)
++ @$(LIBTOOL) --mode=install cp $(SAPI_CGI_PATH) $(DESTDIR)$(bindir)/$(program_prefix)php-cgi$(program_suffix)$(EXEEXT)
++ @echo "Installing PHP CGI man page: $(DESTDIR)$(mandir)/man1/"
++ @$(mkinstalldirs) $(DESTDIR)$(mandir)/man1
++ @$(INSTALL_DATA) sapi/cgi/php-cgi.1 $(DESTDIR)$(mandir)/man1/$(program_prefix)php-cgi$(program_suffix).1
+diff -ru php-8.3.4.orig/sapi/cli/Makefile.frag php-8.3.4/sapi/cli/Makefile.frag
+--- php-8.3.4.orig/sapi/cli/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/sapi/cli/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -4,9 +4,9 @@
+ $(BUILD_CLI)
+
+ install-cli: $(SAPI_CLI_PATH)
+- @echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
+- @$(INSTALL) -m 0755 $(SAPI_CLI_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)
+- @echo "Installing PHP CLI man page: $(INSTALL_ROOT)$(mandir)/man1/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
+- @$(INSTALL_DATA) sapi/cli/php.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)php$(program_suffix).1
++ @echo "Installing PHP CLI binary: $(DESTDIR)$(bindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(bindir)
++ @$(LIBTOOL) --mode=install cp $(SAPI_CLI_PATH) $(DESTDIR)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)
++ @echo "Installing PHP CLI man page: $(DESTDIR)$(mandir)/man1/"
++ @$(mkinstalldirs) $(DESTDIR)$(mandir)/man1
++ @$(INSTALL_DATA) sapi/cli/php.1 $(DESTDIR)$(mandir)/man1/$(program_prefix)php$(program_suffix).1
+diff -ru php-8.3.4.orig/sapi/fpm/Makefile.frag php-8.3.4/sapi/fpm/Makefile.frag
+--- php-8.3.4.orig/sapi/fpm/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/sapi/fpm/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -4,25 +4,25 @@
+ $(BUILD_FPM)
+
+ install-fpm: $(SAPI_FPM_PATH)
+- @echo "Installing PHP FPM binary: $(INSTALL_ROOT)$(sbindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(sbindir)
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run
+- @$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
++ @echo "Installing PHP FPM binary: $(DESTDIR)$(sbindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(sbindir)
++ @$(mkinstalldirs) $(DESTDIR)$(localstatedir)/log
++ @$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run
++ @$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(DESTDIR)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
+
+- @if test -f "$(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf"; then \
++ @if test -f "$(DESTDIR)$(sysconfdir)/php-fpm.conf"; then \
+ echo "Installing PHP FPM defconfig: skipping"; \
+ else \
+- echo "Installing PHP FPM defconfig: $(INSTALL_ROOT)$(sysconfdir)/" && \
+- $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d; \
+- $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default; \
+- $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf.default; \
++ echo "Installing PHP FPM defconfig: $(DESTDIR)$(sysconfdir)/" && \
++ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/php-fpm.d; \
++ $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(DESTDIR)$(sysconfdir)/php-fpm.conf.default; \
++ $(INSTALL_DATA) sapi/fpm/www.conf $(DESTDIR)$(sysconfdir)/php-fpm.d/www.conf.default; \
+ fi
+
+- @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8
+- @$(INSTALL_DATA) sapi/fpm/php-fpm.8 $(INSTALL_ROOT)$(mandir)/man8/php-fpm$(program_suffix).8
++ @echo "Installing PHP FPM man page: $(DESTDIR)$(mandir)/man8/"
++ @$(mkinstalldirs) $(DESTDIR)$(mandir)/man8
++ @$(INSTALL_DATA) sapi/fpm/php-fpm.8 $(DESTDIR)$(mandir)/man8/php-fpm$(program_suffix).8
+
+- @echo "Installing PHP FPM status page: $(INSTALL_ROOT)$(datadir)/fpm/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(datadir)/fpm
+- @$(INSTALL_DATA) sapi/fpm/status.html $(INSTALL_ROOT)$(datadir)/fpm/status.html
++ @echo "Installing PHP FPM status page: $(DESTDIR)$(datadir)/fpm/"
++ @$(mkinstalldirs) $(DESTDIR)$(datadir)/fpm
++ @$(INSTALL_DATA) sapi/fpm/status.html $(DESTDIR)$(datadir)/fpm/status.html
+diff -ru php-8.3.4.orig/sapi/litespeed/Makefile.frag php-8.3.4/sapi/litespeed/Makefile.frag
+--- php-8.3.4.orig/sapi/litespeed/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/sapi/litespeed/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -4,6 +4,6 @@
+ $(BUILD_LITESPEED)
+
+ install-litespeed: $(SAPI_LITESPEED_PATH)
+- @echo "Installing PHP LiteSpeed binary: $(INSTALL_ROOT)$(bindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
+- @$(INSTALL) -m 0755 $(SAPI_LITESPEED_PATH) $(INSTALL_ROOT)$(bindir)/$(program_prefix)lsphp$(program_suffix)
++ @echo "Installing PHP LiteSpeed binary: $(DESTDIR)$(bindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(bindir)
++ @$(INSTALL) -m 0755 $(SAPI_LITESPEED_PATH) $(DESTDIR)$(bindir)/$(program_prefix)lsphp$(program_suffix)
+diff -ru php-8.3.4.orig/sapi/phpdbg/Makefile.frag php-8.3.4/sapi/phpdbg/Makefile.frag
+--- php-8.3.4.orig/sapi/phpdbg/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/sapi/phpdbg/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -21,11 +21,11 @@
+ @$(YACC) $(YFLAGS) -v -d $(srcdir)/phpdbg_parser.y -o $@
+
+ install-phpdbg: $(BUILD_BINARY)
+- @echo "Installing phpdbg binary: $(INSTALL_ROOT)$(bindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run
+- @$(INSTALL) -m 0755 $(BUILD_BINARY) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT)
+- @echo "Installing phpdbg man page: $(INSTALL_ROOT)$(mandir)/man1/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
+- @$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1
++ @echo "Installing phpdbg binary: $(DESTDIR)$(bindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(bindir)
++ @$(mkinstalldirs) $(DESTDIR)$(localstatedir)/log
++ @$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run
++ @$(LIBTOOL) --mode=install cp $(BUILD_BINARY) $(DESTDIR)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT)
++ @echo "Installing phpdbg man page: $(DESTDIR)$(mandir)/man1/"
++ @$(mkinstalldirs) $(DESTDIR)$(mandir)/man1
++ @$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(DESTDIR)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1
+diff -ru php-8.3.4.orig/scripts/Makefile.frag php-8.3.4/scripts/Makefile.frag
+--- php-8.3.4.orig/scripts/Makefile.frag 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/scripts/Makefile.frag 2024-04-05 18:32:27.849200335 +0200
+@@ -27,24 +27,24 @@
+ man_PAGES = phpize php-config
+
+ install-build:
+- @echo "Installing build environment: $(INSTALL_ROOT)$(phpbuilddir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(phpbuilddir) $(INSTALL_ROOT)$(bindir) && \
++ @echo "Installing build environment: $(DESTDIR)$(phpbuilddir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(phpbuilddir) $(DESTDIR)$(bindir) && \
+ (cd $(top_srcdir) && \
+- $(INSTALL) $(BUILD_FILES_EXEC) $(INSTALL_ROOT)$(phpbuilddir) && \
+- $(INSTALL_DATA) $(BUILD_FILES) $(INSTALL_ROOT)$(phpbuilddir))
++ $(INSTALL) $(BUILD_FILES_EXEC) $(DESTDIR)$(phpbuilddir) && \
++ $(INSTALL_DATA) $(BUILD_FILES) $(DESTDIR)$(phpbuilddir))
+
+ install-programs: $(builddir)/phpize $(builddir)/php-config
+- @echo "Installing helper programs: $(INSTALL_ROOT)$(bindir)/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
++ @echo "Installing helper programs: $(DESTDIR)$(bindir)/"
++ @$(mkinstalldirs) $(DESTDIR)$(bindir)
+ @for prog in $(bin_SCRIPTS); do \
+ echo " program: $(program_prefix)$${prog}$(program_suffix)"; \
+- $(INSTALL) -m 755 $(builddir)/$${prog} $(INSTALL_ROOT)$(bindir)/$(program_prefix)$${prog}$(program_suffix); \
++ $(INSTALL) -m 755 $(builddir)/$${prog} $(DESTDIR)$(bindir)/$(program_prefix)$${prog}$(program_suffix); \
+ done
+- @echo "Installing man pages: $(INSTALL_ROOT)$(mandir)/man1/"
+- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
++ @echo "Installing man pages: $(DESTDIR)$(mandir)/man1/"
++ @$(mkinstalldirs) $(DESTDIR)$(mandir)/man1
+ @for page in $(man_PAGES); do \
+ echo " page: $(program_prefix)$${page}$(program_suffix).1"; \
+- $(INSTALL_DATA) $(builddir)/man1/$${page}.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)$${page}$(program_suffix).1; \
++ $(INSTALL_DATA) $(builddir)/man1/$${page}.1 $(DESTDIR)$(mandir)/man1/$(program_prefix)$${page}$(program_suffix).1; \
+ done
+
+ $(builddir)/phpize: $(srcdir)/phpize.in $(top_builddir)/config.status
+diff -ru php-8.3.4.orig/TSRM/TSRM.h php-8.3.4/TSRM/TSRM.h
+--- php-8.3.4.orig/TSRM/TSRM.h 2024-03-13 00:42:26.000000000 +0100
++++ php-8.3.4/TSRM/TSRM.h 2024-04-05 18:32:27.849200335 +0200
+@@ -149,7 +149,7 @@
+ # define __has_attribute(x) 0
+ #endif
+
+-#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__MUSL__) || defined(__HAIKU__)
++#if !__has_attribute(tls_model) || defined(__FreeBSD__) || defined(__MUSL__) || defined(__HAIKU__) || defined(__midipix__)
+ # define TSRM_TLS_MODEL_ATTR
+ #elif __PIC__
+ # define TSRM_TLS_MODEL_ATTR __attribute__((tls_model("initial-exec")))
diff --git a/patches/posix_cc-1.4_pre.local.patch b/patches/posix_cc-1.4_pre.local.patch
new file mode 100644
index 00000000..e217b1d4
--- /dev/null
+++ b/patches/posix_cc-1.4_pre.local.patch
@@ -0,0 +1,132 @@
+diff -Nru posix_cc-1.4.orig/config.h.in posix_cc-1.4/config.h.in
+--- posix_cc-1.4.orig/config.h.in 2001-12-12 13:45:12.000000000 +0100
++++ posix_cc-1.4/config.h.in 2024-04-09 09:22:44.846399546 +0200
+@@ -1,46 +1,63 @@
+-/* config.h.in. Generated automatically from configure.in by autoheader. */
++/* config.h.in. Generated from configure.ac by autoheader. */
+
+-/* Define if you have the <inttypes.h> header file. */
++/* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+
+-/* Define if your system has a working `malloc' function. */
+-#undef HAVE_MALLOC
+-
+-/* Define if you have the <memory.h> header file. */
+-#undef HAVE_MEMORY_H
+-
+-/* Define if you have the <stdint.h> header file. */
++/* Define to 1 if you have the <stdint.h> header file. */
+ #undef HAVE_STDINT_H
+
+-/* Define if you have the <stdlib.h> header file. */
++/* Define to 1 if you have the <stdio.h> header file. */
++#undef HAVE_STDIO_H
++
++/* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+
+-/* Define if you have the <strings.h> header file. */
++/* Define to 1 if you have the <strings.h> header file. */
+ #undef HAVE_STRINGS_H
+
+-/* Define if you have the <string.h> header file. */
++/* Define to 1 if you have the <string.h> header file. */
+ #undef HAVE_STRING_H
+
+-/* Define if you have the <sys/stat.h> header file. */
++/* Define to 1 if you have the <sys/stat.h> header file. */
+ #undef HAVE_SYS_STAT_H
+
+-/* Define if you have the <sys/types.h> header file. */
++/* Define to 1 if you have the <sys/types.h> header file. */
+ #undef HAVE_SYS_TYPES_H
+
+-/* Define if you have the <unistd.h> header file. */
++/* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+
+ /* Name of package */
+ #undef PACKAGE
+
+-/* Define if you have the ANSI C header files. */
++/* Define to the address where bug reports for this package should be sent. */
++#undef PACKAGE_BUGREPORT
++
++/* Define to the full name of this package. */
++#undef PACKAGE_NAME
++
++/* Define to the full name and version of this package. */
++#undef PACKAGE_STRING
++
++/* Define to the one symbol short name of this package. */
++#undef PACKAGE_TARNAME
++
++/* Define to the home page for this package. */
++#undef PACKAGE_URL
++
++/* Define to the version of this package. */
++#undef PACKAGE_VERSION
++
++/* Define to 1 if all of the C89 standard headers exist (not just the ones
++ required in a freestanding environment). This macro is provided for
++ backward compatibility; new code need not use it. */
+ #undef STDC_HEADERS
+
+ /* Version number of package */
+ #undef VERSION
+
+-/* Define to empty if `const' does not conform to ANSI C. */
++/* Define to empty if 'const' does not conform to ANSI C. */
+ #undef const
+
+-/* Define to `unsigned' if <sys/types.h> does not define. */
++/* Define as 'unsigned int' if <stddef.h> doesn't define. */
+ #undef size_t
+diff -Nru posix_cc-1.4.orig/configure.ac posix_cc-1.4/configure.ac
+--- posix_cc-1.4.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100
++++ posix_cc-1.4/configure.ac 2024-04-09 09:20:54.446401106 +0200
+@@ -0,0 +1,15 @@
++# Process this file with autoconf to produce a configure script.
++AC_INIT(posix_cc, 1.4)
++AC_CONFIG_SRCDIR([c89.c])
++AC_CONFIG_HEADERS([config.h])
++AM_INIT_AUTOMAKE
++
++# Checks for programs.
++AC_PROG_CC
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++AC_TYPE_SIZE_T
++
++AC_CONFIG_FILES([Makefile])
++AC_OUTPUT
+diff -Nru posix_cc-1.4.orig/configure.in posix_cc-1.4/configure.in
+--- posix_cc-1.4.orig/configure.in 2001-12-12 15:53:13.000000000 +0100
++++ posix_cc-1.4/configure.in 1970-01-01 01:00:00.000000000 +0100
+@@ -1,24 +0,0 @@
+-# Process this file with autoconf to produce a configure script.
+-AC_INIT(posix_cc, 1.4)
+-AM_INIT_AUTOMAKE(posix_c, 1.4)
+-AC_CONFIG_SRCDIR([c89.c])
+-AM_CONFIG_HEADER([config.h])
+-
+-# Checks for programs.
+-AC_PROG_CC
+-
+-# Checks for libraries.
+-
+-# Checks for header files.
+-AC_HEADER_STDC
+-AC_CHECK_HEADERS([stdlib.h string.h unistd.h])
+-
+-# Checks for typedefs, structures, and compiler characteristics.
+-AC_C_CONST
+-AC_TYPE_SIZE_T
+-
+-# Checks for library functions.
+-AC_FUNC_MALLOC
+-
+-AC_CONFIG_FILES([Makefile])
+-AC_OUTPUT
diff --git a/patches/procps_ng-3.3.17.local.patch b/patches/procps_ng-3.3.17.local.patch
index 40afa885..d4f8119d 100644
--- a/patches/procps_ng-3.3.17.local.patch
+++ b/patches/procps_ng-3.3.17.local.patch
@@ -1,6 +1,59 @@
+diff -ru procps-3.3.17.orig/lib/nsutils.c procps-3.3.17/lib/nsutils.c
+--- procps-3.3.17.orig/lib/nsutils.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/lib/nsutils.c 2022-11-07 00:01:25.779153614 +0100
+@@ -16,7 +16,7 @@
+ int i, rc = 0;
+
+ for (i = 0; i < NUM_NS; i++) {
+- snprintf(buff, sizeof(buff), "/proc/%i/ns/%s", pid,
++ snprintf(buff, sizeof(buff), "/proc/sysproc/%i/ns/%s", pid,
+ get_ns_name(i));
+ if (stat(buff, &st)) {
+ if (errno != ENOENT)
+diff -ru procps-3.3.17.orig/pidof.c procps-3.3.17/pidof.c
+--- procps-3.3.17.orig/pidof.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/pidof.c 2022-11-07 00:01:45.927153736 +0100
+@@ -117,7 +117,7 @@
+ ssize_t path_alloc_size;
+ ssize_t len;
+
+- snprintf(link, sizeof(link), "/proc/%d/%s", pid, base_name);
++ snprintf(link, sizeof(link), "/proc/sysproc/%d/%s", pid, base_name);
+
+ len = path_alloc_size = 0;
+ result = NULL;
+diff -ru procps-3.3.17.orig/pmap.c procps-3.3.17/pmap.c
+--- procps-3.3.17.orig/pmap.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/pmap.c 2022-11-07 00:02:54.791154154 +0100
+@@ -539,11 +539,11 @@
+ printf("%u: %s\n", p->tgid, cmdbuf);
+
+ if (x_option || X_option || c_option) {
+- snprintf(buf, sizeof buf, "/proc/%u/smaps", p->tgid);
++ snprintf(buf, sizeof buf, "/proc/sysproc/%u/smaps", p->tgid);
+ if ((fp = fopen(buf, "r")) == NULL)
+ return 1;
+ } else {
+- snprintf(buf, sizeof buf, "/proc/%u/maps", p->tgid);
++ snprintf(buf, sizeof buf, "/proc/sysproc/%u/maps", p->tgid);
+ if ((fp = fopen(buf, "r")) == NULL)
+ return 1;
+ }
+diff -ru procps-3.3.17.orig/proc/devname.c procps-3.3.17/proc/devname.c
+--- procps-3.3.17.orig/proc/devname.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/proc/devname.c 2022-11-06 23:54:22.462970842 +0100
+@@ -289,7 +289,7 @@
+ struct stat sbuf;
+ char path[32];
+ ssize_t count;
+- const int len = snprintf(path, sizeof path, "/proc/%d/%s", pid, name); /* often permission denied */
++ const int len = snprintf(path, sizeof path, "/proc/sysproc/%d/%s", pid, name); /* often permission denied */
+ if(len <= 0 || (size_t)len >= sizeof path) return 0;
+ count = readlink(path,buf,TTY_NAME_SIZE-1);
+ if(count <= 0 || count >= TTY_NAME_SIZE-1) return 0;
diff -ru procps-3.3.17.orig/proc/escape.c procps-3.3.17/proc/escape.c
---- procps-3.3.17.orig/proc/escape.c 2022-02-05 23:39:09.677115085 +0100
-+++ procps-3.3.17/proc/escape.c 2022-02-05 23:32:43.385130312 +0100
+--- procps-3.3.17.orig/proc/escape.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/proc/escape.c 2022-11-04 15:46:20.305190037 +0100
@@ -21,6 +21,7 @@
#include <sys/types.h>
#include <string.h>
@@ -9,9 +62,144 @@ diff -ru procps-3.3.17.orig/proc/escape.c procps-3.3.17/proc/escape.c
#include "procps.h"
#include "escape.h"
#include "readproc.h"
+diff -ru procps-3.3.17.orig/proc/readproc.c procps-3.3.17/proc/readproc.c
+--- procps-3.3.17.orig/proc/readproc.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/proc/readproc.c 2022-11-06 23:57:14.382411315 +0100
+@@ -883,7 +883,7 @@
+ // warning: interface may change
+ int read_cmdline(char *restrict const dst, unsigned sz, unsigned pid) {
+ char path[PROCPATHLEN];
+- snprintf(path, sizeof(path), "/proc/%u", pid);
++ snprintf(path, sizeof(path), "/proc/sysproc/%u", pid);
+ return read_unvectored(dst, sz, path, "cmdline", ' ');
+ }
+
+@@ -1239,7 +1239,7 @@
+ }
+ p->tgid = strtoul(ent->d_name, NULL, 10);
+ p->tid = p->tgid;
+- snprintf(path, PROCPATHLEN, "/proc/%s", ent->d_name);
++ snprintf(path, PROCPATHLEN, "/proc/sysproc/%s", ent->d_name);
+ return 1;
+ }
+
+@@ -1253,7 +1253,7 @@
+ closedir(PT->taskdir);
+ }
+ // use "path" as some tmp space
+- snprintf(path, PROCPATHLEN, "/proc/%d/task", p->tgid);
++ snprintf(path, PROCPATHLEN, "/proc/sysproc/%d/task", p->tgid);
+ PT->taskdir = opendir(path);
+ if(!PT->taskdir) return 0;
+ PT->taskdir_user = p->tgid;
+@@ -1266,7 +1266,7 @@
+ t->tid = strtoul(ent->d_name, NULL, 10);
+ t->tgid = p->tgid;
+ //t->ppid = p->ppid; // cover for kernel behavior? we want both actually...?
+- snprintf(path, PROCPATHLEN, "/proc/%d/task/%s", p->tgid, ent->d_name);
++ snprintf(path, PROCPATHLEN, "/proc/sysproc/%d/task/%s", p->tgid, ent->d_name);
+ return 1;
+ }
+
+@@ -1277,7 +1277,7 @@
+ char *restrict const path = PT->path;
+ pid_t tgid = *(PT->pids)++;
+ if(likely(tgid)){
+- snprintf(path, PROCPATHLEN, "/proc/%d", tgid);
++ snprintf(path, PROCPATHLEN, "/proc/sysproc/%d", tgid);
+ p->tgid = tgid;
+ p->tid = tgid; // they match for leaders
+ }
+@@ -1677,7 +1677,7 @@
+ static char path[32];
+ struct stat statbuf;
+
+- snprintf(path, sizeof path, "/proc/%d", pid);
++ snprintf(path, sizeof path, "/proc/sysproc/%d", pid);
+ if (stat(path, &statbuf)) {
+ perror("stat");
+ return NULL;
+diff -ru procps-3.3.17.orig/proc/sysinfo.c procps-3.3.17/proc/sysinfo.c
+--- procps-3.3.17.orig/proc/sysinfo.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/proc/sysinfo.c 2022-11-06 23:53:23.999176866 +0100
+@@ -488,7 +488,7 @@
+ char c;
+
+ if (!isdigit(ent->d_name[0])) continue;
+- snprintf(tbuf, sizeof(tbuf), "/proc/%s/stat", ent->d_name);
++ snprintf(tbuf, sizeof(tbuf), "/proc/sysproc/%s/stat", ent->d_name);
+
+ fd = open(tbuf, O_RDONLY, 0);
+ if (fd == -1) continue;
+diff -ru procps-3.3.17.orig/proc/wchan.c procps-3.3.17/proc/wchan.c
+--- procps-3.3.17.orig/proc/wchan.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/proc/wchan.c 2022-11-06 23:55:15.750410595 +0100
+@@ -32,7 +32,7 @@
+ ssize_t num;
+ int fd;
+
+- snprintf(buf, sizeof buf, "/proc/%d/wchan", pid);
++ snprintf(buf, sizeof buf, "/proc/sysproc/%d/wchan", pid);
+ fd = open(buf, O_RDONLY);
+ if (fd==-1) return "?";
+
+diff -ru procps-3.3.17.orig/ps/output.c procps-3.3.17/ps/output.c
+--- procps-3.3.17.orig/ps/output.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/ps/output.c 2022-11-06 23:59:52.026412271 +0100
+@@ -1229,7 +1229,7 @@
+ int fd;
+ u_int32_t luid;
+
+- snprintf(filename, sizeof filename, "/proc/%d/loginuid", pp->tgid);
++ snprintf(filename, sizeof filename, "/proc/sysproc/%d/loginuid", pp->tgid);
+
+ if ((fd = open(filename, O_RDONLY, 0)) != -1) {
+ num_read = read(fd, outbuf, OUTBUF_SIZE - 1);
+@@ -1255,7 +1255,7 @@
+ char filename[48];
+ ssize_t num_read;
+
+- snprintf(filename, sizeof filename, "/proc/%d/exe", pp->tgid);
++ snprintf(filename, sizeof filename, "/proc/sysproc/%d/exe", pp->tgid);
+
+ num_read = readlink(filename, outbuf, OUTBUF_SIZE-1);
+ if (num_read > 0) {
+@@ -1371,7 +1371,7 @@
+
+ // wchan file is suitable for testing
+ //snprintf(filename, sizeof filename, "/proc/%d/wchan", pp->tgid);
+- snprintf(filename, sizeof filename, "/proc/%d/attr/current", pp->tgid);
++ snprintf(filename, sizeof filename, "/proc/sysproc/%d/attr/current", pp->tgid);
+
+ if ((fd = open(filename, O_RDONLY, 0)) != -1) {
+ num_read = read(fd, outbuf, OUTBUF_SIZE-1);
+diff -ru procps-3.3.17.orig/pwdx.c procps-3.3.17/pwdx.c
+--- procps-3.3.17.orig/pwdx.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/pwdx.c 2022-11-07 00:00:51.339153405 +0100
+@@ -118,7 +118,7 @@
+ * the first char is possible
+ */
+ if (argv[i][0] != '/')
+- snprintf(buf, buflen, "/proc/%s/cwd", argv[i]);
++ snprintf(buf, buflen, "/proc/sysproc/%s/cwd", argv[i]);
+ else
+ snprintf(buf, buflen, "%s/cwd", argv[i]);
+
+diff -ru procps-3.3.17.orig/skill.c procps-3.3.17/skill.c
+--- procps-3.3.17.orig/skill.c 2021-02-09 11:11:25.000000000 +0100
++++ procps-3.3.17/skill.c 2022-11-07 00:00:34.811153304 +0100
+@@ -181,7 +181,7 @@
+ if (pid == my_pid || pid == 0)
+ return;
+ /* pid (cmd) state ppid pgrp session tty */
+- sprintf(buf, "/proc/%d/stat", pid);
++ sprintf(buf, "/proc/sysproc/%d/stat", pid);
+ fd = open(buf, O_RDONLY);
+ if (fd == -1) {
+ /* process exited maybe */
diff -ru procps-3.3.17.orig/w.c procps-3.3.17/w.c
--- procps-3.3.17.orig/w.c 2021-02-09 11:11:25.000000000 +0100
-+++ procps-3.3.17/w.c 2022-02-05 23:38:48.901114668 +0100
++++ procps-3.3.17/w.c 2022-11-04 15:46:20.305190037 +0100
@@ -55,11 +55,7 @@
#include <termios.h>
#include <time.h>
diff --git a/patches/proxytunnel-1.10.20200507.local.patch b/patches/proxytunnel-1.12.1.local.patch
index f5ff82d8..f5ff82d8 100644
--- a/patches/proxytunnel-1.10.20200507.local.patch
+++ b/patches/proxytunnel-1.12.1.local.patch
diff --git a/patches/python2-2.7.18.local.patch b/patches/python2-2.7.18.local.patch
index e13aa68a..74bcd7e2 100644
--- a/patches/python2-2.7.18.local.patch
+++ b/patches/python2-2.7.18.local.patch
@@ -1,3 +1,14 @@
+diff -ru Python-2.7.18.orig/Modules/_ssl.c Python-2.7.18/Modules/_ssl.c
+--- Python-2.7.18.orig/Modules/_ssl.c 2020-04-19 23:13:39.000000000 +0200
++++ Python-2.7.18/Modules/_ssl.c 2024-03-10 13:58:48.445497909 +0100
+@@ -592,7 +592,6 @@
+ Py_INCREF(sslctx);
+
+ /* Make sure the SSL error state is initialized */
+- (void) ERR_get_state();
+ ERR_clear_error();
+
+ PySSL_BEGIN_ALLOW_THREADS
diff -ru Python-2.7.18.orig/Modules/_hashopenssl.c Python-2.7.18/Modules/_hashopenssl.c
--- Python-2.7.18.orig/Modules/_hashopenssl.c 2020-04-19 23:13:39.000000000 +0200
+++ Python-2.7.18/Modules/_hashopenssl.c 2022-02-24 22:29:09.497683912 +0100
diff --git a/patches/python2-2.7.18_pre.local.patch b/patches/python2-2.7.18_pre.local.patch
new file mode 120000
index 00000000..8b4aef09
--- /dev/null
+++ b/patches/python2-2.7.18_pre.local.patch
@@ -0,0 +1 @@
+python2_host-2.7.18_pre.local.patch \ No newline at end of file
diff --git a/patches/python2_host-2.7.18.local.patch b/patches/python2_host-2.7.18.local.patch
new file mode 120000
index 00000000..84a09096
--- /dev/null
+++ b/patches/python2_host-2.7.18.local.patch
@@ -0,0 +1 @@
+python2-2.7.18.local.patch \ No newline at end of file
diff --git a/patches/python2_host-2.7.18_pre.local.patch b/patches/python2_host-2.7.18_pre.local.patch
new file mode 100644
index 00000000..103d4869
--- /dev/null
+++ b/patches/python2_host-2.7.18_pre.local.patch
@@ -0,0 +1,11 @@
+--- build/sbpython2/project/config/cfgdefs.sh.orig 2022-12-26 19:52:02.067193887 +0100
++++ build/sbpython2/project/config/cfgdefs.sh 2023-03-20 20:11:46.912982474 +0100
+@@ -70,7 +70,7 @@
+ exit 2
+ fi
+
+- "$mb_native_cc" -E -dM "$mb_source_dir/Include/patchlevel.h" \
++ $mb_native_cc -E -dM "$mb_source_dir/Include/patchlevel.h" \
+ > "$mb_internal_verinfo"
+
+ python_major=$(grep '#define PY_MAJOR_VERSION ' "$mb_internal_verinfo" | cut -d' ' -f3)
diff --git a/patches/python2_minipix-2.7.18_pre.local.patch b/patches/python2_minipix-2.7.18_pre.local.patch
new file mode 120000
index 00000000..8b4aef09
--- /dev/null
+++ b/patches/python2_minipix-2.7.18_pre.local.patch
@@ -0,0 +1 @@
+python2_host-2.7.18_pre.local.patch \ No newline at end of file
diff --git a/patches/python3-3.7.10.local.patch b/patches/python3-3.7.10.local.patch
index 5a098300..e101fc7a 100644
--- a/patches/python3-3.7.10.local.patch
+++ b/patches/python3-3.7.10.local.patch
@@ -1,3 +1,14 @@
+diff -ru Python-3.7.10.orig/Modules/_ssl.c Python-3.7.10/Modules/_ssl.c
+--- Python-3.7.10.orig/Modules/_ssl.c 2021-02-16 02:29:22.000000000 +0100
++++ Python-3.7.10/Modules/_ssl.c 2024-03-10 14:05:44.867860819 +0100
+@@ -921,7 +921,6 @@
+ self->err = err;
+
+ /* Make sure the SSL error state is initialized */
+- (void) ERR_get_state();
+ ERR_clear_error();
+
+ PySSL_BEGIN_ALLOW_THREADS
diff -ru Python-3.7.10.orig/Modules/_hashopenssl.c Python-3.7.10/Modules/_hashopenssl.c
--- Python-3.7.10.orig/Modules/_hashopenssl.c 2021-02-16 02:29:22.000000000 +0100
+++ Python-3.7.10/Modules/_hashopenssl.c 2022-02-24 22:45:05.056189097 +0100
diff --git a/patches/python3-3.7.10_pre.local.patch b/patches/python3-3.7.10_pre.local.patch
new file mode 120000
index 00000000..4a56d158
--- /dev/null
+++ b/patches/python3-3.7.10_pre.local.patch
@@ -0,0 +1 @@
+python3_host-3.7.10_pre.local.patch \ No newline at end of file
diff --git a/patches/python3_host-3.7.10.local.patch b/patches/python3_host-3.7.10.local.patch
new file mode 120000
index 00000000..48c0a404
--- /dev/null
+++ b/patches/python3_host-3.7.10.local.patch
@@ -0,0 +1 @@
+python3-3.7.10.local.patch \ No newline at end of file
diff --git a/patches/python3_host-3.7.10_pre.local.patch b/patches/python3_host-3.7.10_pre.local.patch
new file mode 100644
index 00000000..c93558c4
--- /dev/null
+++ b/patches/python3_host-3.7.10_pre.local.patch
@@ -0,0 +1,11 @@
+--- build/sbpython3/project/config/cfgdefs.sh.orig 2023-03-20 20:14:07.834307552 +0100
++++ build/sbpython3/project/config/cfgdefs.sh 2023-03-20 20:13:42.911489879 +0100
+@@ -70,7 +70,7 @@
+ exit 2
+ fi
+
+- "$mb_native_cc" -E -dM "$mb_source_dir/Include/patchlevel.h" \
++ $mb_native_cc -E -dM "$mb_source_dir/Include/patchlevel.h" \
+ > "$mb_internal_verinfo"
+
+ python_major=$(grep '#define PY_MAJOR_VERSION ' "$mb_internal_verinfo" | cut -d' ' -f3)
diff --git a/patches/qpdf-6.0.0.local.patch b/patches/qpdf-6.0.0.local.patch
index 42ca3c19..af2c5c51 100644
--- a/patches/qpdf-6.0.0.local.patch
+++ b/patches/qpdf-6.0.0.local.patch
@@ -819,3 +819,14 @@
done # for ac_tag
+--- qpdf-6.0.0/libqpdf/build.mk.orig 2024-03-07 05:05:23.245504473 +0000
++++ qpdf-6.0.0/libqpdf/build.mk 2024-03-07 05:05:49.293514684 +0000
+@@ -2,7 +2,7 @@
+
+ INCLUDES_libqpdf = include libqpdf
+ LDFLAGS_libqpdf = -Llibqpdf/$(OUTPUT_DIR)
+-LIBS_libqpdf = -lqpdf
++LIBS_libqpdf = libqpdf/$(OUTPUT_DIR)/libqpdf.la
+
+ SRCS_libqpdf = \
+ libqpdf/BitStream.cc \
diff --git a/patches/readline-8.1.2.local.patch b/patches/readline-8.2.local.patch
index 6e6a9bad..6e6a9bad 100644
--- a/patches/readline-8.1.2.local.patch
+++ b/patches/readline-8.2.local.patch
diff --git a/patches/readline_host-8.1.2.local.patch b/patches/readline_host-8.1.2.local.patch
deleted file mode 120000
index b8fdbfa6..00000000
--- a/patches/readline_host-8.1.2.local.patch
+++ /dev/null
@@ -1 +0,0 @@
-readline-8.1.2.local.patch \ No newline at end of file
diff --git a/patches/readline_host-8.2.local.patch b/patches/readline_host-8.2.local.patch
new file mode 120000
index 00000000..e459969f
--- /dev/null
+++ b/patches/readline_host-8.2.local.patch
@@ -0,0 +1 @@
+readline-8.2.local.patch \ No newline at end of file
diff --git a/patches/rxvt_unicode-9.22.local.patch b/patches/rxvt_unicode-9.22.local.patch
new file mode 100644
index 00000000..a81b6e4e
--- /dev/null
+++ b/patches/rxvt_unicode-9.22.local.patch
@@ -0,0 +1,39 @@
+diff -ru rxvt-unicode-9.22.orig/src/rxvtperl.xs rxvt-unicode-9.22/src/rxvtperl.xs
+--- rxvt-unicode-9.22.orig/src/rxvtperl.xs 2015-06-04 18:38:04.000000000 +0200
++++ rxvt-unicode-9.22/src/rxvtperl.xs 2023-04-02 03:42:14.101495245 +0200
+@@ -940,7 +940,7 @@
+ const_iv (XIMVisibleToForward),
+ const_iv (XIMVisibleToBackword),
+ const_iv (XIMVisibleToCenter),
+-#if XRENDER
++#if 0
+ const_iv (PictStandardARGB32),
+ const_iv (PictStandardRGB24),
+ const_iv (PictStandardA8),
+diff -ru rxvt-unicode-9.22.orig/src/rxvttoolkit.C rxvt-unicode-9.22/src/rxvttoolkit.C
+--- rxvt-unicode-9.22.orig/src/rxvttoolkit.C 2015-10-11 18:23:17.000000000 +0200
++++ rxvt-unicode-9.22/src/rxvttoolkit.C 2023-04-02 03:41:59.813495158 +0200
+@@ -491,7 +491,7 @@
+ #endif
+
+ flags = 0;
+-#if XRENDER
++#if 0
+ int major, minor;
+ if (XRenderQueryVersion (dpy, &major, &minor))
+ if (major > 0 || (major == 0 && minor >= 11))
+diff -ru rxvt-unicode-9.22.orig/src/rxvt.h rxvt-unicode-9.22/src/rxvt.h
+--- rxvt-unicode-9.22.orig/src/rxvt.h 2015-06-17 13:57:42.000000000 +0200
++++ rxvt-unicode-9.22/src/rxvt.h 2023-04-02 03:33:44.070672503 +0200
+@@ -76,11 +76,6 @@
+ # include <gdk-pixbuf/gdk-pixbuf.h>
+ #endif
+
+-#if XRENDER && (HAVE_PIXBUF || ENABLE_TRANSPARENCY)
+-# define HAVE_BG_PIXMAP 1
+-# define HAVE_IMG 1
+-#endif
+-
+ #if HAVE_BG_PIXMAP
+ # if HAVE_PIXBUF
+ # define BG_IMAGE_FROM_FILE 1
diff --git a/patches/rxvt_unicode-9.22_pre.local.patch b/patches/rxvt_unicode-9.22_pre.local.patch
new file mode 100644
index 00000000..20f0c32b
--- /dev/null
+++ b/patches/rxvt_unicode-9.22_pre.local.patch
@@ -0,0 +1,14 @@
+diff -ru rxvt-unicode-9.22.orig/src/Makefile.in rxvt-unicode-9.22/src/Makefile.in
+--- rxvt-unicode-9.22.orig/src/Makefile.in 2016-01-23 21:09:22.000000000 +0100
++++ rxvt-unicode-9.22/src/Makefile.in 2023-03-30 18:57:07.555416723 +0200
+@@ -21,8 +21,8 @@
+ LDFLAGS = @LDFLAGS@
+ DEFS = @DEFS@
+ LIBS = @LIBS@
+-XINC = @X_CFLAGS@ @PIXBUF_CFLAGS@ @STARTUP_NOTIFICATION_CFLAGS@
+-XLIB = @X_LIBS@ -lX11 @X_EXTRA_LIBS@ @PIXBUF_LIBS@ @STARTUP_NOTIFICATION_LIBS@
++XINC = @PIXBUF_CFLAGS@ @STARTUP_NOTIFICATION_CFLAGS@
++XLIB = -lX11 -lXmu @X_EXTRA_LIBS@ @PIXBUF_LIBS@ @STARTUP_NOTIFICATION_LIBS@
+ COMPILE = $(CXX) -I.. -I$(srcdir) -I. -I$(srcdir)/../libev -I$(srcdir)/../libptytty/src $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(XINC)
+ LINK = @LINKER@ $(LDFLAGS)
+ EXEEXT = @EXEEXT@
diff --git a/patches/sbase.local.patch b/patches/sbase.local.patch
deleted file mode 100644
index 164febab..00000000
--- a/patches/sbase.local.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -ru sbase.orig/config.mk sbase/config.mk
---- sbase.orig/config.mk 2017-10-17 18:50:00.118534627 +0200
-+++ sbase/config.mk 2017-10-17 18:53:49.429001349 +0200
-@@ -13,4 +13,4 @@
- # -lrt might be needed on some systems
- CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_FILE_OFFSET_BITS=64
- CFLAGS = -std=c99 -Wall -pedantic
--LDFLAGS = -s
-+LDFLAGS =
diff --git a/patches/sbsigntools_pre.local.patch b/patches/sbsigntools_pre.local.patch
index 4fb79276..cda74a55 100644
--- a/patches/sbsigntools_pre.local.patch
+++ b/patches/sbsigntools_pre.local.patch
@@ -1,13 +1,12 @@
-diff -ru sbsigntools-0.9.3.orig/configure.ac sbsigntools/configure.ac
---- sbsigntools-0.9.3.orig/configure.ac 2020-01-09 18:33:38.000000000 +0100
-+++ sbsigntools/configure.ac 2020-05-02 22:04:59.758305183 +0200
-@@ -63,32 +63,6 @@
+--- sbsigntools-master/configure.ac.orig 2023-03-20 07:11:16.967711226 +0100
++++ sbsigntools-master/configure.ac 2023-03-20 07:13:01.314687693 +0100
+@@ -66,32 +66,6 @@
[],
AC_MSG_ERROR([libuuid (from the uuid package) is required]))
-dnl gnu-efi headers require extra include dirs
-EFI_ARCH=$(uname -m | sed 's/i.86/ia32/;s/arm.*/arm/')
--AM_CONDITIONAL(TEST_BINARY_FORMAT, [ test "$EFI_ARCH" = "arm" -o "$EFI_ARCH" = "aarch64" ])
+-AM_CONDITIONAL(TEST_BINARY_FORMAT, [ test "$EFI_ARCH" = "arm" -o "$EFI_ARCH" = "aarch64" -o "$EFI_ARCH" = riscv64 ])
-
-##
-# no consistent view of where gnu-efi should dump the efi stuff, so find it
diff --git a/patches/screen-4.9.0.local.patch b/patches/screen-4.9.0.local.patch
new file mode 100644
index 00000000..d44d343c
--- /dev/null
+++ b/patches/screen-4.9.0.local.patch
@@ -0,0 +1,15 @@
+diff -ru screen-4.9.0.orig/screen.c screen-4.9.0/screen.c
+--- screen-4.9.0.orig/screen.c 2022-01-28 15:06:02.694612196 +0100
++++ screen-4.9.0/screen.c 2022-12-27 13:12:29.464261795 +0100
+@@ -1145,9 +1145,11 @@
+ /* if SOCKDIR is not defined, the socket is in $HOME.
+ in that case it does not make sense to compare uids. */
+
++#ifndef __midipix__
+ if ((int)st.st_uid != real_uid)
+ Panic(0, "You are not the owner of %s.", SockPath);
+ #endif
++#endif
+ }
+
+ if ((st.st_mode & 0777) != 0700)
diff --git a/patches/tar/CVE-2022-48303.patch b/patches/tar/CVE-2022-48303.patch
new file mode 100644
index 00000000..6dd068b9
--- /dev/null
+++ b/patches/tar/CVE-2022-48303.patch
@@ -0,0 +1,30 @@
+From 3da78400eafcccb97e2f2fd4b227ea40d794ede8 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Sat, 11 Feb 2023 11:57:39 +0200
+Subject: Fix boundary checking in base-256 decoder
+
+* src/list.c (from_header): Base-256 encoding is at least 2 bytes
+long.
+---
+ src/list.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/list.c b/src/list.c
+index 9fafc42..86bcfdd 100644
+--- a/src/list.c
++++ b/src/list.c
+@@ -881,8 +881,9 @@ from_header (char const *where0, size_t digs, char const *type,
+ where++;
+ }
+ }
+- else if (*where == '\200' /* positive base-256 */
+- || *where == '\377' /* negative base-256 */)
++ else if (where <= lim - 2
++ && (*where == '\200' /* positive base-256 */
++ || *where == '\377' /* negative base-256 */))
+ {
+ /* Parse base-256 output. A nonnegative number N is
+ represented as (256**DIGS)/2 + N; a negative number -N is
+--
+cgit v1.1
+
diff --git a/patches/tar_minipix b/patches/tar_minipix
new file mode 120000
index 00000000..e1d18b02
--- /dev/null
+++ b/patches/tar_minipix
@@ -0,0 +1 @@
+tar \ No newline at end of file
diff --git a/patches/tcsh-6.24.01.local.patch b/patches/tcsh-6.24.12.local.patch
index 2e8b6283..2e9fbd26 100644
--- a/patches/tcsh-6.24.01.local.patch
+++ b/patches/tcsh-6.24.12.local.patch
@@ -1,3 +1,50 @@
+diff -ru tcsh-6.24.07.orig/configure tcsh-6.24.07/configure
+--- tcsh-6.24.07.orig/configure 2022-12-21 20:44:53.000000000 +0100
++++ tcsh-6.24.07/configure 2022-12-27 12:27:29.897963800 +0100
+@@ -6171,6 +6171,10 @@
+ *-qnx6*) :
+ tcsh_config_file=qnx6
+ ;; #(
++ ## Midipix
++ *-midipix*) :
++ tcsh_config_file=midipix
++ ;; #(
+ *) :
+ as_fn_error $? "Tcsh can't guess the configuration file name
+ for \`${host}' systems.
+--- tcsh-6.24.10/Makefile.in.orig 2023-04-14 13:52:38.000000000 +0200
++++ tcsh-6.24.10/Makefile.in 2024-01-13 10:48:11.122576967 +0100
+@@ -431,6 +431,7 @@
+ #CC= cc -h0,ansi,novector,float0
+ #CC= lcc -wa
+ CC_FOR_GETHOST = @CC_FOR_GETHOST@
++CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir)
+ ED= ed
+ AS= as
+ RM= rm
+@@ -506,11 +507,11 @@
+ # emxbind tcsh
+
+ gethost.${SUF}: gethost.c sh.err.h tc.const.h sh.h
+- ${CC_FOR_GETHOST} ${CF} ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c
++ ${CC_FOR_GETHOST} ${CF} ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c
+
+ gethost: gethost.${SUF}
+ rm -f gethost
+- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} gethost.${SUF}
++ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} ${LDFLAGS_FOR_GETHOST} gethost.${SUF}
+
+ tc.defs.c: gethost host.defs
+ @rm -f $@.tmp
+@@ -595,7 +596,7 @@
+ @echo '/* Do not edit this file, make creates it. */' > $@.tmp
+ @echo '#ifndef _h_tc_const' >> $@.tmp
+ @echo '#define _h_tc_const' >> $@.tmp
+- ${CPP} $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
++ ${CPP} $(CFLAGS) $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\
+ $(srcdir)/tc.const.c | \
+ sed -n -e 's/^\(Char STR[a-zA-Z0-9_]*\) *\[ *\].*/extern \1[];/p' | \
+ LC_COLLATE=C sort >> $@.tmp
diff -ru tcsh-6.23.02.orig/config_f.h tcsh-6.23.02/config_f.h
--- tcsh-6.23.02.orig/config_f.h 2022-01-03 09:03:03.000000000 +0100
+++ tcsh-6.23.02/config_f.h 2022-02-01 11:36:23.327968800 +0100
@@ -5,14 +52,14 @@ diff -ru tcsh-6.23.02.orig/config_f.h tcsh-6.23.02/config_f.h
* This can be much slower and no memory statistics will be
* provided.
*/
--#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__)
-+#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || defined(__midipix__)
+-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || !defined(HAVE_WORKING_SBRK)
++#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || defined(__midipix__) || !defined(HAVE_WORKING_SBRK)
# define SYSMALLOC
#else
# undef SYSMALLOC
diff -Nru tcsh-6.22.00.orig/config/midipix tcsh-6.22.00/config/midipix
---- tcsh-6.22.00.orig/config/midipix 1970-01-01 01:00:00.000000000 +0100
-+++ tcsh-6.22.00/config/midipix 2020-08-21 19:12:56.066600827 +0200
+--- tcsh-6.22.00.orig/system/midipix 1970-01-01 01:00:00.000000000 +0100
++++ tcsh-6.22.00/system/midipix 2020-08-21 19:12:56.066600827 +0200
@@ -0,0 +1,138 @@
+/*
+ * config.h -- configure various defines for tcsh
@@ -152,21 +199,6 @@ diff -Nru tcsh-6.22.00.orig/config/midipix tcsh-6.22.00/config/midipix
+#define HAVE_SLASHSLASH 1
+
+#endif /* _h_config */
-diff -Nru tcsh-6.22.00.orig/configure tcsh-6.22.00/configure
---- tcsh-6.22.00.orig/configure 2019-11-28 17:00:05.000000000 +0100
-+++ tcsh-6.22.00/configure 2020-08-21 19:08:03.600976202 +0200
-@@ -2975,6 +2975,11 @@
- tcsh_config_file=qnx6
- ;;
-
-+ ## midipix
-+ *-midipix*)
-+ tcsh_config_file=midipix
-+ ;;
-+
- * )
- as_fn_error $? "Tcsh can't guess the configuration file name
- for \`${host}' systems.
diff -Nru tcsh-6.22.00.orig/ed.inputl.c tcsh-6.22.00/ed.inputl.c
--- tcsh-6.22.00.orig/ed.inputl.c 2019-11-28 17:00:05.000000000 +0100
+++ tcsh-6.22.00/ed.inputl.c 2020-08-21 19:22:12.899460169 +0200
@@ -179,26 +211,6 @@ diff -Nru tcsh-6.22.00.orig/ed.inputl.c tcsh-6.22.00/ed.inputl.c
#define OKCMD INT_MAX
/* ed.inputl -- routines to get a single line from the input. */
-diff -Nru tcsh-6.22.00.orig/Makefile.in tcsh-6.22.00/Makefile.in
---- tcsh-6.22.00.orig/Makefile.in 2019-11-28 17:00:05.000000000 +0100
-+++ tcsh-6.22.00/Makefile.in 2020-08-21 19:28:01.686381892 +0200
-@@ -339,6 +339,7 @@
- #CC= cc -h0,ansi,novector,float0
- #CC= lcc -wa
- CC_FOR_GETHOST = @CC_FOR_GETHOST@
-+CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir)
- ED= ed
- AS= as
- RM= rm
-@@ -447,7 +448,7 @@
-
- gethost: gethost.c sh.err.h tc.const.h sh.h
- rm -f gethost
-- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} $(srcdir)/gethost.c
-+ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} ${LDFLAGS_FOR_GETHOST} $(srcdir)/gethost.c
-
- tc.defs.c: gethost host.defs
- @rm -f $@.tmp
diff -Nru tcsh-6.22.00.orig/sh.h tcsh-6.22.00/sh.h
--- tcsh-6.22.00.orig/sh.h 2019-11-28 17:00:05.000000000 +0100
+++ tcsh-6.22.00/sh.h 2020-08-21 19:10:44.030604961 +0200
diff --git a/patches/tiff/CVE-2018-12900.patch b/patches/tiff/CVE-2018-12900.patch
deleted file mode 100644
index f95cd06a..00000000
--- a/patches/tiff/CVE-2018-12900.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 86861b86f26be5301ccfa96f9bf765051f4e644a Mon Sep 17 00:00:00 2001
-From: pgajdos <pgajdos@suse.cz>
-Date: Tue, 13 Nov 2018 09:03:31 +0100
-Subject: [PATCH] prevent integer overflow
-
----
- tools/tiffcp.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/tools/tiffcp.c b/tools/tiffcp.c
-index 2f406e2d..ece7ba13 100644
---- a/tools/tiffcp.c
-+++ b/tools/tiffcp.c
-@@ -1435,6 +1435,12 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- status = 0;
- goto done;
- }
-+ if (0xFFFFFFFF / tilew < spp)
-+ {
-+ TIFFError(TIFFFileName(in), "Error, either TileWidth (%u) or BitsPerSample (%u) is too large", tilew, bps);
-+ status = 0;
-+ goto done;
-+ }
- bytes_per_sample = bps/8;
-
- for (row = 0; row < imagelength; row += tl) {
---
-2.18.1
-
diff --git a/patches/tk-8.7a1.local.patch b/patches/tk-8.7a1.local.patch
index 30bc5ca0..86b930e0 100644
--- a/patches/tk-8.7a1.local.patch
+++ b/patches/tk-8.7a1.local.patch
@@ -1,23 +1,33 @@
-diff -ru a/unix/configure b/unix/configure
---- a/unix/configure 2017-09-06 07:52:06.000000000 -0400
-+++ b/unix/configure 2019-08-20 12:46:31.097935159 -0400
-@@ -8054,13 +8054,21 @@
+diff -ru tk8.7a1.orig/unix/configure tk8.7a1/unix/configure
+--- tk8.7a1.orig/unix/configure 2023-03-30 14:25:29.062891597 +0200
++++ tk8.7a1/unix/configure 2023-03-30 14:25:08.830891475 +0200
+@@ -7752,8 +7752,8 @@
+ *)
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes\
+- ac_x_includes='$ac_x_includes'\
+- ac_x_libraries='$ac_x_libraries'"
++ ac_x_includes=''\
++ ac_x_libraries=''"
+ esac
+ fi
+ ;; #(
+@@ -8054,13 +8054,20 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_xft" >&5
$as_echo "$enable_xft" >&6; }
else
-+ if [ $cross_compiling = yes ]; then
-+ XFT_CONFIG=${host}-xft-config
-+ PKG_CONFIG=${host}-pkg-config
-+ else
-+ XFT_CONFIG=xft-config
-+ PKG_CONFIG=pkg-config
-+ fi
-+
++ if [ $cross_compiling = yes ]; then
++ XFT_CONFIG=${host}-xft-config
++ PKG_CONFIG=${host}-pkg-config
++ else
++ XFT_CONFIG=xft-config
++ PKG_CONFIG=pkg-config
++ fi
found_xft="yes"
- XFT_CFLAGS=`xft-config --cflags 2>/dev/null` || found_xft="no"
- XFT_LIBS=`xft-config --libs 2>/dev/null` || found_xft="no"
-+ XFT_CFLAGS=`"${XFT_CONFIG}" --cflags 2>/dev/null` || found_xft="no"
-+ XFT_LIBS=`"${XFT_CONFIG}" --libs 2>/dev/null` || found_xft="no"
++ XFT_CFLAGS=`"${PKG_CONFIG}" --cflags 2>/dev/null` || found_xft="no"
++ XFT_LIBS=`"${PKG_CONFIG}" --libs 2>/dev/null` || found_xft="no"
if test "$found_xft" = "no" ; then
found_xft=yes
- XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
diff --git a/patches/tree-2.0.4_pre.local.patch b/patches/tree-2.1.1_pre.local.patch
index 2c868850..2c868850 100644
--- a/patches/tree-2.0.4_pre.local.patch
+++ b/patches/tree-2.1.1_pre.local.patch
diff --git a/patches/vim-9.0.0234.local.patch b/patches/vim-9.0.0234.local.patch
deleted file mode 100644
index f91e2645..00000000
--- a/patches/vim-9.0.0234.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru vim-8.2.4230.orig/src/libvterm/src/vterm_internal.h vim-8.2.4230/src/libvterm/src/vterm_internal.h
---- vim-8.2.4230.orig/src/libvterm/src/vterm_internal.h 2022-01-27 16:04:22.000000000 +0100
-+++ vim-8.2.4230/src/libvterm/src/vterm_internal.h 2022-01-27 17:07:13.522370456 +0100
-@@ -5,7 +5,7 @@
-
- #include <stdarg.h>
-
--#if defined(__GNUC__) && !defined(__MINGW32__)
-+#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__midipix__)
- # define INTERNAL __attribute__((visibility("internal")))
- # define UNUSED __attribute__((unused))
- #else
diff --git a/patches/vim-9.0.0234_pre.local.patch b/patches/vim-9.0.1927_pre.local.patch
index 5913b9f7..d3a4eca7 100644
--- a/patches/vim-9.0.0234_pre.local.patch
+++ b/patches/vim-9.0.1927_pre.local.patch
@@ -1,3 +1,15 @@
+diff -ru vim-8.2.4230.orig/src/libvterm/src/vterm_internal.h vim-8.2.4230/src/libvterm/src/vterm_internal.h
+--- vim-8.2.4230.orig/src/libvterm/src/vterm_internal.h 2022-01-27 16:04:22.000000000 +0100
++++ vim-8.2.4230/src/libvterm/src/vterm_internal.h 2022-01-27 17:07:13.522370456 +0100
+@@ -5,7 +5,7 @@
+
+ #include <stdarg.h>
+
+-#if defined(__GNUC__) && !defined(__MINGW32__)
++#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__midipix__)
+ # define INTERNAL __attribute__((visibility("internal")))
+ # define UNUSED __attribute__((unused))
+ #else
diff -ru vim-8.2.4230.orig/src/auto/configure vim-8.2.4230/src/auto/configure
--- vim-8.2.4230.orig/src/auto/configure 2022-01-27 16:04:22.000000000 +0100
+++ vim-8.2.4230/src/auto/configure 2022-01-27 17:15:07.217234738 +0100
diff --git a/patches/vim/no-timers.patch b/patches/vim/no-timers.patch
new file mode 100644
index 00000000..b06c9b4b
--- /dev/null
+++ b/patches/vim/no-timers.patch
@@ -0,0 +1,19 @@
+diff -ru vim-9.0.1128.orig/src/feature.h vim-9.0.1128/src/feature.h
+--- vim-9.0.1128.orig/src/feature.h 2023-01-01 21:31:30.000000000 +0100
++++ vim-9.0.1128/src/feature.h 2023-01-02 11:59:16.584845483 +0100
+@@ -270,6 +270,7 @@
+ /*
+ * +reltime reltime() function
+ */
++#ifndef __midipix__
+ #if defined(FEAT_NORMAL) \
+ && defined(FEAT_EVAL) \
+ && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) \
+@@ -277,6 +278,7 @@
+ || defined(MSWIN))
+ # define FEAT_RELTIME
+ #endif
++#endif
+
+ /*
+ * +timers timer_start()
diff --git a/patches/vim_minipix b/patches/vim_minipix
new file mode 120000
index 00000000..7923f59d
--- /dev/null
+++ b/patches/vim_minipix
@@ -0,0 +1 @@
+vim \ No newline at end of file
diff --git a/patches/vim_minipix-9.0.0234.local.patch b/patches/vim_minipix-9.0.0234.local.patch
deleted file mode 120000
index a30c1198..00000000
--- a/patches/vim_minipix-9.0.0234.local.patch
+++ /dev/null
@@ -1 +0,0 @@
-vim-9.0.0234.local.patch \ No newline at end of file
diff --git a/patches/vim_minipix-9.0.0234_pre.local.patch b/patches/vim_minipix-9.0.0234_pre.local.patch
deleted file mode 120000
index 90ea08f5..00000000
--- a/patches/vim_minipix-9.0.0234_pre.local.patch
+++ /dev/null
@@ -1 +0,0 @@
-vim-9.0.0234_pre.local.patch \ No newline at end of file
diff --git a/patches/vim_minipix-9.0.1927_pre.local.patch b/patches/vim_minipix-9.0.1927_pre.local.patch
new file mode 120000
index 00000000..e570e709
--- /dev/null
+++ b/patches/vim_minipix-9.0.1927_pre.local.patch
@@ -0,0 +1 @@
+vim-9.0.1927_pre.local.patch \ No newline at end of file
diff --git a/patches/weechat-3.6_pre.local.patch b/patches/weechat-3.6_pre.local.patch
deleted file mode 100644
index 1144a869..00000000
--- a/patches/weechat-3.6_pre.local.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -ru weechat-2.9.orig/configure.ac weechat-2.9/configure.ac
---- weechat-2.9.orig/configure.ac 2020-07-18 13:59:02.000000000 +0200
-+++ weechat-2.9/configure.ac 2020-10-06 22:27:28.776471083 +0200
-@@ -192,18 +192,6 @@
- fi
-
- # ------------------------------------------------------------------------------
--# pkg-config
--# ------------------------------------------------------------------------------
--
--PKGCONFIG=""
--AC_CHECK_PROGS(PKGCONFIG, pkg-config)
--if test "x$PKGCONFIG" = "x"; then
-- AC_MSG_ERROR([
--*** "pkg-config" couldn't be found on your system.
--*** Try to install it with your software package manager.])
--fi
--
--# ------------------------------------------------------------------------------
- # dynamic loader
- # ------------------------------------------------------------------------------
-
-@@ -1049,8 +1037,8 @@
- *** or try to install it with your software package manager.])
- else
- AC_MSG_RESULT(yes)
-- GCRYPT_CFLAGS=`libgcrypt-config --cflags`
-- GCRYPT_LFLAGS=`libgcrypt-config --libs`
-+ GCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
-+ GCRYPT_LFLAGS=`$LIBGCRYPT_CONFIG --libs`
- AC_SUBST(GCRYPT_CFLAGS)
- AC_SUBST(GCRYPT_LFLAGS)
- fi
-@@ -1070,8 +1058,8 @@
- *** or try to install it with your software package manager.])
- else
- AC_MSG_RESULT(yes)
-- GNUTLS_CFLAGS=`pkg-config gnutls --cflags`
-- GNUTLS_LFLAGS=`pkg-config gnutls --libs`
-+ GNUTLS_CFLAGS=`$PKGCONFIG gnutls --cflags`
-+ GNUTLS_LFLAGS=`$PKGCONFIG gnutls --libs`
- AC_SUBST(GNUTLS_CFLAGS)
- AC_SUBST(GNUTLS_LFLAGS)
- fi
-@@ -1160,8 +1148,8 @@
- *** or try to install it with your software package manager.])
- else
- AC_MSG_RESULT(yes)
-- ZLIB_CFLAGS=`pkg-config zlib --cflags`
-- ZLIB_LFLAGS=`pkg-config zlib --libs`
-+ ZLIB_CFLAGS=`$PKGCONFIG zlib --cflags`
-+ ZLIB_LFLAGS=`$PKGCONFIG zlib --libs`
- AC_SUBST(ZLIB_CFLAGS)
- AC_SUBST(ZLIB_LFLAGS)
- fi
diff --git a/patches/weechat-3.6.local.patch b/patches/weechat-3.8.local.patch
index 4d41b8ad..4d41b8ad 100644
--- a/patches/weechat-3.6.local.patch
+++ b/patches/weechat-3.8.local.patch
diff --git a/patches/weechat-3.8_pre.local.patch b/patches/weechat-3.8_pre.local.patch
new file mode 100644
index 00000000..ebb73eed
--- /dev/null
+++ b/patches/weechat-3.8_pre.local.patch
@@ -0,0 +1,117 @@
+diff -ru weechat-3.8.orig/configure.ac weechat-3.8/configure.ac
+--- weechat-3.8.orig/configure.ac 2023-01-08 10:07:07.000000000 +0100
++++ weechat-3.8/configure.ac 2024-02-17 14:04:48.583831305 +0100
+@@ -184,18 +184,6 @@
+ fi
+
+ # ------------------------------------------------------------------------------
+-# pkg-config
+-# ------------------------------------------------------------------------------
+-
+-PKGCONFIG=""
+-AC_CHECK_PROGS(PKGCONFIG, pkg-config)
+-if test "x$PKGCONFIG" = "x"; then
+- AC_MSG_ERROR([
+-*** "pkg-config" couldn't be found on your system.
+-*** Try to install it with your software package manager.])
+-fi
+-
+-# ------------------------------------------------------------------------------
+ # dynamic loader
+ # ------------------------------------------------------------------------------
+
+@@ -231,7 +219,7 @@
+ NCURSES_LFLAGS="-lncurses"
+ fi
+ else
+- NCURSES_LFLAGS="-lncursesw"
++ NCURSES_LFLAGS="-lncursesw -ltinfow"
+ fi
+ AC_CHECK_HEADERS([ncurses.h ncursesw/curses.h])
+ AC_SUBST(NCURSES_LFLAGS)
+@@ -409,52 +397,6 @@
+
+ # ---------------------------------- perl --------------------------------------
+
+-PERL_VERSION=
+-
+-if test "x$enable_perl" = "xyes" ; then
+- AC_PATH_PROGS(PERL, perl perl5)
+- if test -z $PERL ; then
+- AC_MSG_WARN([
+-*** Perl must be installed on your system but perl interpreter couldn't be found in path.
+-*** Please check that perl is in path, or install it with your software package manager.
+-*** WeeChat will be built without Perl support.])
+- enable_perl="no"
+- not_found="$not_found perl"
+- else
+- PERL_VERSION=`perl -V:version | sed "s/version='\(.*\)';/\1/"`
+- AC_MSG_CHECKING(for Perl headers files)
+-
+- PERL_HEADER_TEST=`PT=perltest.c ; echo "#include <EXTERN.h>" > $PT; echo "#include <perl.h>" >> $PT; echo "#include <XSUB.h>" >> $PT ; echo "int main() { return 0; }" >> $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ccopts -e ldopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1`
+-
+- if test "x$PERL_HEADER_TEST" = "x0" ; then
+- PERL_CFLAGS=`$PERL -MExtUtils::Embed -e ccopts`
+- AC_MSG_RESULT(found)
+- AC_MSG_CHECKING(for Perl library)
+- PERL_LIB_TEST=`PT=perltest.c ; echo "int main() { return 0; }" > $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ldopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1`
+- if test "x$PERL_LIB_TEST" = "x0" ; then
+- PERL_LFLAGS=`$PERL -MExtUtils::Embed -e ldopts`
+- AC_MSG_RESULT(found)
+- else
+- AC_MSG_WARN([
+-*** Perl library couldn't be found on your system.
+-*** Try to install it with your software package manager.
+-*** WeeChat will be built without Perl support.])
+- enable_perl="no"
+- not_found="$not_found perl"
+- fi
+- else
+- AC_MSG_WARN([
+-*** Perl headers couldn't be found on your system.
+-*** Try to install it with your software package manager.
+-*** WeeChat will be built without Perl support.])
+- enable_perl="no"
+- not_found="$not_found perl"
+- fi
+- fi
+-else
+- not_asked="$not_asked perl"
+-fi
+-
+ if test "x$enable_perl" = "xyes" ; then
+ AC_SUBST(PERL_CFLAGS)
+ AC_SUBST(PERL_LFLAGS)
+@@ -1053,8 +995,8 @@
+ *** or try to install it with your software package manager.])
+ else
+ AC_MSG_RESULT(yes)
+- GCRYPT_CFLAGS=`libgcrypt-config --cflags`
+- GCRYPT_LFLAGS=`libgcrypt-config --libs`
++ GCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
++ GCRYPT_LFLAGS=`$LIBGCRYPT_CONFIG --libs`
+ AC_SUBST(GCRYPT_CFLAGS)
+ AC_SUBST(GCRYPT_LFLAGS)
+ fi
+@@ -1074,8 +1016,8 @@
+ *** or try to install it with your software package manager.])
+ else
+ AC_MSG_RESULT(yes)
+- GNUTLS_CFLAGS=`pkg-config gnutls --cflags`
+- GNUTLS_LFLAGS=`pkg-config gnutls --libs`
++ GNUTLS_CFLAGS=`$PKGCONFIG gnutls --cflags`
++ GNUTLS_LFLAGS=`$PKGCONFIG gnutls --libs`
+ AC_SUBST(GNUTLS_CFLAGS)
+ AC_SUBST(GNUTLS_LFLAGS)
+ fi
+@@ -1164,8 +1106,8 @@
+ *** or try to install it with your software package manager.])
+ else
+ AC_MSG_RESULT(yes)
+- ZLIB_CFLAGS=`pkg-config zlib --cflags`
+- ZLIB_LFLAGS=`pkg-config zlib --libs`
++ ZLIB_CFLAGS=`$PKGCONFIG zlib --cflags`
++ ZLIB_LFLAGS=`$PKGCONFIG zlib --libs`
+ AC_SUBST(ZLIB_CFLAGS)
+ AC_SUBST(ZLIB_LFLAGS)
+ fi
diff --git a/patches/wget-1.24.5.local.patch b/patches/wget-1.24.5.local.patch
new file mode 100644
index 00000000..0fb393c4
--- /dev/null
+++ b/patches/wget-1.24.5.local.patch
@@ -0,0 +1,12 @@
+diff -ru wget-1.21.4.orig/src/ptimer.c wget-1.21.4/src/ptimer.c
+--- wget-1.21.4.orig/src/ptimer.c 2023-05-11 00:18:48.000000000 +0200
++++ wget-1.21.4/src/ptimer.c 2024-03-05 20:15:46.700140687 +0100
+@@ -80,8 +80,6 @@
+
+ #if defined(WINDOWS) || defined(__CYGWIN__)
+ # define PTIMER_WINDOWS /* use Windows timers */
+-#elif _POSIX_TIMERS - 0 > 0
+-# define PTIMER_POSIX /* use POSIX timers (clock_gettime) */
+ #else
+ # define PTIMER_GETTIMEOFDAY /* use gettimeofday */
+ #endif
diff --git a/patches/wget2-2.0.0_pre.local.patch b/patches/wget2-2.0.0_pre.local.patch
deleted file mode 100644
index 0b67c8b1..00000000
--- a/patches/wget2-2.0.0_pre.local.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff -ru wget2-2.0.0.orig/libwget/Makefile.in wget2-2.0.0/libwget/Makefile.in
---- wget2-2.0.0.orig/libwget/Makefile.in 2021-09-12 13:37:52.000000000 +0200
-+++ wget2-2.0.0/libwget/Makefile.in 2021-09-27 01:45:33.013896090 +0200
-@@ -2527,95 +2527,95 @@
- @ENABLE_MANYLIBS_TRUE@libwget_alloc_la_SOURCES = xalloc.c
- @ENABLE_MANYLIBS_TRUE@libwget_alloc_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_alloc_la_LIBADD = ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_alloc_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_alloc_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_ip_la_SOURCES = ip.c
- @ENABLE_MANYLIBS_TRUE@libwget_ip_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_ip_la_LIBADD = $(INET_PTON_LIB) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_ip_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_ip_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_common_la_SOURCES = buffer.c buffer_printf.c base64.c bitmap.c hashmap.c list.c log.c mem.c printf.c stringmap.c strlcpy.c strscpy.c utils.c vector.c error.c
- @ENABLE_MANYLIBS_TRUE@libwget_common_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_common_la_LIBADD = libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_common_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_common_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_thread_la_SOURCES = thread.c
- @ENABLE_MANYLIBS_TRUE@libwget_thread_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_thread_la_LIBADD = libwget_alloc.la $(LIB_CLOCK_GETTIME) $(LTLIBMULTITHREAD) $(LTLIBTHREAD) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_thread_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_thread_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_encoding_la_SOURCES = encoding.c
- @ENABLE_MANYLIBS_TRUE@libwget_encoding_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_encoding_la_LIBADD = libwget_common.la libwget_alloc.la $(LIBIDN_LIBS) $(LIBIDN2_LIBS) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_encoding_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_encoding_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_iri_la_SOURCES = iri.c
- @ENABLE_MANYLIBS_TRUE@libwget_iri_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_iri_la_LIBADD = libwget_encoding.la libwget_ip.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_iri_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_iri_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_io_la_SOURCES = io.c
- @ENABLE_MANYLIBS_TRUE@libwget_io_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_io_la_LIBADD = libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_io_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_io_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hashfile_la_SOURCES = hashfile.c
- @ENABLE_MANYLIBS_TRUE@libwget_hashfile_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hashfile_la_LIBADD = libwget_common.la libwget_alloc.la $(GNUTLS_LIBS) $(WOLFSSL_LIBS) $(OPENSSL_LIBS) $(NETTLE_LIBS) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_hashfile_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_hashfile_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hpkp_db_la_SOURCES = hpkp_db.c hpkp.c hpkp.h
- @ENABLE_MANYLIBS_TRUE@libwget_hpkp_db_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hpkp_db_la_LIBADD = libwget_hashfile.la libwget_io.la libwget_thread.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_hpkp_db_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_hpkp_db_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hsts_la_SOURCES = hsts.c
- @ENABLE_MANYLIBS_TRUE@libwget_hsts_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_hsts_la_LIBADD = libwget_io.la libwget_thread.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_hsts_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_hsts_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_ocsp_la_SOURCES = ocsp.c
- @ENABLE_MANYLIBS_TRUE@libwget_ocsp_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_ocsp_la_LIBADD = libwget_io.la libwget_thread.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_ocsp_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_ocsp_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_tls_session_la_SOURCES = tls_session.c
- @ENABLE_MANYLIBS_TRUE@libwget_tls_session_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_tls_session_la_LIBADD = libwget_io.la libwget_thread.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_tls_session_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_tls_session_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_http_parse_la_SOURCES = http_parse.c cookie_parse.c cookie.h hpkp.c cookie.h
- @ENABLE_MANYLIBS_TRUE@libwget_http_parse_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_http_parse_la_LIBADD = libwget_encoding.la libwget_common.la libwget_alloc.la $(LIBPSL_LIBS) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_http_parse_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_http_parse_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_logger_la_SOURCES = logger.c
- @ENABLE_MANYLIBS_TRUE@libwget_logger_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_logger_la_LIBADD = libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_logger_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_logger_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_dnscache_la_SOURCES = dns_cache.c
- @ENABLE_MANYLIBS_TRUE@libwget_dnscache_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_dnscache_la_LIBADD = libwget_thread.la libwget_common.la libwget_alloc.la $(GETADDRINFO_LIB) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_dnscache_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_dnscache_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_dns_la_SOURCES = dns.c
- @ENABLE_MANYLIBS_TRUE@libwget_dns_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_dns_la_LIBADD = libwget_dnscache.la libwget_ip.la libwget_logger.la libwget_thread.la libwget_common.la libwget_alloc.la $(GETADDRINFO_LIB) ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_dns_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_dns_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_robots_la_SOURCES = robots.c
- @ENABLE_MANYLIBS_TRUE@libwget_robots_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_robots_la_LIBADD = libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_robots_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_robots_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_xml_la_SOURCES = xml.c
- @ENABLE_MANYLIBS_TRUE@libwget_xml_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_xml_la_LIBADD = libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_xml_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_xml_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_metalink_la_SOURCES = metalink.c
- @ENABLE_MANYLIBS_TRUE@libwget_metalink_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_metalink_la_LIBADD = libwget_xml.la libwget_iri.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_metalink_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_metalink_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_netrc_la_SOURCES = netrc.c
- @ENABLE_MANYLIBS_TRUE@libwget_netrc_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_netrc_la_LIBADD = libwget_io.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_netrc_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_netrc_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_decompress_la_SOURCES = decompressor.c
- @ENABLE_MANYLIBS_TRUE@libwget_decompress_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_decompress_la_LIBADD = libwget_common.la libwget_alloc.la ../lib/libgnu.la $(ZSTD_LIBS) $(BROTLIDEC_LIBS) $(LZMA_LIBS) $(ZLIB_LIBS) $(BZ2_LIBS) $(LZIP_LIBS)
--@ENABLE_MANYLIBS_TRUE@libwget_decompress_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_decompress_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_css_la_SOURCES = css_url.c css.c css_tokenizer.h
- @ENABLE_MANYLIBS_TRUE@libwget_css_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_css_la_LIBADD = libcsstokenizer.la libwget_iri.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_css_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_css_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_progress_la_SOURCES = bar.c
- @ENABLE_MANYLIBS_TRUE@libwget_progress_la_CPPFLAGS = $(libwget_la_CPPFLAGS)
- @ENABLE_MANYLIBS_TRUE@libwget_progress_la_LIBADD = libwget_thread.la libwget_common.la libwget_alloc.la ../lib/libgnu.la
--@ENABLE_MANYLIBS_TRUE@libwget_progress_la_LDFLAGS = $(libwget_la_LDFLAGS) -no-whole-archive
-+@ENABLE_MANYLIBS_TRUE@libwget_progress_la_LDFLAGS = $(libwget_la_LDFLAGS)
- @ENABLE_MANYLIBS_TRUE@test_linking_common_SOURCES = test_linking_common.c
- @ENABLE_MANYLIBS_TRUE@test_linking_common_CPPFLAGS = -I$(top_srcdir)/include/wget -I$(top_builddir)/include/wget
- @ENABLE_MANYLIBS_TRUE@test_linking_common_LDADD = libwget_common.la
diff --git a/patches/wget2-2.0.1.local.patch b/patches/wget2-2.0.1.local.patch
new file mode 100644
index 00000000..c4ecc7d4
--- /dev/null
+++ b/patches/wget2-2.0.1.local.patch
@@ -0,0 +1,31 @@
+diff -ru wget2-2.0.1.orig/libwget/net.c wget2-2.0.1/libwget/net.c
+--- wget2-2.0.1.orig/libwget/net.c 2022-12-21 13:17:32.426227872 +0100
++++ wget2-2.0.1/libwget/net.c 2022-12-21 13:16:45.802227589 +0100
+@@ -52,6 +52,7 @@
+ # include <fcntl.h>
+ #endif
+
++#if 0
+ #if defined __APPLE__ && defined __MACH__ && defined CONNECT_DATA_IDEMPOTENT && defined CONNECT_RESUME_ON_READ_WRITE
+ # define TCP_FASTOPEN_OSX
+ #elif defined TCP_FASTOPEN_CONNECT // since Linux 4.11
+@@ -59,6 +60,7 @@
+ #elif defined TCP_FASTOPEN && defined MSG_FASTOPEN
+ # define TCP_FASTOPEN_LINUX
+ #endif
++#endif
+
+ #include <wget.h>
+ #include "private.h"
+@@ -608,9 +610,11 @@
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on)) == -1)
+ error_printf(_("Failed to set socket option REUSEADDR\n"));
+
++#ifndef __midipix__
+ on = 1;
+ if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (void *)&on, sizeof(on)) == -1)
+ error_printf(_("Failed to set socket option NODELAY\n"));
++#endif
+
+ #ifdef SO_BINDTODEVICE
+ if (tcp->bind_interface) {
diff --git a/patches/wget_minipix-1.24.5.local.patch b/patches/wget_minipix-1.24.5.local.patch
new file mode 120000
index 00000000..23954a74
--- /dev/null
+++ b/patches/wget_minipix-1.24.5.local.patch
@@ -0,0 +1 @@
+wget-1.24.5.local.patch \ No newline at end of file
diff --git a/patches/whois-5.5.13.local.patch b/patches/whois-5.5.22.local.patch
index 432f7fac..6fb35b17 100644
--- a/patches/whois-5.5.13.local.patch
+++ b/patches/whois-5.5.22.local.patch
@@ -11,11 +11,11 @@
-whois_LDADD += $(shell $(PKG_CONFIG) --libs libidn)
-DEFS += -DHAVE_LIBIDN $(shell $(PKG_CONFIG) --cflags libidn)
+ifeq ($(shell ${PKG_CONFIG} --exists 'libidn2 >= 2.0.3' || echo NO),)
-+whois_LDADD += $(shell ${PKG_CONFIG} --libs libidn2)
-+DEFS += -DHAVE_LIBIDN2 $(shell ${PKG_CONFIG} --cflags libidn2)
++whois_LDADD += $(shell ${PKG_CONFIG} --libs-only-l libidn2)
++DEFS += -DHAVE_LIBIDN2 $(shell ${PKG_CONFIG} --cflags-only-other libidn2)
+else ifeq ($(shell ${PKG_CONFIG} --exists 'libidn' || echo NO),)
-+whois_LDADD += $(shell ${PKG_CONFIG} --libs libidn)
-+DEFS += -DHAVE_LIBIDN $(shell ${PKG_CONFIG} --cflags libidn)
++whois_LDADD += $(shell ${PKG_CONFIG} --libs-only-l libidn)
++DEFS += -DHAVE_LIBIDN $(shell ${PKG_CONFIG} --cflags-only-other libidn)
endif
ifdef HAVE_ICONV
@@ -32,28 +32,8 @@
nice afl-fuzz -i ../afl_in -o ../afl_out -- ./whois
##############################################################################
--install: install-whois install-mkpasswd install-pos
-+install: install-whois install-mkpasswd
+-install: install-whois install-mkpasswd install-pos install-bashcomp
++install: install-whois install-mkpasswd install-bashcomp
install-whois: whois
$(INSTALL) -d $(BASEDIR)$(prefix)/bin/
-@@ -137,9 +137,6 @@
- $(INSTALL) -m 0755 mkpasswd $(BASEDIR)$(prefix)/bin/
- $(INSTALL) -m 0644 mkpasswd.1 $(BASEDIR)$(prefix)/share/man/man1/
-
--install-pos:
-- cd po && $(MAKE) install
--
- distclean: clean
- rm -f po/whois.pot
-
-@@ -148,9 +145,6 @@
- new_gtlds.h tld_serv.h servers_charset.h *.o whois mkpasswd
- rm -f po/*.mo
-
--pos:
-- cd po && $(MAKE)
--
- depend: Makefile.depend
- Makefile.depend:
- $(CC) $(CPPFLAGS) $(CFLAGS) -MM -MG *.c > $@
diff --git a/patches/xcb-1.16.1_pre.local.patch b/patches/xcb-1.16.1_pre.local.patch
new file mode 100644
index 00000000..2f66288d
--- /dev/null
+++ b/patches/xcb-1.16.1_pre.local.patch
@@ -0,0 +1,19 @@
+diff -ru libxcb-1.16.1.orig/configure libxcb-1.16.1/configure
+--- libxcb-1.16.1.orig/configure 2024-03-02 20:38:27.000000000 +0100
++++ libxcb-1.16.1/configure 2024-04-14 20:26:41.346651860 +0200
+@@ -21716,7 +21716,6 @@
+ # Find the xcb-proto protocol descriptions
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking XCBPROTO_XCBINCLUDEDIR" >&5
+ printf %s "checking XCBPROTO_XCBINCLUDEDIR... " >&6; }
+-XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XCBPROTO_XCBINCLUDEDIR" >&5
+ printf "%s\n" "$XCBPROTO_XCBINCLUDEDIR" >&6; }
+
+@@ -21728,7 +21727,6 @@
+ # Find the xcbgen Python package
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking XCBPROTO_XCBPYTHONDIR" >&5
+ printf %s "checking XCBPROTO_XCBPYTHONDIR... " >&6; }
+-XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XCBPROTO_XCBPYTHONDIR" >&5
+ printf "%s\n" "$XCBPROTO_XCBPYTHONDIR" >&6; }
+
diff --git a/patches/xcb_proto-1.12.local.patch b/patches/xcb_proto-1.12.local.patch
deleted file mode 100644
index 9930c12b..00000000
--- a/patches/xcb_proto-1.12.local.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001
-From: Thomas Klausner <wiz@NetBSD.org>
-Date: Thu, 19 May 2016 17:30:04 +0200
-Subject: Make whitespace use consistent.
-
-At least python-3.5.x complains about this forcefully.
-
-Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
-Signed-off-by: Uli Schlachter <psychon@znc.in>
-
-diff --git a/xcbgen/align.py b/xcbgen/align.py
-index 5e31838..d4c12ee 100644
---- a/xcbgen/align.py
-+++ b/xcbgen/align.py
-@@ -16,12 +16,12 @@ class Alignment(object):
- return self.align == other.align and self.offset == other.offset
-
- def __str__(self):
-- return "(align=%d, offset=%d)" % (self.align, self.offset)
-+ return "(align=%d, offset=%d)" % (self.align, self.offset)
-
- @staticmethod
- def for_primitive_type(size):
-- # compute the required start_alignment based on the size of the type
-- if size % 8 == 0:
-+ # compute the required start_alignment based on the size of the type
-+ if size % 8 == 0:
- # do 8-byte primitives require 8-byte alignment in X11?
- return Alignment(8,0)
- elif size % 4 == 0:
-@@ -33,7 +33,7 @@ class Alignment(object):
-
-
- def align_after_fixed_size(self, size):
-- new_offset = (self.offset + size) % self.align
-+ new_offset = (self.offset + size) % self.align
- return Alignment(self.align, new_offset)
-
-
-@@ -41,7 +41,7 @@ class Alignment(object):
- '''
- Assuming the given external_align, checks whether
- self is fulfilled for all cases.
-- Returns True if yes, False otherwise.
-+ Returns True if yes, False otherwise.
- '''
- if self.align == 1 and self.offset == 0:
- # alignment 1 with offset 0 is always fulfilled
-@@ -55,9 +55,9 @@ class Alignment(object):
- # the external align guarantees less alignment -> not guaranteed
- return False
-
-- if external_align.align % self.align != 0:
-+ if external_align.align % self.align != 0:
- # the external align cannot be divided by our align
-- # -> not guaranteed
-+ # -> not guaranteed
- # (this can only happen if there are alignments that are not
- # a power of 2, which is highly discouraged. But better be
- # safe and check for it)
-@@ -72,7 +72,7 @@ class Alignment(object):
-
- def combine_with(self, other):
- # returns the alignment that is guaranteed when
-- # both, self or other, can happen
-+ # both, self or other, can happen
- new_align = gcd(self.align, other.align)
- new_offset_candidate1 = self.offset % new_align
- new_offset_candidate2 = other.offset % new_align
-@@ -83,8 +83,8 @@ class Alignment(object):
- new_align = gcd(new_align, offset_diff)
- new_offset_candidate1 = self.offset % new_align
- new_offset_candidate2 = other.offset % new_align
-- assert new_offset_candidate1 == new_offset_candidate2
-- new_offset = new_offset_candidate1
-+ assert new_offset_candidate1 == new_offset_candidate2
-+ new_offset = new_offset_candidate1
- # return the result
- return Alignment(new_align, new_offset)
-
-@@ -92,44 +92,44 @@ class Alignment(object):
- class AlignmentLog(object):
-
- def __init__(self):
-- self.ok_list = []
-- self.fail_list = []
-- self.verbosity = 1
-+ self.ok_list = []
-+ self.fail_list = []
-+ self.verbosity = 1
-
- def __str__(self):
-- result = ""
-+ result = ""
-
-- # output the OK-list
-- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
-- stacksize = len(callstack)
-+ # output the OK-list
-+ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
-+ stacksize = len(callstack)
- indent = ' ' * stacksize
-- if self.ok_callstack_is_relevant(callstack):
-+ if self.ok_callstack_is_relevant(callstack):
- if field_name is None or field_name == "":
-- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n"
-- % (indent, str(type_obj), indent, str(align_before), str(align_after)))
-- else:
-- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
-- % (indent, str(field_name), str(type_obj),
-- indent, str(align_before), str(align_after)))
-+ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n"
-+ % (indent, str(type_obj), indent, str(align_before), str(align_after)))
-+ else:
-+ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
-+ % (indent, str(field_name), str(type_obj),
-+ indent, str(align_before), str(align_after)))
- if self.verbosity >= 1:
-- result += self.callstack_to_str(indent, callstack)
-+ result += self.callstack_to_str(indent, callstack)
-
-- # output the fail-list
-- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
-- stacksize = len(callstack)
-+ # output the fail-list
-+ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
-+ stacksize = len(callstack)
- indent = ' ' * stacksize
-- if field_name is None or field_name == "":
-- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
-- % (indent, str(align_before), indent, str(type_obj), indent, reason))
-- else:
-- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
-- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
-+ if field_name is None or field_name == "":
-+ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
-+ % (indent, str(align_before), indent, str(type_obj), indent, reason))
-+ else:
-+ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
-+ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
-
- if self.verbosity >= 1:
-- result += self.callstack_to_str(indent, callstack)
-+ result += self.callstack_to_str(indent, callstack)
-
-
-- return result
-+ return result
-
-
- def callstack_to_str(self, indent, callstack):
-@@ -137,41 +137,41 @@ class AlignmentLog(object):
- for stack_elem in callstack:
- result += "\t %s%s\n" % (indent, str(stack_elem))
- result += "\t%s]\n" % indent
-- return result
-+ return result
-
-
- def ok_callstack_is_relevant(self, ok_callstack):
- # determine whether an ok callstack is relevant for logging
-- if self.verbosity >= 2:
-- return True
-+ if self.verbosity >= 2:
-+ return True
-
- # empty callstacks are always relevant
-- if len(ok_callstack) == 0:
-+ if len(ok_callstack) == 0:
- return True
-
-- # check whether the ok_callstack is a subset or equal to a fail_callstack
-+ # check whether the ok_callstack is a subset or equal to a fail_callstack
- for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list:
- if len(ok_callstack) <= len(fail_callstack):
- zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
-- is_subset = all([i == j for i, j in zipped])
-- if is_subset:
-+ is_subset = all([i == j for i, j in zipped])
-+ if is_subset:
- return True
-
- return False
-
-
- def ok(self, align_before, field_name, type_obj, callstack, align_after):
-- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
-+ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
-
- def fail(self, align_before, field_name, type_obj, callstack, reason):
-- self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
-+ self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
-
- def append(self, other):
-- self.ok_list.extend(other.ok_list)
-- self.fail_list.extend(other.fail_list)
-+ self.ok_list.extend(other.ok_list)
-+ self.fail_list.extend(other.fail_list)
-
- def ok_count(self):
-- return len(self.ok_list)
-+ return len(self.ok_list)
-
-
-
---
-cgit v0.10.2
-
-From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001
-From: Thomas Klausner <wiz@NetBSD.org>
-Date: Thu, 19 May 2016 17:30:05 +0200
-Subject: print() is a function and needs parentheses.
-
-Fixes build with python-3.x.
-
-Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
-Signed-off-by: Uli Schlachter <psychon@znc.in>
-
-diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
-index c3b5758..b83b119 100644
---- a/xcbgen/xtypes.py
-+++ b/xcbgen/xtypes.py
-@@ -501,7 +501,7 @@ class ComplexType(Type):
- int(required_start_align_element.get('align', "4"), 0),
- int(required_start_align_element.get('offset', "0"), 0))
- if verbose_align_log:
-- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align)
-+ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align))
-
- def resolve(self, module):
- if self.resolved:
-@@ -592,7 +592,7 @@ class ComplexType(Type):
- if verbose_align_log:
- print ("calc_required_start_align: %s has start-align %s"
- % (str(self), str(self.required_start_align)))
-- print "Details:\n" + str(log)
-+ print ("Details:\n" + str(log))
- if self.required_start_align.offset != 0:
- print (("WARNING: %s\n\thas start-align with non-zero offset: %s"
- + "\n\tsuggest to add explicit definition with:"
-@@ -619,12 +619,12 @@ class ComplexType(Type):
- for offset in range(0,align):
- align_candidate = Alignment(align, offset)
- if verbose_align_log:
-- print "trying %s for %s" % (str(align_candidate), str(self))
-+ print ("trying %s for %s" % (str(align_candidate), str(self)))
- my_log = AlignmentLog()
- if self.is_possible_start_align(align_candidate, callstack, my_log):
- log.append(my_log)
- if verbose_align_log:
-- print "found start-align %s for %s" % (str(align_candidate), str(self))
-+ print ("found start-align %s for %s" % (str(align_candidate), str(self)))
- return align_candidate
- else:
- my_ok_count = my_log.ok_count()
-@@ -641,7 +641,7 @@ class ComplexType(Type):
- # none of the candidates applies
- # this type has illegal internal aligns for all possible start_aligns
- if verbose_align_log:
-- print "didn't find start-align for %s" % str(self)
-+ print ("didn't find start-align for %s" % str(self))
- log.append(best_log)
- return None
-
-@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
- # aux function for unchecked_get_alignment_after
- def get_align_for_selected_case_field(self, case_field, start_align, callstack, log):
- if verbose_align_log:
-- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))
-+ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)))
- total_align = start_align
- for field in self.bitcases:
- my_callstack = callstack[:]
---
-cgit v0.10.2
-
diff --git a/patches/yabasic-2.83.0.local.patch b/patches/yabasic-2.83.0.local.patch
deleted file mode 100644
index 8dee7982..00000000
--- a/patches/yabasic-2.83.0.local.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -ru yabasic-2.83.0.orig/configure yabasic-2.83.0/configure
---- yabasic-2.83.0.orig/configure 2019-06-15 16:58:01.081213787 +0200
-+++ yabasic-2.83.0/configure 2019-06-15 16:58:27.697212954 +0200
-@@ -13304,7 +13304,7 @@
- return 0;
- }
- _ACEOF
--for ac_lib in '' curses; do
-+for ac_lib in '' ncurses; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
-Only in yabasic-2.83.0: configure.orig
-diff -ru yabasic-2.83.0.orig/graphic.c yabasic-2.83.0/graphic.c
---- yabasic-2.83.0.orig/graphic.c 2019-05-16 06:01:06.000000000 +0200
-+++ yabasic-2.83.0/graphic.c 2019-06-15 17:03:51.116903177 +0200
-@@ -19,7 +19,11 @@
- #include "yabasic.h" /* all prototypes and structures */
- #endif
- #ifdef UNIX
-+#ifdef HAVE_NCURSES_H
-+#include <ncurses.h>
-+#elif HAVE_CURSES_H
- #include <curses.h>
-+#endif
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
-diff -ru yabasic-2.83.0.orig/whereami.c yabasic-2.83.0/whereami.c
---- yabasic-2.83.0.orig/whereami.c 2019-03-10 16:36:25.000000000 +0100
-+++ yabasic-2.83.0/whereami.c 2019-06-15 17:08:39.723539493 +0200
-@@ -164,7 +164,7 @@
- return length;
- }
-
--#elif defined(__linux__) || defined(__CYGWIN__) || defined(__sun) || (defined(__NetBSD__) && !defined(KERN_PROC_PATHNAME))
-+#elif defined(__linux__) || defined(__midipix__) || defined(__CYGWIN__) || defined(__sun) || (defined(__NetBSD__) && !defined(KERN_PROC_PATHNAME))
-
- #include <stdio.h>
- #include <stdlib.h>
diff --git a/patches/zstd-1.3.4.local.patch b/patches/zstd-1.3.4.local.patch
deleted file mode 100644
index 40e5250d..00000000
--- a/patches/zstd-1.3.4.local.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru a/programs/Makefile b/programs/Makefile
---- a/programs/Makefile 2018-03-26 22:19:34.000000000 +0000
-+++ b/programs/Makefile 2018-04-30 14:55:39.468000000 +0000
-@@ -38,7 +38,6 @@
- CPPFLAGS+= -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
- -I$(ZSTDDIR)/dictBuilder \
- -DXXH_NAMESPACE=ZSTD_
--CFLAGS ?= -O3
- DEBUGFLAGS+=-Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
- -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
- -Wstrict-prototypes -Wundef -Wpointer-arith -Wformat-security \
-diff -ru a/lib/libzstd.pc.in b/lib/libzstd.pc.in
---- a/lib/libzstd.pc.in 2020-03-27 11:36:13.368590549 -0400
-+++ b/lib/libzstd.pc.in 2020-03-27 11:36:28.362034466 -0400
-@@ -10,5 +10,5 @@
- Description: fast lossless compression algorithm library
- URL: http://www.zstd.net/
- Version: @VERSION@
--Libs: -L${libdir} -lzstd
-+Libs: -lzstd
- Cflags: -I${includedir}
diff --git a/patches/zstd-1.5.5.local.patch b/patches/zstd-1.5.5.local.patch
new file mode 100644
index 00000000..3075a43f
--- /dev/null
+++ b/patches/zstd-1.5.5.local.patch
@@ -0,0 +1,11 @@
+diff -ru zstd-1.5.5.orig/lib/libzstd.pc.in zstd-1.5.5/lib/libzstd.pc.in
+--- zstd-1.5.5.orig/lib/libzstd.pc.in 2023-04-04 22:13:52.000000000 +0200
++++ zstd-1.5.5/lib/libzstd.pc.in 2024-03-30 16:49:30.898203602 +0100
+@@ -11,6 +11,6 @@
+ Description: fast lossless compression algorithm library
+ URL: https://facebook.github.io/zstd/
+ Version: @VERSION@
+-Libs: -L${libdir} -lzstd
++Libs: -lzstd
+ Libs.private: @LIBS_PRIVATE@
+ Cflags: -I${includedir}
diff --git a/pkgtool.sh b/pkgtool.sh
index af911ec5..d4a67ab2 100755
--- a/pkgtool.sh
+++ b/pkgtool.sh
@@ -1,301 +1,756 @@
#!/bin/sh
-# Copyright (c) 2020, 2021 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# Copyright (c) 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
#
+# {{{ pkgtoolp_init($_rstatus)
+pkgtoolp_init() {
+ local _pi_rstatus="${1#\$}" \
+ _pi_args_long="" \
+ _pi_name_base="pkgtool" \
+ _pi_optstring="a:b:efhim:M:p:rRtv" \
+ _pi_prereqs="
+ awk bzip2 cat chmod cp date find grep hostname mkdir
+ mktemp mv paste printf readlink rm sed sort tar test
+ touch tr uniq" \
+ _pi_fname="" _pi_rc=0;
+ shift;
+
+ if [ -e "${HOME}/pkgtool.vars" ]; then
+ . "${HOME}/pkgtool.vars" || exit 1;
+ fi;
+
+ if ! . "${0%/*}/subr.ex/ex_init.subr"; then
+ _pi_rc=1;
+ _pi_status='failed to source \`'"${0%/*}/subr/ex_init.subr"\';
+ eval ${_pi_rstatus}=\"${_pi_status}\";
+ elif ! ex_init_help \
+ "${_pi_rstatus}" "${_pi_args_long}" \
+ "${_pi_name_base}" "${_pi_optstring}" "${@}" \
+ || ! ex_init_env \
+ "${_pi_rstatus}" \$BUILD_HNAME \$BUILD_USER \
+ "${_pi_name_base}" \
+ || ! ex_init_getopts \
+ "${_pi_rstatus}" "pkgtoolp_init_getopts_fn" \
+ "${_pi_optstring}" "${@}" \
+ || ! ex_init_theme \
+ "${_pi_rstatus}" "${BUILD_HNAME}" \
+ "${_pi_name_base}" "${ARG_THEME:-}" \
+ || ! ex_init_prereqs "${_pi_rstatus}" "${_pi_prereqs}" \
+ || ! ex_pkg_load_vars \
+ "${_pi_rstatus}" \$ARCH \$BUILD_KIND \
+ || ! pkgtoolp_init_args "${_pi_rstatus}";
+ then
+ _pi_rc=1;
+ fi;
+ return "${_pi_rc}";
+};
+# }}}
+# {{{ pkgtoolp_init_args($_rstatus)
+pkgtoolp_init_args() {
+ local _ppia_rstatus="${1#\$}" \
+ _ppia_rc=0;
+
+ if [ "$((${ARG_INFO:-0}
+ + ${ARG_EDIT:-0}
+ + ${ARG_FILES:-0}
+ + ${ARG_MIRROR:-0}
+ + ${ARG_PROFILE:-0}
+ + ${ARG_RDEPENDS:-0}
+ + ${ARG_TARBALL:-0}))" -gt 1 ];
+ then
+ cat etc/pkgtool.usage;
+ _ppia_rc=1;
+ rtl_setrstatus "${_ppia_rstatus}" 'only one of -e, -f, -i, -m and/or -M, -p, -r, -s, or -t must be specified.';
+ elif [ "$((${ARG_INFO:-0}
+ + ${ARG_EDIT:-0}
+ + ${ARG_FILES:-0}
+ + ${ARG_MIRROR:-0}
+ + ${ARG_PROFILE:-0}
+ + ${ARG_RDEPENDS:-0}
+ + ${ARG_TARBALL:-0}))" -eq 0 ];
+ then
+ cat etc/pkgtool.usage;
+ _ppia_rc=1;
+ rtl_setrstatus "${_ppia_rstatus}" 'one of -e, -f, -i, -m and/or -M, -p, -r, -s, or -t must be specified.';
+ else
+ _ppia_rc=0;
+ export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
+ fi;
+
+ return "${_ppia_rc}";
+};
+# }}}
+# {{{ pkgtoolp_init_getopts_fn(...)
+pkgtoolp_init_getopts_fn() {
+ local _ppigf_rc=0 _ppigf_shiftfl=0;
+
+ case "${1}" in
+ init)
+ local _ppigf_verb="${1}" _ppigf_rstatus="${2#\$}";
+
+ : ${ARCH:="nt64"};
+ : ${BUILD_KIND:="debug"};
+
+ ARG_INFO=0; ARG_EDIT=0; ARG_MIRROR=0;
+ ARG_RDEPENDS=0; ARG_TARBALL=0; ARG_VERBOSE=0;
+ ;;
+
+ longopt)
+ local _ppigf_verb="${1}" _ppigf_rstatus="${2#\$}" _ppigf_opt="${3}";
+
+ case "${_ppigf_opt}" in
+ --theme) shift 3;
+ if [ "${#}" != 1 ]; then
+ rtl_setrstatus "${_ppigf_rstatus}" 'missing argument to --theme option';
+ return 1;
+ else
+ ARG_THEME="${1:-}"; _ppigf_shiftfl=2;
+ fi;
+ ;;
+
+ *) _ppigf_shiftfl=0; ;;
+ esac;
+ ;;
+
+ opt)
+ local _ppigf_verb="${1}" _ppigf_rstatus="${2#\$}" \
+ _ppigf_opt="${3}" _ppigf_optarg="${4:-}";
+ shift 4;
+
+ case "${_ppigf_opt}" in
+ a) ARCH="${OPTARG}"; _ppigf_shiftfl=2; ;;
+ b) BUILD_KIND="${OPTARG}"; _ppigf_shiftfl=2; ;;
+ h) cat etc/pkgtool.usage; exit 0; ;;
+ e) ARG_EDIT=1; _ppigf_shiftfl=1; ;;
+ f) ARG_FILES=1; _ppigf_shiftfl=1; ;;
+ i) ARG_INFO=1; _ppigf_shiftfl=1; ;;
+ m) ARG_MIRROR=1;
+ if [ "${OPTARG:+1}" = 1 ]; then
+ ARG_MIRROR_DNAME="${OPTARG}";
+ elif [ "${ARG_MIRROR_DNAME:+1}" != 1 ]; then
+ rtl_setrstatus "${_ppigf_rstatus}" 'missing -m argument and no default present.';
+ fi;
+ _ppigf_shiftfl=2; ;;
+ M) ARG_MIRROR=1;
+ if [ "${OPTARG:+1}" = 1 ]; then
+ ARG_MIRROR_DNAME_GIT="${OPTARG}";
+ elif [ "${ARG_MIRROR_DNAME_GIT:+1}" != 1 ]; then
+ rtl_setrstatus "${_ppigf_rstatus}" 'missing -M argument and no default present.';
+ fi;
+ _ppigf_shiftfl=2; ;;
+ p) ARG_PROFILE=1;
+ if [ "${OPTARG:+1}" = 1 ]; then
+ ARG_PROFILE_LOG_FNAME="${OPTARG}";
+ else
+ rtl_setrstatus "${_ppigf_rstatus}" 'missing -p argument.';
+ fi;
+ _ppigf_shiftfl=2; ;;
+ r) ARG_RDEPENDS=1; _ppigf_shiftfl=1; ;;
+ t) ARG_TARBALL=1; _ppigf_shiftfl=1; ;;
+ v) ARG_VERBOSE=1; _ppigf_shiftfl=1; ;;
+ *) cat etc/pkgtool.usage; exit 1; ;;
+ esac;
+ ;;
+
+ nonopt)
+ local _ppigf_verb="${1}" _ppigf_rstatus="${2#\$}";
+ shift 2;
+
+ case "${1}" in
+ *=*) rtl_set_var_from_spec "${_ppigf_rstatus}" "${1}";
+ _ppigf_rc="${?}"; ;;
+ *) PKGTOOL_PKG_NAME="${1}"; ;;
+ esac;
+
+ if [ "${_ppigf_rc}" -ne 0 ]; then
+ return "${_ppigf_rc}";
+ else
+ _ppigf_shiftfl=1;
+ fi;
+ ;;
+
+ done)
+ local _ppigf_verb="${1}" _ppigf_rstatus="${2#\$}";
+
+ if [ "${PKGTOOL_PKG_NAME:+1}" != 1 ]\
+ && [ "${ARG_MIRROR:-0}" -eq 0 ]\
+ && [ "${ARG_PROFILE:-0}" -eq 0 ]; then
+ _ppigf_rc=1;
+ rtl_setrstatus "${_ppigf_rstatus}" 'missing package name.';
+ else
+ export PKGTOOL_PKG_NAME;
+ case "${ARG_VERBOSE:-0}" in
+
+ 0) rtl_log_enable_tagsV "${LOG_TAGS_normal}"; ;;
+ 1) rtl_log_enable_tagsV "${LOG_TAGS_verbose}"; ;;
+ *) _ppigf_rc=1;
+ rtl_setrstatus "${_ppigf_rstatus}" 'invalid verbosity level (max. -v)';
+ ;;
+
+ esac;
+ fi;
+
+ if [ "${_ppigf_rc}" -ne 0 ]; then
+ return "${_ppigf_rc}";
+ fi;
+ ;;
+
+ *)
+ return 1;
+ ;;
+ esac;
+
+ if [ "${_ppigf_shiftfl}" -ge 1 ]; then
+ return "$((${_ppigf_shiftfl} + 1))";
+ else
+ return 0;
+ fi;
+
+ return "${_ppigf_rc}";
+};
+# }}}
+
+# {{{ pkgtoolp_edit($_rstatus, $_pkg_name)
+pkgtoolp_edit() {
+ local _ppe_rstatus="${1}" _ppe_pkg_name="${2}" \
+ _ppe_fname="" _ppe_group_fname="" _ppe_group_fname_nline="" _ppe_group_name="" \
+ _ppe_patch_idx=0 _ppe_pkg_disabled="" _ppe_pkg_finished="" _ppe_pkg_name_uc="" \
+ _ppe_pkg_names="" _ppe_pkg_vars="" _ppe_rc=0;
+ rtl_toupper2 \$_ppe_pkg_name \$_ppe_pkg_name_uc;
+
+ if ! ex_pkg_load_groups \$_ppe_groups \$_ppe_groups_noauto; then
+ _ppi_rc=1;
+ rtl_setrstatus "${_ppi_rstatus}" 'Error: failed to load build groups.';
+ elif ! ex_pkg_find_package \$_ppe_group_name "${_ppe_groups}" "${_ppe_pkg_name}"; then
+ _ppe_rc=1;
+ rtl_setrstatus "${_ppe_rstatus}" 'Error: unknown package \`'"${_ppe_pkg_name}'"'.';
+ elif ! ex_pkg_get_packages \$_ppe_pkg_names "${_ppe_group_name}"; then
+ _ppe_rc=1;
+ rtl_setrstatus "${_ppe_rstatus}" 'Error: failed to expand package list of build group \`'"${_ppe_group_name}'"'.';
+ elif ! ex_pkg_env "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}"\
+ "${_ppe_group_name}" "${_ppe_pkg_name}" "" "${BUILD_WORKDIR}"; then
+ _ppe_rc=1;
+ rtl_setrstatus "${_ppe_rstatus}" 'Error: failed to set package environment for \`'"${_ppe_pkg_name}'"'.';
+ else
+ rtl_get_var_unsafe \$_ppe_group_fname -u "PKG_${_ppe_pkg_name}_GROUP_FNAME";
+
+ case "${EDITOR}" in
+ "")
+ rtl_setrstatus "${_ppe_rstatus}" 'Error: \${EDITOR} unset.';
+ ;;
+
+ nano)
+ _ppe_group_fname_nline="$( \
+ grep -n "PKG_${_ppe_pkg_name_uc}_" "${_ppe_group_fname}" |\
+ awk -F: 'NR == 1 { print $1 }')";
+ "${EDITOR}" \
+ ${_ppe_group_fname_nline:+"+${_ppe_group_fname_nline}"} \
+ "${_ppe_group_fname}"
+ _ppe_rc="${?}";
+ ;;
+
+ vi|vim|nvi|nvim)
+ "${EDITOR}" "${_ppe_group_fname}" "+/PKG_${_ppe_pkg_name_uc}_/";
+ _ppe_rc="${?}";
+ ;;
+ *)
+ "${EDITOR}" "${_ppe_group_fname}";
+ _ppe_rc="${?}";
+ ;;
+ esac;
+ fi;
+
+ return "${_ppe_rc}";
+};
+# }}}
+# {{{ pkgtoolp_files($_rstatus, $_pkg_name)
+pkgtoolp_files() {
+ local _ppf_rstatus="${1}" _ppf_pkg_name="${2}" \
+ _ppf_destdir="" _ppf_group_name="" _ppf_groups="" \
+ _ppf_groups_noauto="" _ppf_pkg_name_uc="" _ppf_pkg_vars="" \
+ _ppf_rc=0;
+ rtl_toupper2 \$_ppf_pkg_name \$_ppf_pkg_name_uc;
+
+ if ! ex_pkg_load_groups \$_ppf_groups \$_ppf_groups_noauto; then
+ _ppf_rc=1;
+ rtl_setrstatus "${_ppf_rstatus}" 'Error: failed to load build groups.';
+ elif ! ex_pkg_find_package \$_ppf_group_name "${_ppf_groups}" "${_ppf_pkg_name}"; then
+ _ppf_rc=1;
+ rtl_setrstatus "${_ppf_rstatus}" 'Error: unknown package \`'"${_ppf_pkg_name}'"'.';
+ elif ! ex_pkg_get_packages \$_ppf_pkg_names "${_ppf_group_name}"; then
+ _ppf_rc=1;
+ rtl_setrstatus "${_ppf_rstatus}" 'Error: failed to expand package list of build group \`'"${_ppf_group_name}'"'.';
+ elif ! ex_pkg_env "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}"\
+ "${_ppf_group_name}" "${_ppf_pkg_name}" "" "${BUILD_WORKDIR}"; then
+ _ppf_rc=1;
+ rtl_setrstatus "${_ppf_rstatus}" 'Error: failed to set package environment for \`'"${_ppf_pkg_name}'"'.';
+ else
+ ex_pkg_get_package_vars \$_ppf_pkg_vars "${DEFAULT_BUILD_VARS}" "${_ppf_pkg_name}";
+ rtl_get_var_unsafe \$_ppf_destdir -u "PKG_DESTDIR";
+
+ if [ "${_ppf_destdir:+1}" != 1 ]; then
+ _ppf_rc=1;
+ rtl_setrstatus "${_ppf_rstatus}" 'Error: empty or unset \$PKG_DESTDIR.';
+ else
+ printf "%s/:\n" "${_ppf_destdir%/}";
+ (cd "${_ppf_destdir}" && find . -ls);
+ _ppf_rc="${?}";
+ fi;
+ fi;
+
+ return "${_ppf_rc}";
+};
+# }}}
+# {{{ pkgtoolp_info($_rstatus, $_pkg_name)
pkgtoolp_info() {
- local _pkg_name="${1}" _group_name="" _pkg_name_uc="$(rtl_toupper "${1}")" _fname="" _pkg_names=""\
- _rc=0 EX_PKG_BUILD_GROUPS="" EX_PKG_DISABLED="" EX_PKG_FINISHED="" EX_PKG_NAMES=""; _status="";
-
- if ! ex_pkg_load_groups; then
- _rc=1; _status="Error: failed to load build groups.";
- elif ! _group_name="$(ex_pkg_find_package "${EX_PKG_BUILD_GROUPS}" "${_pkg_name}")"; then
- _rc=1; _status="Error: unknown package \`${_pkg_name}'.";
- elif ! _pkg_names="$(ex_pkg_get_packages "${_group_name}")"; then
- _rc=1; _status="Error: failed to expand package list of build group \`${_group_name}'.";
+ local _ppi_rstatus="${1}" _ppi_pkg_name_list="${2}" \
+ _ppi_groups="" _ppi_groups_noauto="" \
+ _ppi_pkg_name="" _ppi_rc=0 _ppi_rc_single=0 \
+ _ppi_status="";
+ rtl_llift \$_ppi_pkg_name_list "," " ";
+
+ if ! ex_pkg_load_groups \$_ppi_groups \$_ppi_groups_noauto; then
+ _ppi_rc=1;
+ rtl_setrstatus "${_ppi_rstatus}" 'Error: failed to load build groups.';
+ else
+ for _ppi_pkg_name in ${_ppi_pkg_name_list}; do
+ pkgtoolp_info_single \
+ "${_ppi_rstatus}" "${_ppi_pkg_name}" \
+ "${_ppi_groups}" "${_ppi_groups_noauto}";
+ _ppi_rc_single="${?}";
+ if [ "${_ppi_rc_single}" -ne 0 ]; then
+ _ppi_rc="${_ppi_rc_single}";
+ eval _ppi_status="\${${_ppi_rstatus#\$}}";
+ rtl_log_msgV "fatal" "0;${_ppi_status}";
+ fi;
+ done;
+ fi;
+
+ if [ "${_ppi_rc}" -ne 0 ]; then
+ rtl_setrstatus "${_ppi_rstatus}" 'Failure in one or more package(s).';
+ fi;
+ return "${_ppi_rc}";
+};
+# }}}
+# {{{ pkgtoolp_info_single($_rstatus, $_pkg_name)
+pkgtoolp_info_single() {
+ local _ppis_rstatus="${1}" _ppis_pkg_name="${2}" _ppis_groups="${3}" _ppis_groups_noauto="${4}" \
+ _ppis_fname="" _ppis_group_fname="" _ppis_group_name="" _ppis_patch_idx=0 _ppis_pkg_disabled="" \
+ _ppis_pkg_finished="" _ppis_pkg_name_uc="" _ppis_pkg_names="" _ppis_pkg_vars="" _ppis_rc=0;
+ rtl_toupper2 \$_ppis_pkg_name \$_ppis_pkg_name_uc;
+
+ if ! ex_pkg_find_package \$_ppis_group_name "${_ppis_groups}" "${_ppis_pkg_name}"; then
+ _ppis_rc=1;
+ rtl_setrstatus "${_ppis_rstatus}" 'Error: unknown package \`'"${_ppis_pkg_name}'"'.';
+ elif ! ex_pkg_get_packages \$_ppis_pkg_names "${_ppis_group_name}"; then
+ _ppis_rc=1;
+ rtl_setrstatus "${_ppis_rstatus}" 'Error: failed to expand package list of build group \`'"${_ppis_group_name}'"'.';
elif ! ex_pkg_env "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}"\
- "${_group_name}" 1 "${_pkg_name}" "" "${BUILD_WORKDIR}"; then
- _rc=1; _status="Error: failed to set package environment for \`${_pkg_name}'.";
- else _pkg_version="$(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_VERSION")";
- rtl_log_env_vars "verbose" "package" $(rtl_get_vars_fast "^PKG_${_pkg_name_uc}");
- rtl_log_msg "info" "${MSG_pkgtool_build_group}" "${_group_name}";
- if [ -z "${PKG_DEPENDS:-}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_no_deps}" "${_pkg_name}";
- else rtl_log_msg "info" "${MSG_pkgtool_pkg_direct_deps}" "${_pkg_name}" "${PKG_DEPENDS}";
- if ! ex_pkg_unfold_depends 1 1 "${_group_name}" "${_pkg_names}" "${_pkg_name}" 0; then
- rtl_log_msg "warning" "${MSG_pkgtool_pkg_deps_fail}" "${_pkg_name}";
- else EX_PKG_NAMES="$(rtl_lfilter "${EX_PKG_NAMES}" "${_pkg_name}")";
- if [ -n "${EX_PKG_NAMES}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_deps_full}"\
- "${_pkg_name}" "$(rtl_lsort "${EX_PKG_NAMES}")";
+ "${_ppis_group_name}" "${_ppis_pkg_name}" "" "${BUILD_WORKDIR}"; then
+ _ppis_rc=1;
+ rtl_setrstatus "${_ppis_rstatus}" 'Error: failed to set package environment for \`'"${_ppis_pkg_name}'"'.';
+ else
+ rtl_get_var_unsafe \$_ppis_group_fname -u "PKG_${_ppis_pkg_name}_GROUP_FNAME";
+ rtl_get_var_unsafe \$_ppis_pkg_version -u "PKG_${_ppis_pkg_name}_VERSION";
+ ex_pkg_get_package_vars \$_ppis_pkg_vars "${DEFAULT_BUILD_VARS}" "${_ppis_pkg_name}";
+ rtl_log_env_vars "package_vars" "Package variables" ${_ppis_pkg_vars};
+ rtl_log_msgV "info_build_group" "${MSG_info_build_group}" "${_ppis_group_name}" "${_ppis_group_fname}";
+
+ if [ "${PKG_DISABLED:-0}" -eq 1 ]; then
+ rtl_log_msgV "info_pkg_disabled" "${MSG_info_pkg_disabled}" "${_ppis_pkg_name}";
+ fi;
+
+ if [ "${PKG_DEPENDS:+1}" != 1 ]; then
+ rtl_log_msgV "info_pkg_no_deps" "${MSG_info_pkg_no_deps}" "${_ppis_pkg_name}";
+ else
+ rtl_log_msgV "info_pkg_direct_deps" "${MSG_info_pkg_direct_deps}" "${_ppis_pkg_name}" "${PKG_DEPENDS}";
+ if ! ex_pkg_unfold_depends \
+ \$_ppis_pkg_disabled \$_ppis_pkg_finished \
+ \$_ppis_pkg_names 1 1 "${_ppis_group_name}" \
+ "${_ppis_pkg_names}" "${_ppis_pkg_name}" 0 \
+ "${BUILD_WORKDIR}";
+ then
+ rtl_log_msgV "warning" "${MSG_info_pkg_deps_fail}" "${_ppis_pkg_name}";
+ else
+ rtl_lfilter \$_ppis_pkg_names "${_ppis_pkg_name}";
+
+ if [ "${_ppis_pkg_names:+1}" = 1 ]; then
+ rtl_log_msgV "info_pkg_deps_full" "${MSG_info_pkg_deps_full}"\
+ "${_ppis_pkg_name}" "$(rtl_lsortV "${_ppis_pkg_names}")";
fi;
- if [ -n "${EX_PKG_DISABLED}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_deps_full_disabled}"\
- "${_pkg_name}" "$(rtl_lsort "${EX_PKG_DISABLED}")";
+
+ if [ "${_ppis_pkg_disabled:+1}" = 1 ]; then
+ rtl_log_msgV "info_pkg_deps_full_disabled" "${MSG_info_pkg_deps_full_disabled}"\
+ "${_ppis_pkg_name}" "$(rtl_lsortV "${_ppis_pkg_disabled}")";
fi;
fi;
fi;
- set +o noglob;
- for _fname in \
- "vars/${_pkg_name}.vars" \
- "patches/${_pkg_name}/"*.patch \
- "patches/${_pkg_name}${_pkg_version:+-${_pkg_version}}.local.patch" \
- "patches/${_pkg_name}${_pkg_version:+-${_pkg_version}}.local@${BUILD_HNAME}.patch" \
- "patches/${_pkg_name}${_pkg_version:+-${_pkg_version}}_pre.local.patch" \
- "patches/${_pkg_name}${_pkg_version:+-${_pkg_version}}_pre.local@${BUILD_HNAME}.patch" \
- "${BUILD_WORKDIR}/chainport/patches/${_pkg_name%%_*}/${_pkg_name%%_*}-${_pkg_version}.midipix.patch"; do
- if [ -e "${_fname}" ]; then
- sha256sum "${_fname}";
+
+ _ppis_patch_idx=1;
+ while ex_pkg_get_default \
+ \$_ppis_fname "${_ppis_patch_idx}" \
+ "${_ppis_pkg_name}" \
+ "${_ppis_pkg_version}" \
+ "vars_files patches_pre patches" \
+ && [ "${_ppis_fname:+1}" = 1 ];
+ do
+ : $((_ppis_patch_idx += 1));
+ if [ -e "${_ppis_fname}" ]; then
+ sha256sum "${_ppis_fname}";
fi;
done;
- set -o noglob;
- fi; return "${_rc}";
-};
+ fi;
+ return "${_ppis_rc}";
+};
+# }}}
+# {{{ pkgtoolp_mirror($_rstatus, $_mirror_dname, $_mirror_dname_git)
pkgtoolp_mirror() {
- local _mirror_dname="${1}" _mirror_dname_git="${2}" _group_name="" _pkg_name="" _pkg_parent="" _rc=0;
+ local _ppm_rstatus="${1}" _ppm_mirror_dname="${2}" _ppm_mirror_dname_git="${3}" \
+ _ppm_group_name="" _ppm_groups="" _ppm_groups_noauto="" _ppm_pkg_name="" \
+ _ppm_pkg_names="" _ppm_pkg_parent="" _ppm_pkgs_failed="" _ppm_rc=0;
umask 022;
- _mirror_dname="$(rtl_subst "${_mirror_dname}" "~" "${HOME}")";
- _mirror_dname_git="$(rtl_subst "${_mirror_dname_git}" "~" "${HOME}")";
- if ! ex_pkg_load_groups; then
- _rc=1; _status="Error: failed to load build groups.";
- elif [ -n "${_mirror_dname}" ]\
- && ! rtl_fileop mkdir "${_mirror_dname}"; then
- _rc=1; _status="Error: failed to create \`${_mirror_dname}'.";
- elif [ -n "${_mirror_dname_git}" ]\
- && ! rtl_fileop mkdir "${_mirror_dname_git}"; then
- _rc=1; _status="Error: failed to create \`${_mirror_dname_git}'.";
- else for _group_name in ${EX_PKG_BUILD_GROUPS}; do
- for _pkg_name in $(ex_pkg_get_packages "${_group_name}"); do
- _pkg_parent="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_INHERIT_FROM")";
- if ! pkgtoolp_mirror_fetch \
- "${_mirror_dname}" "${_mirror_dname_git}" "${_pkg_name}"\
- "${_pkg_parent:-${_pkg_name}}"; then
- _rc=1; _status="Warning: failed to mirror one or more packages.";
+ rtl_subst \$_ppm_mirror_dname "~" "${HOME}";
+ rtl_subst \$_ppm_mirror_dname_git "~" "${HOME}";
+
+ if ! ex_pkg_load_groups \$_ppm_groups \$_ppm_groups_noauto; then
+ _ppm_rc=1;
+ rtl_setrstatus "${_ppm_rstatus}" 'Error: failed to load build groups.';
+ elif [ "${_ppm_mirror_dname:+1}" = 1 ]\
+ && ! rtl_fileop mkdir "${_ppm_mirror_dname}"; then
+ _ppm_rc=1;
+ rtl_setrstatus "${_ppm_rstatus}" 'Error: failed to create \`${_ppm_mirror_dname}'"'"'.';
+ elif [ "${_ppm_mirror_dname_git:+1}" = 1 ]\
+ && ! rtl_fileop mkdir "${_ppm_mirror_dname_git}"; then
+ _ppm_rc=1;
+ rtl_setrstatus "${_ppm_rstatus}" 'Error: failed to create \`${_ppm_mirror_dname_git}'"'"'.';
+ else
+ for _ppm_group_name in ${_ppm_groups}; do
+ ex_pkg_get_packages \$_ppm_pkg_names "${_ppm_group_name}";
+
+ for _ppm_pkg_name in ${_ppm_pkg_names}; do
+ rtl_get_var_unsafe \$_ppm_pkg_parent -u "PKG_${_ppm_pkg_name}_INHERIT_FROM";
+ if ! pkgtoolp_mirror_fetch \
+ "${_ppm_rstatus}" "${_ppm_mirror_dname}" \
+ "${_ppm_mirror_dname_git}" "${_ppm_pkg_name}" \
+ "${_ppm_pkg_parent:-${_ppm_pkg_name}}" \
+ \$_ppm_pkgs_failed;
+ then
+ _ppm_rc=1;
+ rtl_setrstatus "${_ppm_rstatus}" 'Warning: failed to mirror one or more packages: '"${_ppm_pkgs_failed}";
fi;
done;
done;
- fi; return "${_rc}";
-};
+ fi;
+ return "${_ppm_rc}";
+};
+# }}}
+# {{{ pkgtoolp_mirror_fetch($_rstatus, $_mirror_dname, $_mirror_dname_git, $_pkg_name, $_pkg_name_real, $_rpkgs_failed)
pkgtoolp_mirror_fetch() {
- local _mirror_dname="${1}" _mirror_dname_git="${2}" _pkg_name="${3}" _pkg_name_real="${4}"\
- _fname="" _pkg_disabled=0 _pkg_fname="" _pkg_sha256sum="" _pkg_url="" _pkg_urls_git=""\
- _rc=0;
-
- if _pkg_disabled="$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_DISABLED")"\
- && [ "${_pkg_disabled:-0}" -eq 1 ]; then
- rtl_log_msg "verbose" "${MSG_pkgtool_pkg_disabled}" "${_pkg_name}" "${_pkg_name_real}";
- else if _pkg_url="$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_URL")"\
- && _pkg_sha256sum="$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_SHA256SUM")"; then
- if [ -z "${_mirror_dname}" ]; then
- _rc=0; rtl_log_msg "verbose" "${MSG_pkgtool_pkg_skip_archive_mirror}" "${_pkg_name}";
- elif [ "${_pkg_name}" != "${_pkg_name_real}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_archive_mirroring_parent}" "${_pkg_name}" "${_pkg_name_real}" "${_pkg_url}";
- if ! rtl_fileop ln_symbolic "${_pkg_name_real}" "${_mirror_dname}/${_pkg_name}"; then
- _rc=1; rtl_log_msg "warning" "${MSG_pkgtool_pkg_link_fail}"\
- "${_mirror_dname}/${_pkg_name}" "${_pkg_name}" "${_pkg_name_real}";
+ local _ppmf_rstatus="${1}" _ppmf_mirror_dname="${2}" _ppmf_mirror_dname_git="${3}" _ppmf_pkg_name="${4}" \
+ _ppmf_pkg_name_real="${5}" _ppmf_rpkgs_failed="${6#\$}" \
+ _ppmf_fname="" _ppmf_pkg_disabled=0 _ppmf_pkg_fname="" _ppmf_pkg_mirrors_git="" _ppmf_pkg_sha256sum="" \
+ _ppmf_pkg_url="" _ppmf_pkg_urls_git="" _ppmf_rc=0;
+
+ if rtl_get_var_unsafe \$_ppmf_pkg_disabled -u "PKG_${_ppmf_pkg_name_real}_DISABLED"\
+ && [ "${_ppmf_pkg_disabled:-0}" -eq 1 ]; then
+ rtl_log_msgV "verbose" "${MSG_mirror_pkg_disabled}" "${_ppmf_pkg_name}" "${_ppmf_pkg_name_real}";
+ else
+ if rtl_get_var_unsafe \$_ppmf_pkg_url -u "PKG_${_ppmf_pkg_name_real}_URL"\
+ && rtl_get_var_unsafe \$_ppmf_pkg_sha256sum -u "PKG_${_ppmf_pkg_name_real}_SHA256SUM"\
+ && [ "${_ppmf_pkg_url:+1}" = 1 ]\
+ && [ "${_ppmf_pkg_sha256sum:+1}" = 1 ];
+ then
+
+ if [ "${_ppmf_mirror_dname:+1}" != 1 ]; then
+ _ppmf_rc=0; rtl_log_msgV "verbose" "${MSG_mirror_pkg_skip_archive_mirror}" "${_ppmf_pkg_name}";
+
+ elif [ "${_ppmf_pkg_name}" != "${_ppmf_pkg_name_real}" ]; then
+ rtl_log_msgV "mirror_pkg_archive_mirroring_parent" "${MSG_mirror_pkg_archive_mirroring_parent}" "${_ppmf_pkg_name}" "${_ppmf_pkg_name_real}" "${_ppmf_pkg_url}";
+ if ! rtl_fileop ln_symbolic "${_ppmf_pkg_name_real}" "${_ppmf_mirror_dname}/${_ppmf_pkg_name}"; then
+ _ppmf_rc=1; rtl_log_msgV "warning" "${MSG_mirror_pkg_link_fail}"\
+ "${_ppmf_mirror_dname}/${_ppmf_pkg_name}" "${_ppmf_pkg_name}" "${_ppmf_pkg_name_real}";
fi;
+
else
- if ! _pkg_fname="$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_FNAME")"; then
- _pkg_fname="${_pkg_url##*/}";
+ if rtl_get_var_unsafe \$_ppmf_pkg_fname -u "PKG_${_ppmf_pkg_name_real}_FNAME"\
+ && [ "${_ppmf_pkg_fname:+1}" != 1 ]; then
+ _ppmf_pkg_fname="${_ppmf_pkg_url##*/}";
fi;
- rtl_log_msg "info" "${MSG_pkgtool_pkg_archive_mirroring}" "${_pkg_name}" "${_pkg_url}";
- if ! rtl_fileop mkdir "${_mirror_dname}/${_pkg_name}"\
- || ! rtl_fetch_url_wget "${_pkg_url}" "${_pkg_sha256sum}" "${_mirror_dname}/${_pkg_name}" "${_pkg_fname}" "${_pkg_name_real}" ""; then
- _rc=1; rtl_log_msg "warning" "${MSG_pkgtool_pkg_mirror_fail}" "${_pkg_name}";
+ rtl_log_msgV "mirror_pkg_archive_mirroring" "${MSG_mirror_pkg_archive_mirroring}" "${_ppmf_pkg_name}" "${_ppmf_pkg_url}";
+
+ if ! rtl_fileop mkdir "${_ppmf_mirror_dname}/${_ppmf_pkg_name}"\
+ || ! rtl_fetch_url_wget \
+ "${_ppmf_pkg_url}" \
+ "${_ppmf_pkg_sha256sum}" \
+ "${_ppmf_mirror_dname}/${_ppmf_pkg_name}" \
+ "${_ppmf_pkg_fname}" "${_ppmf_pkg_name_real}" \
+ "";
+ then
+ _ppmf_rc=1;
+ rtl_log_msgV "warning" "${MSG_mirror_pkg_mirror_fail}" "${_ppmf_pkg_name}";
+ rtl_lconcat "${_ppmf_rpkgs_failed}" "${_ppmf_pkg_name}";
else
- pkg_fetch_download_clean_dlcache "${_mirror_dname}" "${_pkg_name}" "${_pkg_fname}" "${_pkg_urls_git}";
+ rtl_fetch_clean_dlcache \
+ "${_ppmf_mirror_dname}" \
+ "${_ppmf_pkg_name}" \
+ "${_ppmf_pkg_fname}" \
+ "${_ppmf_pkg_urls_git}";
fi;
fi;
+
fi;
- if _pkg_urls_git="$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_URLS_GIT")"; then
- if [ -z "${_mirror_dname_git}" ]; then
- _rc=0; rtl_log_msg "verbose" "${MSG_pkgtool_pkg_skip_git_mirror}" "${_pkg_name}";
- elif [ "$(rtl_get_var_unsafe -u "PKG_${_pkg_name_real}_MIRRORS_GIT")" = "skip" ]; then
- _rc=0; rtl_log_msg "verbose" "${MSG_pkgtool_pkg_skip_git_mirror_disabled}" "${_pkg_name}";
- elif [ "${_pkg_name}" != "${_pkg_name_real}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_git_mirroring_parent}" "${_pkg_name}" "${_pkg_name_real}" "${_pkg_urls_git}";
- if ! rtl_fileop ln_symbolic "${_pkg_name_real}" "${_mirror_dname_git}/${_pkg_name}"; then
- _rc=1; rtl_log_msg "warning" "${MSG_pkgtool_pkg_link_fail}"\
- "${_mirror_dname_git}/${_pkg_name}" "${_pkg_name}" "${_pkg_name_real}";
+
+ if rtl_get_var_unsafe \$_ppmf_pkg_urls_git -u "PKG_${_ppmf_pkg_name_real}_URLS_GIT"\
+ && [ "${_ppmf_pkg_urls_git:+1}" = 1 ];
+ then
+
+ if [ "${_ppmf_mirror_dname_git:+1}" != 1 ]; then
+ _ppmf_rc=0; rtl_log_msgV "verbose" "${MSG_mirror_pkg_skip_git_mirror}" "${_ppmf_pkg_name}";
+
+ elif rtl_get_var_unsafe \$_ppmf_pkg_mirrors_git -u "PKG_${_ppmf_pkg_name_real}_MIRRORS_GIT"\
+ && [ "${_ppmf_pkg_mirrors_git}" = "skip" ]; then
+ _ppmf_rc=0; rtl_log_msgV "verbose" "${MSG_mirror_pkg_skip_git_mirror_disabled}" "${_ppmf_pkg_name}";
+
+ elif [ "${_ppmf_pkg_name}" != "${_ppmf_pkg_name_real}" ]; then
+ rtl_log_msgV "mirror_pkg_git_mirroring_parent" "${MSG_mirror_pkg_git_mirroring_parent}" "${_ppmf_pkg_name}" "${_ppmf_pkg_name_real}" "${_ppmf_pkg_urls_git}";
+ if ! rtl_fileop ln_symbolic "${_ppmf_pkg_name_real}" "${_ppmf_mirror_dname_git}/${_ppmf_pkg_name}"; then
+ _ppmf_rc=1;
+ rtl_log_msgV "warning" "${MSG_mirror_pkg_link_fail}" \
+ "${_ppmf_mirror_dname_git}/${_ppmf_pkg_name}" "${_ppmf_pkg_name}" "${_ppmf_pkg_name_real}";
+ rtl_lconcat "${_ppmf_rpkgs_failed}" "${_ppmf_pkg_name}";
fi;
+
else
- rtl_log_msg "info" "${MSG_pkgtool_pkg_git_mirroring}" "${_pkg_name}" "${_pkg_urls_git}";
- if ! rtl_fileop mkdir "${_mirror_dname_git}/${_pkg_name}"\
- || ! rtl_fetch_mirror_urls_git "${DEFAULT_GIT_ARGS}" "${_mirror_dname_git}/${_pkg_name}" ${_pkg_urls_git}; then
- _rc=1; rtl_log_msg "warning" "${MSG_pkgtool_pkg_mirror_fail}" "${_pkg_name}";
+ rtl_log_msgV "mirror_pkg_git_mirroring" "${MSG_mirror_pkg_git_mirroring}" "${_ppmf_pkg_name}" "${_ppmf_pkg_urls_git}";
+ if ! rtl_fileop mkdir "${_ppmf_mirror_dname_git}/${_ppmf_pkg_name}"\
+ || ! rtl_fetch_mirror_urls_git "${DEFAULT_GIT_ARGS}" "${_ppmf_mirror_dname_git}/${_ppmf_pkg_name}" ${_ppmf_pkg_urls_git}; then
+ _ppmf_rc=1;
+ rtl_log_msgV "warning" "${MSG_mirror_pkg_mirror_fail}" "${_ppmf_pkg_name}";
+ rtl_lconcat "${_ppmf_rpkgs_failed}" "${_ppmf_pkg_name}";
else
- pkg_fetch_download_clean_dlcache "${_mirror_dname_git}" "${_pkg_name}" "${_pkg_fname}" "${_pkg_urls_git}";
+ rtl_fetch_clean_dlcache "${_ppmf_mirror_dname_git}" "${_ppmf_pkg_name}" "${_ppmf_pkg_fname}" "${_ppmf_pkg_urls_git}";
fi;
fi;
+
fi;
- if [ -z "${_pkg_url}" ]\
- && [ -z "${_pkg_sha256sum}" ]\
- && [ -z "${_pkg_urls_git}" ]; then
- _rc=0; rtl_log_msg "verbose" "${MSG_pkgtool_pkg_skip_no_urls}" "${_pkg_name}";
+
+ if [ "${_ppmf_pkg_url:+1}" != 1 ]\
+ && [ "${_ppmf_pkg_sha256sum:+1}" != 1 ]\
+ && [ "${_ppmf_pkg_urls_git:+1}" != 1 ]; then
+ _ppmf_rc=0; rtl_log_msgV "verbose" "${MSG_mirror_pkg_skip_no_urls}" "${_ppmf_pkg_name}";
fi;
- fi; return "${_rc}";
-};
+ fi;
-pkgtoolp_restart_at() {
- local _pkg_name="${1}" _rc=0; _status="";
-
- if ! ex_pkg_load_dump "${_pkg_name}" "${BUILD_WORKDIR}"; then
- _rc=1; _status="${_status}";
- else case "${ARG_RESTART_AT}" in
- ALL) if ! "${MIDIPIX_BUILD_PWD}/build.sh" -P -r "${_pkg_name}" -v; then
- _rc=1; _status="Error: failed to run command line ${MIDIPIX_BUILD_PWD}/build.sh -P -r ${_pkg_name} -v";
- fi; ;;
- *) if ! "${MIDIPIX_BUILD_PWD}/build.sh" -P -r "${_pkg_name}:${ARG_RESTART_AT}" -v; then
- _rc=1; _status="Error: failed to run command line ${MIDIPIX_BUILD_PWD}/build.sh -P -r ${_pkg_name}:${ARG_RESTART_AT} -v";
- fi; ;;
- esac;
- fi; return "${_rc}";
+ return "${_ppmf_rc}";
};
+# }}}
+# {{{ pkgtoolp_profile($_rstatus)
+pkgtoolp_profile() {
+ local _ppp_rstatus="${1}" _ppp_log_fname="${2}" \
+ _ppp_line="" \
+ _ppp_ts=0 _ppp_ts_delta=0 _ppp_ts_last=0 _ppp_ts_max=0 \
+ _ppp_pkg_name="" _ppp_pkg_step_max="" _ppp_rc=0 \
+ IFS0="${IFS}" IFS;
+
+ _ppp_log_fname="profile.log";
+
+ for _ppp_pkg_name in $(find \
+ "${BUILD_WORKDIR}" \
+ -maxdepth 1 \
+ -mindepth 1 \
+ -name ".*.start" \
+ -printf "%P\n");
+ do
+ _ppp_pkg_name="${_ppp_pkg_name%.start}";
+ _ppp_pkg_name="${_ppp_pkg_name##.}";
+ _ppp_ts_last=0; _ppp_ts_max=0; _ppp_pkg_step_max="";
+
+ rtl_set_IFS_nl;
+ for _ppp_line in $( \
+ find \
+ "${BUILD_WORKDIR}" \
+ -maxdepth 1 \
+ -mindepth 1 \
+ -name ".${_ppp_pkg_name}.*" \
+ -printf "%T@ %P\n" | \
+ sort -nk1);
+ do
+ IFS=" "; set -- ${_ppp_line}; rtl_set_IFS_nl;
+ _ppp_ts="${1}"; _ppp_pkg_step="${2}";
+ _ppp_ts="${_ppp_ts%%.*}";
+ if [ "${_ppp_ts_last}" -eq 0 ]; then
+ _ppp_ts_last="${_ppp_ts}";
+ fi;
+
+ _ppp_ts_delta="$((${_ppp_ts}-${_ppp_ts_last}))";
+ _ppp_ts_last="${_ppp_ts}";
+
+ if [ "${_ppp_ts_delta}" -gt "${_ppp_ts_max}" ]; then
+ _ppp_ts_max="${_ppp_ts_delta}";
+ _ppp_pkg_step_max="${_ppp_pkg_step#.${_ppp_pkg_name}.}";
+ fi;
+ done;
+ printf "%20s %5u %s\n" \
+ "${_ppp_pkg_step_max}" \
+ "${_ppp_ts_max}" \
+ "${_ppp_pkg_name}";
+ done | sort -nk2 >"${_ppp_log_fname}";
+ IFS="${IFS0}";
+
+ printf "%5u items written to \`%s'; tail -n25 follows:\n" \
+ "$(wc -l < "${_ppp_log_fname}")" \
+ "${_ppp_log_fname}";
+ tail -n15 "${_ppp_log_fname}";
+ printf "\n";
+ printf "By build step:\n";
+ for _ppp_step in ${DEFAULT_BUILD_STEPS}; do
+ printf "%20s %d\n" \
+ "${_ppp_step}" \
+ "$(grep " ${_ppp_step} " "${_ppp_log_fname}" | wc -l)";
+ done | grep -v " [01]$" | sort -nk2;
+
+ return "${_ppp_rc}";
+};
+# }}}
+# {{{ pkgtoolp_rdepends($_rstatus, $_pkg_name)
pkgtoolp_rdepends() {
- local _pkg_name="${1}" _group_name="" _pkg_depends="" _pkg_name_rdepend="" _pkg_names=""\
- _pkg_rdepends="" _rc=0 EX_PKG_BUILD_GROUPS="" EX_PKG_DISABLED="" EX_PKG_RDEPENDS_DIRECT=""; _status="";
-
- if ! ex_pkg_load_groups; then
- _rc=1; _status="Error: failed to load build groups.";
- elif ! _group_name="$(ex_pkg_find_package "${EX_PKG_BUILD_GROUPS}" "${_pkg_name}")"; then
- _rc=1; _status="Error: unknown package \`${_pkg_name}'.";
- elif ! _pkg_names="$(ex_pkg_get_packages "${_group_name}")"; then
- _rc=1; _status="Error: failed to expand package list of build group \`${_group_name}'.";
- elif ! ex_pkg_unfold_rdepends_direct "${_group_name}" "${_pkg_names}" "${_pkg_name}"; then
- _rc=1; _status="Error: failed to unfold reverse dependency-expanded package name list for \`${_pkg_name}'.";
- elif [ -z "${EX_PKG_DISABLED}" ] && [ -z "${EX_PKG_RDEPENDS_DIRECT}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkg_deps_rev_none}" "${_pkg_name}";
- else for _pkg_name_rdepend in $(rtl_lsort "${EX_PKG_RDEPENDS_DIRECT}"); do
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_name_rdepend}")";
- if _pkg_depends="$(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS"))"\
- && [ -n "${_pkg_depends}" ]; then
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_depends}")";
+ local _ppr_rstatus="${1}" _ppr_pkg_name="${2}" \
+ _ppr_depends="" _ppr_group_name="" _ppr_groups="" _ppr_groups_noauto="" \
+ _ppr_pkg_depends="" _ppr_pkg_disabled="" _ppr_pkg_finished="" \
+ _ppr_pkg_name_rdepend="" _ppr_pkg_names="" _ppr_pkg_rdepends="" \
+ _ppr_pkg_rdepends_direct="" _ppr_rc=0;
+
+ if ! ex_pkg_load_groups \$_ppr_groups \$_ppr_groups_noauto; then
+ _ppr_rc=1;
+ rtl_setrstatus "${_ppr_rstatus}" 'Error: failed to load build groups.';
+ elif ! ex_pkg_find_package \$_ppr_group_name "${_ppr_groups}" "${_ppr_pkg_name}"; then
+ _ppr_rc=1;
+ rtl_setrstatus "${_ppr_rstatus}" 'Error: unknown package \`'"${_ppr_pkg_name}'"'.';
+ elif ! ex_pkg_get_packages \$_ppr_pkg_names "${_ppr_group_name}"; then
+ _ppr_rc=1;
+ rtl_setrstatus "${_ppr_rstatus}" 'Error: failed to expand package list of build group \`'"${_ppr_group_name}'"'.';
+ elif ! ex_pkg_unfold_rdepends \
+ \$_ppr_pkg_disabled \$_ppr_pkg_finished \
+ \$_ppr_pkg_rdepends_direct \
+ "${_ppr_group_name}" "${_ppr_pkg_names}" \
+ "${_ppr_pkg_name}" 1 "${BUILD_WORKDIR}" \
+ "norecurse";
+ then
+ _ppr_rc=1;
+ rtl_setrstatus "${_ppr_rstatus}" 'Error: failed to unfold reverse dependency-expanded package name list for \`'"${_ppr_pkg_name}'"'.';
+ elif [ "${_ppr_pkg_disabled:+1}" != 1 ]\
+ && [ "${_ppr_pkg_finished:+1}" != 1 ]\
+ && [ "${_ppr_pkg_rdepends_direct:+1}" != 1 ];
+ then
+ rtl_log_msgV "info" "${MSG_rdepends_pkg_deps_rev_none}" "${_ppr_pkg_name}";
+ else
+ for _ppr_pkg_name_rdepend in $(rtl_lsortV \
+ ${_ppr_pkg_finished} \
+ ${_ppr_pkg_rdepends_direct});
+ do
+ if rtl_get_var_unsafe \$_ppr_depends -u "PKG_"${_ppr_pkg_name_rdepend}"_DEPENDS"\
+ && [ "${_ppr_depends:+1}" = 1 ]; then
+ if rtl_lunfold_dependsV 'PKG_${_rld_name}_DEPENDS' \$_ppr_pkg_depends ${_ppr_depends}\
+ && rtl_lfilter \$_ppr_pkg_depends "${_ppr_pkg_name}"\
+ && [ "${_ppr_pkg_depends:+1}" = 1 ]; then
+ rtl_lconcat \$_ppr_pkg_rdepends "$(rtl_uniq "$(rtl_lsortV ${_ppr_pkg_depends})")";
+ fi;
fi;
+ rtl_lconcat \$_ppr_pkg_rdepends "${_ppr_pkg_name_rdepend}";
done;
- if [ -n "${_pkg_rdepends}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkgs_deps_rev}" "${_pkg_name}" "${_pkg_rdepends}";
+
+ if [ "${_ppr_pkg_rdepends:+1}" = 1 ]; then
+ rtl_log_msgV "info" "${MSG_rdepends_pkgs_deps_rev_recurse}" "${_ppr_pkg_name}" "${_ppr_pkg_rdepends}";
fi;
- if [ -n "${EX_PKG_DISABLED}" ]; then
- rtl_log_msg "info" "${MSG_pkgtool_pkgs_deps_rev_disabled}" "${_pkg_name}" "$(rtl_lsort "${EX_PKG_DISABLED}")";
+
+ if [ "${_ppr_pkg_disabled:+1}" = 1 ]; then
+ rtl_log_msgV "info" "${MSG_rdepends_pkgs_deps_rev_disabled}" "${_ppr_pkg_name}" "$(rtl_lsortV "${_ppr_pkg_disabled}")";
fi;
- fi; return "${_rc}";
-};
+ fi;
-pkgtoolp_shell() {
- local _pkg_name="${1}" _rc=0; _status="";
-
- if ! ex_pkg_load_dump "${_pkg_name}" "${BUILD_WORKDIR}"; then
- _rc=1; _status="${_status}";
- else rtl_log_env_vars "verbose" "package" $(rtl_get_vars_fast "^PKG_");
- rtl_log_msg "info" "${MSG_pkgtool_shell_env1}" "${SHELL}" "${PKG_BUILD_DIR}";
- rtl_log_msg "info" "${MSG_pkgtool_shell_env2}" "${_pkg_name}";
- rtl_log_msg "info" "${MSG_pkgtool_shell_env3}" "${_pkg_name}";
- rtl_log_msg "info" "${MSG_pkgtool_shell_env4}" "${_pkg_name}";
- export ARCH BUILD_KIND \
- BUILD_DLCACHEDIR BUILD_WORKDIR \
- MAKE="make LIBTOOL=${PKG_LIBTOOL:-slibtool}" \
- MIDIPIX_BUILD_PWD \
- PKG_NAME \
- PREFIX PREFIX_CROSS PREFIX_MINGW32 PREFIX_MINIPIX \
- PREFIX_NATIVE PREFIX_ROOT PREFIX_RPM;
- D="${MIDIPIX_BUILD_PWD}/${0##*/} --update-diff" \
- R="${MIDIPIX_BUILD_PWD}/${0##*/} --restart-at ALL" \
- RS="${MIDIPIX_BUILD_PWD}/${0##*/} --restart-at " \
- "${SHELL}";
- fi; return "${_rc}";
+ return "${_ppr_rc}";
};
-
+# }}}
+# {{{ pkgtoolp_tarball($_rstatus, $_pkg_name)
pkgtoolp_tarball() {
- local _pkg_name="${1}" _date="" _group_name="" _hname="" _pkg_name_full=""\
- _pkg_version="" _rc=0 _tarball_fname="" EX_PKG_BUILD_GROUPS=""; _status="";
+ local _ppt_rstatus="${1}" _ppt_pkg_name="${2}" \
+ _ppt_date="" _ppt_group_name="" _ppt_groups="" _ppt_groups_noauto="" \
+ _ppt_hname="" _ppt_pkg_name_full="" _ppt_pkg_version="" _ppt_rc=0 \
+ _ppt_tarball_fname="";
- if ! ex_pkg_load_groups; then
- _rc=1; _status="Error: failed to load build groups.";
- elif ! _group_name="$(ex_pkg_find_package "${EX_PKG_BUILD_GROUPS}" "${_pkg_name}")"; then
- _rc=1; _status="Error: unknown package \`${_pkg_name}'.";
+ if ! ex_pkg_load_groups \$_ppt_groups \$_ppt_groups_noauto; then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: failed to load build groups.';
+ elif ! ex_pkg_find_package \$_ppt_group_name "${_ppt_groups}" "${_ppt_pkg_name}"; then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: unknown package \`'"${_ppt_pkg_name}'"'.';
elif ! ex_pkg_env "${DEFAULT_BUILD_STEPS}" "${DEFAULT_BUILD_VARS}" \
- "${_group_name}" 0 "${_pkg_name}" "" "${BUILD_WORKDIR}"; then
- _rc=1; _status="Error: failed to set package environment for \`${_pkg_name}'.";
- elif ! _date="$(date +%Y%m%d_%H%M%S)"; then
- _rc=1; _status="Error: failed to call date(1).";
- elif ! _hname="$(hostname -f)"; then
- _rc=1; _status="Error: failed to call hostname(1).";
- else if [ -n "${PKG_VERSION}" ]; then
- _pkg_name_full="${_pkg_name}-${PKG_VERSION}";
- else
- _pkg_name_full="${_pkg_name}";
- fi;
- _tarball_fname="${_pkg_name_full}@${_hname}-${_date}.tbz2";
- rtl_log_msg "info" "${MSG_pkgtool_tarball_creating}" "${PKG_BASE_DIR}" "${_pkg_name}";
- if ! tar -C "${BUILD_WORKDIR}" -cpf - \
- "${PKG_BASE_DIR#${BUILD_WORKDIR%/}/}" \
- "${_pkg_name}_stderrout.log" |\
- bzip2 -c -9 - > "${_tarball_fname}"; then
- _rc=1; _status="Error: failed to create compressed tarball of \`${PKG_BASE_DIR}' and \`${_pkg_name}_stderrout.log'.";
+ "${_ppt_group_name}" 0 "${_ppt_pkg_name}" "" "${BUILD_WORKDIR}";
+ then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: failed to set package environment for \`'"${_ppt_pkg_name}'"'.';
+ elif ! _ppt_date="$(date +%Y%m%d_%H%M%S)"; then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: failed to call date(1).';
+ elif ! _ppt_hname="$(hostname -f)"; then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: failed to call hostname(1).';
+ else
+ if [ "${PKG_VERSION:+1}" = 1 ]; then
+ _ppt_pkg_name_full="${_ppt_pkg_name}-${PKG_VERSION}";
else
- rtl_log_msg "info" "${MSG_pkgtool_tarball_created}" "${PKG_BASE_DIR}" "${_pkg_name}";
+ _ppt_pkg_name_full="${_ppt_pkg_name}";
fi;
- fi; return "${_rc}";
-};
-pkgtoolp_update_diff() {
- local _pkg_name="${1}" _diff_fname_dst="" _diff_fname_src="" _fname=""\
- _fname_base="" _rc=0; _status="";
+ _ppt_tarball_fname="${_ppt_pkg_name_full}@${_ppt_hname}-${_ppt_date}.tbz2";
+ rtl_log_msgV "info" "${MSG_tarball_creating}" "${PKG_BASE_DIR}" "${_ppt_pkg_name}";
- if ! ex_pkg_load_dump "${_pkg_name}" "${BUILD_WORKDIR}"; then
- _rc=1; _status="${_status}";
- else if [ -n "${PKG_VERSION}" ]; then
- _diff_fname_dst="${_pkg_name}-${PKG_VERSION}.local.patch";
+ if ! tar -C "${BUILD_WORKDIR}" -cpf - \
+ "${PKG_BASE_DIR#${BUILD_WORKDIR%/}/}" \
+ "${_ppt_pkg_name}_stderrout.log" |\
+ bzip2 -c -9 - > "${_ppt_tarball_fname}";
+ then
+ _ppt_rc=1;
+ rtl_setrstatus "${_ppt_rstatus}" 'Error: failed to create compressed tarball of \`'"${PKG_BASE_DIR}'"' and \`'"${_ppt_pkg_name}"'_stderrout.log'"'"'.';
else
- _diff_fname_dst="${_pkg_name}.local.patch";
- fi;
- if ! _diff_fname_src="$(mktemp)"; then
- _rc=1; _status="Error: failed to create temporary target diff(1) file.";
- else trap "rm -f \"${_diff_fname_src}\" >/dev/null 2>&1" EXIT HUP INT TERM USR1 USR2;
- (cd "${PKG_BASE_DIR}" && printf "" > "${_diff_fname_src}";
- for _fname in $(find "${PKG_SUBDIR}" -iname \*.orig); do
- _fname_base="${_fname##*/}"; _fname_base="${_fname_base%.orig}";
- case "${_fname_base}" in
- config.sub)
- continue; ;;
- *) diff -u "${_fname}" "${_fname%.orig}" >> "${_diff_fname_src}"; ;;
- esac;
- done);
- if [ "${?}" -ne 0 ]; then
- _rc=1; _status="Error: failed to create diff(1).";
- elif ! rtl_fileop mv "${_diff_fname_src}" "${MIDIPIX_BUILD_PWD}/patches/${_diff_fname_dst}"; then
- _rc=1; _status="Error: failed to rename diff(1) to \`${MIDIPIX_BUILD_PWD}/patches/${_diff_fname_dst}'.";
- else trap - EXIT HUP INT TERM USR1 USR2;
- rtl_log_msg "info" "${MSG_pkgtool_updated_patches}" "${MIDIPIX_BUILD_PWD}" "${_diff_fname_dst}";
- fi;
+ rtl_log_msgV "info" "${MSG_tarball_created}" "${PKG_BASE_DIR}" "${_ppt_pkg_name}";
fi;
- fi; return "${_rc}";
+ fi;
+
+ return "${_ppt_rc}";
};
+# }}}
pkgtool() {
- local _rc=0 _status="" BUILD_GROUPS="" ARCH BUILD_KIND BUILD_WORKDIR PKGTOOL_PKGNAME PREFIX;
-
- if ! . "${0%/*}/subr/pkgtool_init.subr"; then
- _rc=1; printf "Error: failed to source \`${0%/*}/subr/pkgtool_init.subr'." >&2;
- elif ! pkgtool_init "${@}"; then
- _rc=1; _status="${_status}";
- else case "1" in
- "${ARG_INFO:-0}") pkgtoolp_info "${PKGTOOL_PKG_NAME}"; ;;
- "${ARG_MIRROR:-0}") pkgtoolp_mirror "${ARG_MIRROR_DNAME}" "${ARG_MIRROR_DNAME_GIT}"; ;;
- "${ARG_RDEPENDS:-0}") pkgtoolp_rdepends "${PKGTOOL_PKG_NAME}"; ;;
- "${ARG_RESTART_AT:+1}") pkgtoolp_restart_at "${PKGTOOL_PKG_NAME}"; ;;
- "${ARG_SHELL:-0}") pkgtoolp_shell "${PKGTOOL_PKG_NAME}"; ;;
- "${ARG_TARBALL:-0}") pkgtoolp_tarball "${PKGTOOL_PKG_NAME}"; ;;
- "${ARG_UPDATE_DIFF:-0}") pkgtoolp_update_diff "${PKGTOOL_PKG_NAME}"; ;;
+ local _rc=0 _status="" \
+ BUILD_GROUPS="" ARCH BUILD_KIND \
+ BUILD_WORKDIR PKGTOOL_PKGNAME PREFIX;
+
+ if ! pkgtoolp_init \$_status "${@}"; then
+ _rc=1;
+ _status="Error: ${_status}";
+ else
+ case "1" in
+ "${ARG_EDIT:-0}") pkgtoolp_edit \$_status "${PKGTOOL_PKG_NAME}"; ;;
+ "${ARG_FILES:-0}") pkgtoolp_files \$_status "${PKGTOOL_PKG_NAME}"; ;;
+ "${ARG_INFO:-0}") pkgtoolp_info \$_status "${PKGTOOL_PKG_NAME}"; ;;
+ "${ARG_MIRROR:-0}") pkgtoolp_mirror \$_status "${ARG_MIRROR_DNAME}" "${ARG_MIRROR_DNAME_GIT}"; ;;
+ "${ARG_PROFILE:-0}") pkgtoolp_profile \$_status "${ARG_PROFILE_LOG_FNAME}"; ;;
+ "${ARG_RDEPENDS:-0}") pkgtoolp_rdepends \$_status "${PKGTOOL_PKG_NAME}"; ;;
+ "${ARG_TARBALL:-0}") pkgtoolp_tarball \$_status "${PKGTOOL_PKG_NAME}"; ;;
esac; _rc="${?}";
fi;
+
if [ "${_rc}" -ne 0 ]; then
- rtl_log_msg "fatalexit" "0;${_status}";
- elif [ -n "${_status}" ]; then
- rtl_log_msg "info" "0;${_status}";
+ rtl_log_enable_tagsV "${LOG_TAGS_all}";
+ rtl_log_msgV "fatalexit" "0;${_status}";
+ elif [ "${_status:+1}" = 1 ]; then
+ rtl_log_enable_tagsV "${LOG_TAGS_all}";
+ rtl_log_msgV "info" "0;${_status}";
fi;
};
diff --git a/subr.ex/ex_init.subr b/subr.ex/ex_init.subr
new file mode 100644
index 00000000..5dc4f857
--- /dev/null
+++ b/subr.ex/ex_init.subr
@@ -0,0 +1,449 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+exp_setrstatus() {
+ local _epsrs_rstatus="${1#\$}" _epsrs_status="${2}";
+ eval ${_epsrs_rstatus}=\"${_epsrs_status}\";
+ return 0;
+};
+
+#
+# ex_init_env() - initialise build environment
+# @_rstatus: out reference to variable of status string on failure
+# @_rhname: out reference to variable of build hostname
+# @_ruser: out reference to variable of build user
+# @_name_base: base name for messages and theme file(s)
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_env() {
+ local _eie_rstatus="${1#\$}" _eie_rhname="${2#\$}" _eie_ruser="${3#\$}" \
+ _eie_name_base="${4}" \
+ _eie_fname="" _eie_lang="${LANG:-C}" _eie_lang_="" _eie_name="" \
+ _eie_rc=0;
+ _eie_lang="${_eie_lang%%_*}";
+
+ if ! cd "${0%/*}"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to change working directory to \`'"${0%/*}"''\''.';
+ elif ! umask 022; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to set umask(2).';
+ elif ! eval ${_eie_rhname}=\"\$\(hostname\)\"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to obtain hostname.';
+ elif ! eval ${_eie_ruser}=\"\$\(id -nu\)\"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to obtain username.';
+ else
+ for _eie_fname in \
+ $(find subr.ex -name *.subr) \
+ $(find subr.pkg -name *.subr) \
+ $(find subr.rtl -name *.subr) \
+ "etc/${_eie_name_base}.theme" \
+ ;
+ do
+ if ! . "${_eie_fname}"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to source \`'"${_eie_fname}"''\''.';
+ break;
+ fi;
+ done;
+
+ if [ "${_eie_rc}" -eq 0 ]; then
+ if [ -e "${_eie_name_base}.local" ]; then
+ if ! . "${_eie_name_base}.local"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to source \`'"${_eie_name_base}"'.local'\''.';
+ fi;
+ fi;
+ fi;
+
+ if [ "${_eie_rc}" -eq 0 ]; then
+ for _eie_name in ${_eie_name_base} rtl; do
+ for _eie_lang_ in ${_eie_lang} C; do
+ _eie_fname="etc/${_eie_name}.msgs.${_eie_lang_}";
+ if [ -e "${_eie_fname}" ]; then
+ if ! . "${_eie_fname}"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to source \`'"${_eie_fname}"''\''.';
+ break;
+ fi;
+
+ if [ -e "${_eie_fname}.local" ]; then
+ if ! . "${_eie_fname}.local"; then
+ _eie_rc=1;
+ exp_setrstatus "${_eie_rstatus}" 'failed to source \`'"${_eie_fname}"'.local'\''.';
+ fi;
+ fi;
+ break;
+ fi;
+ done;
+
+ if [ "${_eie_rc}" -ne 0 ]; then
+ break;
+ fi;
+ done;
+ fi;
+ fi;
+ export LANG=C LC_ALL=C;
+
+ return "${_eie_rc}";
+};
+
+#
+# ex_init_getopts() - process command-line arguments
+# @_rstatus: out reference to variable of status string on failure
+# @_fn: reference to function called to process command-line argument
+# @_optstring: getopts(1) optstring
+# @...: command-line arguments as "${@}"
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_getopts() {
+ local _eig_rstatus="${1#\$}" _eig_fn="${2}" _eig_optstring="${3}" \
+ _eig_arg="" _eig_fn_rc=0 _eig_opt="" _eig_shiftfl=0 \
+ OPTARG="" OPTIND=0;
+ shift 3;
+
+ if ! "${_eig_fn}" init "${_eig_rstatus}"; then
+ return 1;
+ fi;
+
+ while [ "${#}" -gt 0 ]; do
+ case "${1}" in
+ --*)
+ "${_eig_fn}" longopt "${_eig_rstatus}" "${1}" ${2:-};
+ _eig_fn_rc="${?}";
+
+ case "${_eig_fn_rc}" in
+ 0) ;;
+ 1) return 1; ;;
+
+ *) shift "$((${_eig_fn_rc} - 1))";
+ continue; ;;
+ esac;
+ ;;
+ esac;
+
+ OPTIND=0;
+ if getopts "${_eig_optstring}" _eig_opt; then
+ "${_eig_fn}" opt "${_eig_rstatus}" "${_eig_opt}" "${OPTARG:-}" "${@}";
+ _eig_fn_rc="${?}";
+
+ case "${_eig_fn_rc}" in
+ 0) ;;
+ 1) return 1; ;;
+
+ *) shift "$((${_eig_fn_rc} - 1))";
+ continue; ;;
+ esac;
+ else
+ "${_eig_fn}" nonopt "${_eig_rstatus}" "${@}";
+ _eig_fn_rc="${?}";
+
+ case "${_eig_fn_rc}" in
+ 0) ;;
+ 1) return 1; ;;
+
+ *) shift "$((${_eig_fn_rc} - 1))";
+ continue; ;;
+ esac;
+ fi;
+ done;
+
+ if ! "${_eig_fn}" done "${_eig_rstatus}"; then
+ return 1;
+ fi;
+
+ return 0;
+};
+
+#
+# ex_init_help() - display usage screen and exit if requested in command-line arguments
+# @_rstatus: out reference to variable of status string on failure
+# @_args_long: optional list of long (prefixed with `--') arguments
+# @_name_base: base name for usage screen file
+# @_optstring: getopts(1) optstring
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_help() {
+ local _eih_rstatus="${1#\$}" _eih_args_long="${2}" \
+ _eih_name_base="${3}" _eih_optstring="${4}" \
+ _eih_arg_long="" _eih_opt="" _eih_shiftfl=0 \
+ OPTIND;
+ shift 4;
+
+ while [ "${#}" -gt 0 ]; do
+ case "${1}" in
+ -h)
+ if [ -t 1 ]; then
+ cat "etc/${_eih_name_base}.usage.short";
+ else
+ sed 's/\[[0-9]\+m//g' "etc/${_eih_name_base}.usage.short";
+ fi;
+ exit 0;
+ ;;
+
+ --help)
+ if [ -t 1 ]; then
+ cat "etc/${_eih_name_base}.usage";
+ else
+ sed 's/\[[0-9]\+m//g' "etc/${_eih_name_base}.usage";
+ fi;
+ exit 0;
+ ;;
+
+ *=*) shift; continue;
+ ;;
+
+ *) _eih_shiftfl=0;
+ for _eih_arg_long in ${_eih_args_long}; do
+ if [ "${_eih_arg_long}" = "${1}" ]; then
+ _eih_shiftfl=1;
+ fi;
+ done;
+ if [ "${_eih_shiftfl}" = 1 ]; then
+ shift; continue;
+ fi;
+ ;;
+ esac;
+
+ OPTIND=0;
+ if getopts "${_eih_optstring}" _eih_opt 2>/dev/null; then
+ case "${_eih_opt}" in
+ h)
+ if [ -t 1 ]; then
+ cat "etc/${_eih_name_base}.usage.short";
+ else
+ sed 's/\[[0-9]\+m//g' "etc/${_eih_name_base}.usage.short";
+ fi;
+ exit 0;
+ ;;
+ esac;
+ shift $((${OPTIND}-1)); OPTIND=1;
+ else
+ shift;
+ fi;
+ done;
+
+ return 0;
+};
+
+#
+# ex_init_files() - initialise build files
+# @_rstatus: out reference to variable of status string on failure
+# @_rclean_builds: in reference to variable of -C argument value
+# @_rdist: in reference to variable of -D argument value
+# @_build_log_fname: absolute pathname to build log file
+# @_build_log_last_fname: absolute pathname to last build log file
+# @_build_status_in_progress_fname: absolute pathname to build-in-progress status file
+# @_check_path_vars: list of pathname variables to check
+# @_clear_env_vars_except: list of environment variables to not unset when clearing the environment
+# @_clear_prefix_paths: list of directory pathnames to clear in the top-level prefix
+# @_rpm_semaphore: absolute pathname to rpmbuild(1) parallel jobs count semaphore
+# @_dlcachedir: absolute pathname to download cache directory
+# @_prefix: absolute pathname to top-level prefix
+# @_prefix_rpm: absolute pathname to RPM files prefix
+# @_workdir: absolute pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_files() {
+ local _eif_rstatus="${1#\$}" _eif_rclean_builds="${2#\$}" _eif_rdist="${3#\$}" \
+ _eif_build_log_fname="${4}" _eif_build_log_last_fname="${5}" \
+ _eif_build_status_in_progress_fname="${6}" _eif_check_path_vars="${7}" \
+ _eif_clear_env_vars_except="${8}" _eif_clear_prefix_paths="${9}" \
+ _eif_rpm_semaphore="${10}" _eif_dlcachedir="${11}" _eif_prefix="${12}" \
+ _eif_prefix_rpm="${13}" _eif_workdir="${14}" \
+ _eif_log_last_fname="" _eif_log_last_num=1 _eif_rc=0;
+
+ if ! rtl_fileop mkdir "${_eif_dlcachedir}" "${_eif_workdir}"\
+ || rtl_lmatch "${_eif_rdist}" "rpm" ","\
+ && ! rtl_fileop mkdir "${_eif_prefix_rpm}"; then
+ _eif_rc=1;
+ rtl_setrstatus "${_eif_rstatus}" 'cannot create build directories.';
+ elif [ -e "${_eif_build_status_in_progress_fname}" ]; then
+ _eif_rc=1;
+ rtl_setrstatus "${_eif_rstatus}" 'another build targeting this architecture and build type is currently in progress.';
+ elif ! rtl_clean_env "${_eif_clear_env_vars_except}"; then
+ _eif_rc=1;
+ rtl_setrstatus "${_eif_rstatus}" 'failed to clean environment.';
+ elif ! rtl_check_path_vars "${_eif_rstatus}" "${_eif_check_path_vars}"; then
+ _eif_rc=1;
+ else
+ export LC_ALL="${LC_ALL:-C}";
+ export TMP="${_eif_workdir}" TMPDIR="${_eif_workdir}";
+ touch "${_eif_build_status_in_progress_fname}";
+
+ if [ -e "${_eif_build_log_fname}" ]; then
+ while [ -e "${_eif_build_log_fname}.${_eif_log_last_num}" ]; do
+ : $((_eif_log_last_num+=1));
+ done;
+
+ _eif_log_last_fname="${_eif_build_log_fname}.${_eif_log_last_num}";
+ rtl_fileop mv "${_eif_build_log_fname}" "${_eif_log_last_fname}";
+ rtl_fileop ln_symbolic "${_eif_log_last_fname}" "${_eif_build_log_last_fname}";
+ fi;
+
+ rtl_fileop touch "${_eif_build_log_fname}";
+ rtl_log_set_fname "${_eif_build_log_fname}";
+
+ rtl_fileop rm "${_eif_rpm_semaphore}";
+
+ if rtl_lmatch "${_eif_rclean_builds}" $"prefix" ","; then
+ trap "rm -f \"${_eif_build_status_in_progress_fname}\" 2>/dev/null;
+
+ rtl_log_msgV \"fatalexit\" \"${MSG_build_aborted}\"" HUP INT TERM USR1 USR2;
+ rtl_log_msgV "info" "${MSG_build_clean_prefix}";
+
+ for _eif_pname in ${_eif_clear_prefix_paths}; do
+ if ! rtl_fileop rm "${_eif_prefix}/${_eif_pname}"; then
+ _eif_rc=1;
+ rtl_setrstatus "${_eif_rstatus}" 'failed to remove \`'"${_eif_prefix:+${_eif_prefix}/}${_eif_pname}'"'.';
+ break;
+ fi;
+ done;
+
+ trap - HUP INT TERM USR1 USR2;
+ fi;
+
+ export PATH="${_eif_prefix}/localcross/bin${PATH:+:${PATH}}";
+ export PATH="${_eif_prefix}/bin${PATH:+:${PATH}}";
+ fi;
+
+ return "${_eif_rc}";
+};
+
+#
+# ex_init_logging() - initialise build logging
+# @_rstatus: out reference to variable of status string on failure
+# @_rverbose_tags: in reference to out variable of -V argument value
+# @_verbose: -[vV] argument value
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_logging() {
+ local _eil_rstatus="${1#\$}" _eil_rverbose_tags="${2#\$}" _eil_verbose="${3}" \
+ _eil_tag="" _eil_tags="" _eil_tags_enable="" _eil_rc=0;
+
+ rtl_log_clear_tags;
+ case "${_eil_verbose}" in
+
+ 0) if eval [ \"\${#${_eil_rverbose_tags}}\" -eq 0 ]; then
+ rtl_log_enable_tagsV "${LOG_TAGS_normal}";
+ fi;
+ ;;
+
+ 1) rtl_log_enable_tagsV "${LOG_TAGS_verbose}"; ;;
+
+ *) _eil_rc=1;
+ rtl_setrstatus "${_eil_rstatus}" 'invalid verbosity level (max. -v)';
+ ;;
+
+ esac;
+
+ if [ "${_eil_rc}" -eq 0 ]; then
+ eval _eil_tags="\${${_eil_rverbose_tags}}";
+ case "${_eil_tags}" in
+
+ +*) rtl_log_enable_tagsV "${LOG_TAGS_normal}";
+ eval ${_eil_rverbose_tags}="\${${_eil_rverbose_tags}#+}";
+ ;;
+
+ *) ;;
+
+ esac;
+
+ rtl_llift2 "${_eil_rverbose_tags}" \$_eil_tags "," " ";
+
+ for _eil_tag in ${_eil_tags}; do
+ case "${_eil_tag}" in
+
+ all) rtl_log_enable_tagsV "${LOG_TAGS_all}"; ;;
+
+ clear|none) rtl_log_clear_tags; ;;
+
+ normal) rtl_log_enable_tagsV "${LOG_TAGS_normal}"; ;;
+
+ verbose) rtl_log_enable_tagsV "${LOG_TAGS_verbose}"; ;;
+
+ *) rtl_lsearch_patternl2 \$LOG_TAGS_all \$_eil_tags_enable "${_eil_tag}" ",";
+ if [ "${#_eil_tags_enable}" -gt 0 ]; then
+ rtl_log_enable_tagsV "${_eil_tags_enable}";
+ else
+ _eil_rc=1;
+ rtl_setrstatus "${_eil_rstatus}" 'invalid log tag or tag pattern \`'"${_eil_tag}"''\''.';
+ break;
+ fi;
+ ;;
+
+ esac;
+ done;
+ fi;
+
+ return "${_eil_rc}";
+};
+
+#
+# ex_init_prereqs() - initialise build prerequisite commands
+# @_rstatus: out reference to variable of status string on failure
+# @_prereqs: list of prerequisite commands
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_prereqs() {
+ local _eip_rstatus="${1#\$}" _eip_prereqs="${2}" \
+ _eip_rc=0;
+
+ if ! rtl_check_prereqsV "${_eip_rstatus}" ${_eip_prereqs}; then
+ _eip_rc=1;
+ elif ! awk -V 2>/dev/null | grep -q "^GNU Awk "; then
+ _eip_rc=1;
+ rtl_setrstatus "${_eip_rstatus}" 'awk(1) in \$PATH must be GNU Awk.';
+ elif ! (FNAME="$(mktemp)" && { trap "rm -f \"\${FNAME}\"" EXIT HUP INT TERM USR1 USR2; \
+ sed -i'' -e '' "${FNAME}" >/dev/null 2>&1; });
+ then
+ _eip_rc=1;
+ rtl_setrstatus "${_eip_rstatus}" 'sed(1) in \${PATH} does not support the \`-i'\'' option.';
+ fi;
+
+ return "${_eip_rc}";
+};
+
+#
+# ex_init_theme() - initialise theme
+# @_rstatus: out reference to variable of status string on failure
+# @_hname: build hostname
+# @_name_base: base name for theme file(s)
+# @_theme: theme name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_init_theme() {
+ local _eit_rstatus="${1#\$}" _eit_hname="${2}" _eit_name_base="${3}" _eit_theme="${4}" \
+ _eit_rc=0 _eit_theme_fname="";
+
+ if [ "${_eit_theme:+1}" = 1 ]; then
+ _eit_theme_fname="etc/${_eit_name_base}.${_eit_theme}.theme";
+ else
+ _eit_theme_fname="etc/${_eit_name_base}.theme.host.${_eit_hname}";
+ if ! [ -e "${_eit_theme_fname}" ]; then
+ _eit_theme_fname="etc/${_eit_name_base}.theme";
+ fi;
+ fi;
+
+ if ! [ -e "${_eit_theme_fname}" ]; then
+ _eit_rc=1;
+ exp_setrstatus "${_eit_rstatus}" 'failed to source \`'"${_eit_theme_fname}"''\''.';
+ else
+ . "${_eit_theme_fname}";
+ fi;
+
+ return "${_eit_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr
new file mode 100644
index 00000000..0458ed6d
--- /dev/null
+++ b/subr.ex/ex_pkg.subr
@@ -0,0 +1,537 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+#
+# ex_pkg_check_depends() - check single named package for unsatisfied dependencies
+# @_checkfl: enable (1) or inhibit (0) dependency expansion
+# @_rpkg_disabled: in reference to variable of list of disabled packages
+# @_rpkg_finished: in reference to variable of list of finished packages
+# @_pkg_name: single package name
+# @_rpkg_names: in reference to variable of list of package names
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) given no outstanding dependencies, non-zero (>0) otherwise
+#
+ex_pkg_check_depends() {
+ local _epcd_checkfl="${1}" _epcd_rpkg_disabled="${2}" _epcd_rpkg_finished="${3#\$}" \
+ _epcd_pkg_name="${4}" _epcd_rpkg_names="${5#\$}" _epcd_workdir="${6}" \
+ _epcd_dependfl=0 _epcd_depends="" _epcd_pkg_name_depend="";
+
+ if [ "${_epcd_checkfl}" -eq 1 ]\
+ && rtl_get_var_unsafe \$_epcd_depends -u "PKG_"${_epcd_pkg_name}"_DEPENDS"\
+ && [ "${_epcd_depends:+1}" = 1 ]; then
+ for _epcd_pkg_name_depend in ${_epcd_depends}; do
+ if ! rtl_lmatch "${_epcd_rpkg_disabled}" "${_epcd_pkg_name_depend}"\
+ && ! ex_pkg_state_test2 "${_epcd_workdir}" "${_epcd_pkg_name_depend}" finish;
+ then
+ if ! rtl_lmatch "${_epcd_rpkg_names}" "${_epcd_pkg_name_depend}"; then
+ rtl_log_msgV "fatalexit" "${MSG_build_unknown_dep}" "${_epcd_pkg_name_depend}" "${_epcd_pkg_name}";
+ else
+ _epcd_dependfl=1; break;
+ fi;
+ fi;
+ done;
+ fi;
+
+ return "${_epcd_dependfl}";
+};
+
+#
+# ex_pkg_check_depends_unknown() - check single named package for unknown dependencies
+# @_pkg_name: single package name
+# @_rpkg_names_set: in reference to variable of set of package names
+# @_rpkg_unknown: out reference to variable of list of finished packages
+#
+# Returns: zero (0) given no unknown dependencies, non-zero (>0) otherwise
+#
+ex_pkg_check_depends_unknown() {
+ local _epcdu_pkg_name="${1}" _epcdu_rpkg_names_set="${2#\$}" \
+ _epcdu_rpkg_unknown="${3#\$}" \
+ _epcdu_defined=0 _epcdu_depends="" _epcdu_pkg_name_depend="" \
+ _epcdu_rc=0;
+
+ if rtl_get_var_unsafe \$_epcdu_depends -u "PKG_"${_epcdu_pkg_name}"_DEPENDS"\
+ && [ "${_epcdu_depends:+1}" = 1 ]; then
+ for _epcdu_pkg_name_depend in ${_epcdu_depends}; do
+ if ! rtl_get_var_unsafe \$_epcdu_defined "${_epcdu_rpkg_names_set}_${_epcdu_pkg_name_depend}"\
+ || [ "${_epcdu_defined:-0}" -eq 0 ]; then
+ rtl_lconcat "${_epcdu_rpkg_unknown}" "${_epcdu_pkg_name_depend}";
+ _epcdu_rc=1;
+ fi;
+ done;
+ fi;
+
+ return "${_epcdu_rc}";
+};
+
+#
+# ex_pkg_copy_group_vars() - copy build group variables into build group
+# @_group_name_src: single source build group name
+# @_group_name_dst: single destination build group name
+# @[_build_vars_default]: optional list of default build variables, defaults to ${DEFAULT_BUILD_VARS}
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_copy_group_vars() {
+ local _epcgv_group_name_src="${1#\$}" _epcgv_group_name_dst="${2#\$}" \
+ _epcgv_build_vars_default="${3:-${DEFAULT_BUILD_VARS}}" \
+ _epcgv_group_name_dst_uc="" _epcgv_group_name_src_uc="" \
+ _epcgv_vname="" _epcgv_vval="";
+ rtl_toupper2 \$_epcgv_group_name_dst \$_epcgv_group_name_dst_uc;
+ rtl_toupper2 \$_epcgv_group_name_src \$_epcgv_group_name_src_uc;
+
+ for _epcgv_vname in ${_epcgv_build_vars_default}; do
+ if rtl_get_var_unsafe \$_epcgv_vval "${_epcgv_group_name_src_uc}_${_epcgv_vname}"\
+ && [ "${_epcgv_vval:+1}" = 1 ]; then
+ rtl_set_var_unsafe "${_epcgv_group_name_dst_uc}_${_epcgv_vname}" "${_epcgv_vval}";
+ fi;
+ done;
+
+ return 0;
+};
+
+#
+# ex_pkg_find_package() - find build group a single named package belongs to
+# @_rgroup_name: out reference to variable of build group name
+# @_group_names: build group names
+# @_pkg_name: single named package
+#
+# Returns: zero (0) on success, non-zero (>0) if package not found, group name on stdout if package was found.
+#
+ex_pkg_find_package() {
+ local _epfp_rgroup_name="${1#\$}" _epfp_group_names="${2}" _epfp_pkg_name="${3}" \
+ _epfp_foundfl=0 _epfp_group_name="" _epfp_pkg_names="";
+
+ for _epfp_group_name in ${_epfp_group_names}; do
+ if rtl_get_var_unsafe \$_epfp_pkg_names -u "${_epfp_group_name}_PACKAGES"\
+ && [ "${_epfp_pkg_names:+1}" = 1 ]\
+ && rtl_lmatch \$_epfp_pkg_names "${_epfp_pkg_name}"; then
+ _epfp_foundfl=1; break;
+ fi;
+ done;
+
+ case "${_epfp_foundfl:-0}" in
+ 0) eval ${_epfp_rgroup_name}=;
+ return 1; ;;
+
+ 1) eval ${_epfp_rgroup_name}='${_epfp_group_name}';
+ return 0; ;;
+ esac;
+};
+
+#
+# ex_pkg_get_default() - get single package default value
+# @_rdefault: out reference to variable of default value or "" on end of list
+# @_default_idx: one-based single default value index
+# @_pkg_name: single package name
+# @_pkg_version: single package version
+# @_ldefault: SP-separated list of default value names (any of: patches, patches_pre, vars_files)
+#
+# Returns: zero (0) on success, non-zero (>0) on invalid default value name or unknown package.
+#
+ex_pkg_get_default() {
+ local _epgd_rdefault="${1#\$}" _epgd_default_idx="${2}" _epgd_pkg_name="${3}" \
+ _epgd_pkg_version="${4}" _epgd_ldefault="${5}" \
+ _epgd_default="" _epgd_group_name="" _epgd_patch_fname="" \
+ _epgd_pkg_name_full="" _epgd_pkg_patches_extra="" _epgd_rc=0;
+
+ set --;
+ _epgd_pkg_name_full="${_epgd_pkg_name}${_epgd_pkg_version:+-${_epgd_pkg_version}}";
+ _epgd_rc=0;
+
+ for _epgd_default in ${_epgd_ldefault}; do
+ case "${_epgd_default}" in
+ patches)
+ rtl_get_var_unsafe \$_epgd_pkg_patches_extra -u "PKG_${_epgd_pkg_name}_PATCHES_EXTRA";
+ set +o noglob;
+ set -- \
+ "${@}" \
+ "${MIDIPIX_BUILD_PWD}/patches/${_epgd_pkg_name}/"*.patch \
+ "${MIDIPIX_BUILD_PWD}/patches/${_epgd_pkg_name_full}.local.patch" \
+ "${MIDIPIX_BUILD_PWD}/patches/${_epgd_pkg_name_full}.local@${BUILD_HNAME}.patch" \
+ ${_epgd_pkg_patches_extra};
+ set -o noglob;
+ ;;
+
+ patches_pre)
+ set -- \
+ "${@}" \
+ "${MIDIPIX_BUILD_PWD}/patches/${_epgd_pkg_name_full}_pre.local.patch" \
+ "${MIDIPIX_BUILD_PWD}/patches/${_epgd_pkg_name_full}_pre.local@${BUILD_HNAME}.patch";
+ ;;
+
+ vars_files)
+ rtl_get_var_unsafe \$_epgd_group_name -u "PKG_${_epgd_pkg_name}_GROUP";
+ set -- \
+ "vars/${_epgd_pkg_name}.vars" \
+ "vars.${_epgd_group_name}/${_epgd_pkg_name}.vars";
+ ;;
+
+ *)
+ _epgd_rc=1; break;
+ ;;
+ esac;
+ done;
+
+ if [ "${_epgd_rc}" = 0 ]; then
+ eval ${_epgd_rdefault}="\${${_epgd_default_idx}:-}";
+ fi;
+
+ return "${_epgd_rc}";
+};
+
+#
+# ex_pkg_get_packages() - get list of packages belonging to single named build group
+# @_rpkg_names: out reference to variable of package names
+# @_group_name: build group name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure, list of package names on stdout on success.
+#
+ex_pkg_get_packages() {
+ local _epgp_rpkg_names="${1#\$}" _epgp_group_name="${2}" \
+ _epgp_pkg_names="";
+
+ if rtl_get_var_unsafe \$_epgp_pkg_names -u "${_epgp_group_name}_PACKAGES"\
+ && [ "${_epgp_pkg_names:+1}" = 1 ]; then
+ eval ${_epgp_rpkg_names}='${_epgp_pkg_names}';
+ return 0;
+ else
+ eval ${_epgp_rpkg_names}=;
+ return 1;
+ fi;
+};
+
+#
+# ex_pkg_get_package_vars() - get package variable names
+# @_rpkg_vnames: out reference to package variable names variable
+# @_build_vars_default: list of default build variables
+# @_pkg_name: single package name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure, list of package names on stdout on success.
+#
+ex_pkg_get_package_vars() {
+ local _epgpv_rpkg_vnames="${1#\$}" _epgpv_build_vars_default="${2}" _epgpv_pkg_name="${3}" \
+ _epgpv_pkg_name_uc="" _epgpv_vname="" _epgpv_vnames="";
+ rtl_toupper2 \$_epgpv_pkg_name \$_epgpv_pkg_name_uc;
+
+ for _epgpv_vname in ${_epgpv_build_vars_default}; do
+ if eval [ \"\${PKG_${_epgpv_pkg_name_uc}_${_epgpv_vname}:+1}\" = 1 ]; then
+ rtl_lconcat \$_epgpv_vnames "PKG_${_epgpv_pkg_name_uc}_${_epgpv_vname}";
+ fi;
+ done;
+
+ eval ${_epgpv_rpkg_vnames}='${_epgpv_vnames}';
+ return 0;
+};
+
+#
+# ex_pkg_load_vars() - load build variables
+# @_rstatus: out reference to status string
+# @_rbuild_arch: in reference to build architecture
+# @_rbuild_kind: in reference to build kind
+#
+# Returns: zero (0) on success, non-zero (>0) on failure, build variables post-return on success.
+#
+ex_pkg_load_vars() {
+ local _eplv_rstatus="${1#\$}" _eplv_rbuild_arch="${2#\$}" _eplv_rbuild_kind="${3#\$}" \
+ _eplv_build_arch="" _eplv_rc=0 _eplv_fname="";
+
+ if ! rtl_lmatch "${_eplv_rbuild_arch}" "nt32 nt64"; then
+ _eplv_rc=1;
+ rtl_setrstatus "${_eplv_rstatus}" 'invalid architecture \`${'"${_eplv_rbuild_arch}"'}'\''.';
+ elif ! rtl_lmatch "${_eplv_rbuild_kind}" "debug release"; then
+ _eplv_rc=1;
+ rtl_setrstatus "${_eplv_rstatus}" 'unknown build type \`${'"${_eplv_rbuild_kind}"'}'\''.';
+ else
+ eval _eplv_build_arch="\${${_eplv_rbuild_arch}}";
+ case "${_eplv_build_arch}" in
+ nt32) DEFAULT_TARGET="i686-nt32-midipix"; ;;
+ nt64) DEFAULT_TARGET="x86_64-nt64-midipix"; ;;
+ esac;
+
+ if [ "${PREFIX_ROOT:+1}" ]\
+ && [ "${PREFIX_ROOT#/}" = "${PREFIX_ROOT}" ]; then
+ PREFIX_ROOT="${PWD%/}/${PREFIX_ROOT}";
+ fi;
+ if [ "${PREFIX:+1}" ]\
+ && [ "${PREFIX#/}" = "${PREFIX}" ]; then
+ PREFIX="${PWD%/}/${PREFIX}";
+ fi;
+
+ for _eplv_fname in \
+ "${HOME}/midipix_build.vars" \
+ "${HOME}/.midipix_build.vars" \
+ ../midipix_build.vars;
+ do
+ if [ -r "${_eplv_fname}" ]; then
+ rtl_fileop source "${_eplv_fname}";
+ fi;
+ done;
+
+ set +o noglob;
+ for _eplv_fname in \
+ ./vars.env.d/*.env;
+ do
+ set -o noglob;
+ if [ -r "${_eplv_fname}" ]; then
+ rtl_fileop source "${_eplv_fname}";
+ fi;
+ done;
+ set -o noglob;
+ fi;
+
+ return "${_eplv_rc}";
+};
+
+#
+# ex_pkg_load_groups() - load all available build groups
+# @_rgroups: out reference to variable of build groups
+# @_rgroups_noauoto: optional out reference to variable of build groups not built automatically
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_load_groups() {
+ local _eplg_rgroups="${1#\$}" _eplg_rgroups_noauto="${2#\$}" \
+ _eplg_build_groups="" _eplg_build_groups_noauto="" _eplg_fname="";
+
+ EXP_PKG_REGISTER_GROUP_RGROUPS="${_eplg_rgroups}";
+ EXP_PKG_REGISTER_GROUP_RGROUPS_NOAUTO="${_eplg_rgroups_noauto}";
+ for _eplg_fname in $(find ./groups.d -name *.group | sort); do
+ rtl_fileop source_with_fnamevar "${_eplg_fname}";
+ done;
+ unset EXP_PKG_REGISTER_GROUP_RGROUPS;
+ unset EXP_PKG_REGISTER_GROUP_RGROUPS_NOAUTO;
+
+ for _eplg_fname in $(find ./groups.d -mindepth 2 -name *.package | sort); do
+ rtl_fileop source_with_fnamevar "${_eplg_fname}";
+ done;
+
+ return 0;
+};
+
+#
+# ex_pkg_register() - register single package
+# @_pkg_name: single package name
+# @_fname: pathname to file package is defined in, relative to midipix_build root
+# @[_group_name]: optional build group name; inferred from @_fname if not specified
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_register() {
+ local _epr_pkg_name="${1}" _epr_fname="${2}" _epr_group_name="${3:-}" \
+ _epr_group_name_uc="" _epr_group_noautofl=0;
+
+ if [ "${_epr_group_name:+1}" != 1 ]; then
+ _epr_group_name="${_epr_fname#./*/}";
+ _epr_group_name="${_epr_group_name%%/*}";
+ _epr_group_name="${_epr_group_name%.d}";
+ _epr_group_name="${_epr_group_name#*.}";
+ fi;
+
+ rtl_toupper2 \$_epr_group_name \$_epr_group_name_uc;
+ rtl_lconcat "\$${_epr_group_name_uc}_PACKAGES" "${_epr_pkg_name}";
+ rtl_set_var_unsafe -u "PKG_${_epr_pkg_name}_GROUP" "${_epr_group_name}";
+ rtl_set_var_unsafe -u "PKG_${_epr_pkg_name}_GROUP_FNAME" "${_epr_fname}";
+
+ return 0;
+};
+
+#
+# ex_pkg_register_group() - register single group
+# @_group_name: single group name
+# @_fname: pathname to file group is defined in, relative to midipix_build root
+# @[_ownerfl]: "owner" for groups that own their packages, "copy" for shorthand groups referring to packages from other groups
+# @[_autofl]: "auto" for groups to build by default, "noauto" for optional groups only built when requested
+# ${EXP_PKG_REGISTER_GROUP_RGROUPS}: inout reference to variable of build groups
+# ${EXP_PKG_REGISTER_GROUP_RGROUPS_NOAUTO}: inout reference to variable of build groups only built when requested
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_register_group() {
+ local _eprg_group_name="${1}" _eprg_fname="${2}" \
+ _eprg_ownerfl="${3:-owner}" _eprg_autofl="${4:-auto}" \
+ _eprg_pkg_name="" _eprg_pkg_names="" _eprg_rgroups="";
+
+ case "${_eprg_autofl}" in
+ auto) _eprg_rgroups="${EXP_PKG_REGISTER_GROUP_RGROUPS}"; ;;
+ noauto) _eprg_rgroups="${EXP_PKG_REGISTER_GROUP_RGROUPS_NOAUTO}"; ;;
+ *) ;;
+ esac;
+ if ! rtl_lmatch "${_eprg_rgroups}" "${_eprg_group_name}"; then
+ rtl_lconcat "${_eprg_rgroups}" "${_eprg_group_name}";
+ fi;
+
+ case "${_eprg_ownerfl}" in
+ owner)
+ if rtl_get_var_unsafe \$_eprg_pkg_names -u "${_eprg_group_name}_PACKAGES"\
+ && [ "${_eprg_pkg_names:+1}" = 1 ]; then
+ for _eprg_pkg_name in ${_eprg_pkg_names}; do
+ rtl_set_var_unsafe -u "PKG_${_eprg_pkg_name}_GROUP" "${_eprg_group_name}";
+ rtl_set_var_unsafe -u "PKG_${_eprg_pkg_name}_GROUP_FNAME" "${_eprg_fname}";
+ done;
+ fi;
+ ;;
+ copy) ;;
+ *) ;;
+ esac;
+
+ return 0;
+};
+
+#
+# ex_pkg_unfold_depends() - unfold list of package names into dependency-expanded set of complete, disabled, finished, and outstanding package names
+# @_rdisabled: in reference to out variable of disabled packages
+# @_rfinished: in reference to out variable of finished packages
+# @_rnames: out reference to variable of package names
+# @_checkfl: enable (1) or inhibit (0) dependency expansion
+# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
+# @_group_name: build group name
+# @_pkg_names: list of package names
+# @_restart: optional whitespace-separated list of package names to rebuild
+# @_test_finished: only exclude disabled packages (0,) split finished packages
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_unfold_depends() {
+ local _epud_rdisabled="${1#\$}" _epud_rfinished="${2#\$}" _epud_rnames="${3#\$}" \
+ _epud_checkfl="${4}" _epud_forcefl="${5}" _epud_group_name="${6}" \
+ _epud_pkg_names="${7}" _epud_restart="${8}" _epud_test_finished="${9}" \
+ _epud_workdir="${10}" \
+ _epud_depends="" _epud_pkg_disabled="" _epud_pkg_force="" _epud_pkg_name="" \
+ _epud_pkg_name_depend="" _epud_pkg_names_new="" _epud_pkg_names_set="" \
+ _epud_pkg_unknown="" _epud_restartfl=0 _epud_unknown_depends=0;
+
+ if [ "${_epud_restart:+1}" = 1 ]\
+ && ! rtl_lmatch \$_epud_restart "ALL LAST"; then
+ rtl_lsearch \$_epud_pkg_names "${_epud_restart}";
+ fi;
+ if [ "${_epud_restart:+1}" = 1 ]\
+ && [ "${_epud_checkfl:-0}" -eq 1 ]; then
+ rtl_lunfold_dependsV 'PKG_${_rld_name}_DEPENDS' \$_epud_pkg_names ${_epud_pkg_names};
+ _epud_pkg_names="$(rtl_uniq ${_epud_pkg_names})";
+ fi;
+
+ rtl_llift_set \$_epud_pkg_names \$_epud_pkg_names_set;
+ for _epud_pkg_name in ${_epud_pkg_names}; do
+ if rtl_get_var_unsafe \$_epud_depends -u "PKG_"${_epud_pkg_name}"_DEPENDS"\
+ && [ "${_epud_depends:+1}" = 1 ]; then
+ _epud_pkg_unknown="";
+ if ! ex_pkg_check_depends_unknown "${_epud_pkg_name}" \$_epud_pkg_names_set \$_epud_pkg_unknown; then
+ for _epud_pkg_name_depend in ${_epud_pkg_unknown}; do
+ rtl_log_msgV "warning" "${MSG_build_unknown_dep}" "${_epud_pkg_name_depend}" "${_epud_pkg_name}";
+ done;
+ _epud_unknown_depends=1;
+ fi;
+ fi;
+
+ if [ "${_epud_restart}" = "ALL" ]\
+ || rtl_lmatch \$_epud_restart "${_epud_pkg_name}"; then
+ _epud_restartfl=1;
+ else
+ _epud_restartfl=0;
+ fi;
+
+ if rtl_get_var_unsafe \$_epud_pkg_disabled -u "PKG_${_epud_pkg_name}_DISABLED"\
+ && [ "${_epud_pkg_disabled}" = 1 ];
+ then
+ rtl_lconcat "${_epud_rdisabled}" "${_epud_pkg_name}";
+
+ elif [ "${_epud_test_finished:-1}" -eq 1 ]\
+ && ex_pkg_state_test2 "${_epud_workdir}" "${_epud_pkg_name}" finish\
+ && [ "${_epud_restartfl:-0}" -eq 0 ]\
+ && [ "${_epud_forcefl:-0}" -ne 1 ]\
+ && rtl_get_var_unsafe \$_epud_pkg_force -u "${_epud_group_name}_FORCE"\
+ && [ "${_epud_pkg_force}" != 1 ];
+ then
+ rtl_lconcat "${_epud_rfinished}" "${_epud_pkg_name}";
+
+ else
+ rtl_lconcat \$_epud_pkg_names_new "${_epud_pkg_name}";
+ fi;
+ done;
+ rtl_llift_unset \$_epud_pkg_names_set;
+
+ if [ "${_epud_unknown_depends}" -eq 1 ]; then
+ rtl_log_msgV "warning" "${MSG_build_unknown_deps}";
+ fi;
+
+ eval ${_epud_rdisabled}='$(rtl_uniq2 "${_epud_rdisabled}")';
+ eval ${_epud_rfinished}='$(rtl_uniq2 "${_epud_rfinished}")';
+ eval ${_epud_rnames}='$(rtl_uniq "${_epud_pkg_names_new}")';
+
+ return 0;
+};
+
+#
+# ex_pkg_unfold_rdepends() - unfold list of package names into reverse dependency-expanded set of complete, disabled, finished, and outstanding package names
+# @_rdisabled: in reference to out variable of disabled packages
+# @_rfinished: in reference to out variable of finished packages
+# @_rnames: out reference to variable of package names
+# @_group_name: build group name
+# @_pkg_names: list of package names
+# @_restart: optional whitespace-separated list of package names to rebuild
+# @_test_finished: only exclude disabled packages (0,) split finished packages
+# @_workdir: pathname to build-specific temporary directory
+# @_recursefl: resolve recursively ("recurse") or non-recursively ("norecurse")
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_unfold_rdepends() {
+ local _epur_rdisabled="${1#\$}" _epur_rfinished="${2#\$}" _epur_rnames="${3#\$}" \
+ _epur_group_name="${4}" _epur_pkg_names="${5}" _epur_restart="${6}" \
+ _epur_test_finished="${7}" _epur_workdir="${8}" _epur_recursefl="${9}" \
+ _epur_depends="" _epur_disabled=0 _epur_force=0 _epur_pkg_depends="" \
+ _epur_pkg_name="" _epur_pkg_names_new="" _epur_pkg_name_depend="" \
+ _epur_pkg_name_rdepend="" _epur_pkg_rdepends="";
+
+ for _epur_pkg_name_depend in ${_epur_restart}; do
+ for _epur_pkg_name in ${_epur_pkg_names}; do
+ if [ "${_epur_pkg_name}" = "${_epur_pkg_name_depend}" ]; then
+ continue;
+
+ elif rtl_get_var_unsafe \$_epur_depends -u "PKG_"${_epur_pkg_name}"_DEPENDS"\
+ && rtl_lunfold_dependsV 'PKG_${_rld_name}_DEPENDS' \$_epur_pkg_depends ${_epur_depends}\
+ && [ "${_epur_pkg_depends:+1}" = 1 ]\
+ && rtl_lmatch \$_epur_pkg_depends "${_epur_pkg_name_depend}";
+ then
+ case "${_epur_recursefl}" in
+ recurse) _epur_pkg_rdepends="${_epur_pkg_name} ${_epur_pkg_depends}"; ;;
+ norecurse) _epur_pkg_rdepends="${_epur_pkg_name}"; ;;
+ esac;
+
+ for _epur_pkg_name_rdepend in ${_epur_pkg_rdepends}; do
+ if rtl_get_var_unsafe \$_epur_disabled -u "PKG_${_epur_pkg_name_rdepend}_DISABLED"\
+ && [ "${_epur_disabled}" = 1 ];
+ then
+ rtl_lconcat "${_epur_rdisabled}" "${_epur_pkg_name_rdepend}";
+
+ elif [ "${_epur_test_finished}" -eq 1 ]\
+ && ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name_rdepend}" finish\
+ && rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
+ && [ "${_epur_force}" != 1 ];
+ then
+ rtl_lconcat "${_epur_rfinished}" "${_epur_pkg_name_rdepend}";
+
+ elif [ "${_epur_test_finished:-1}" -eq 0 ]\
+ || ! ex_pkg_state_test2 "${_epur_workdir}" "${_epur_pkg_name_rdepend}" finish\
+ || ( rtl_get_var_unsafe \$_epur_force -u "${_epur_group_name}_FORCE"\
+ && [ "${_epur_force}" = 1 ] );
+ then
+ rtl_lconcat \$_epur_pkg_names_new "${_epur_pkg_name_rdepend}";
+ fi;
+ done;
+ fi;
+ done;
+ done;
+
+ eval ${_epur_rdisabled}='$(rtl_uniq2 "${_epur_rdisabled}")';
+ eval ${_epur_rfinished}='$(rtl_uniq2 "${_epur_rfinished}")';
+ eval ${_epur_rnames}='$(rtl_uniq "${_epur_pkg_names_new}")';
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_pkg_dispatch.subr b/subr.ex/ex_pkg_dispatch.subr
new file mode 100644
index 00000000..19818e97
--- /dev/null
+++ b/subr.ex/ex_pkg_dispatch.subr
@@ -0,0 +1,407 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+#
+# exp_pkg_dispatch_complete() - completes all disabled and finished packages
+# @_dispatch_fn: top-level dispatch function name
+# @_group_names: build group name(s)
+# @_pkg_disabled: list of disabled packages
+# @_pkg_finished: list of finished packages
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+exp_pkg_dispatch_complete() {
+ local _epdc_dispatch_fn="${1}" _epdc_group_name="${2}" _epdc_pkg_disabled="${3}" \
+ _epdc_pkg_finished="${4}" \
+ _epdc_pkg_name="";
+
+ for _epdc_pkg_name in ${_epdc_pkg_disabled}; do
+ "${_epdc_dispatch_fn}" disabled_pkg "${_epdc_group_name}" "${_epdc_pkg_name}";
+ done;
+ for _epdc_pkg_name in ${_epdc_pkg_finished}; do
+ "${_epdc_dispatch_fn}" skipped_pkg "${_epdc_group_name}" "${_epdc_pkg_name}";
+ done;
+
+ return 0;
+};
+
+#
+# exp_pkg_dispatch_expand_packages() - expand build group name to list of packages ordered and filtered according to dependency and restart constraints
+# @_rdisabled: out reference to variable of disabled packages
+# @_rfinished: out reference to variable of finished packages
+# @_rnames: out reference to variable of package names
+# @_checkfl: enable (1) or inhibit (0) dependency expansion
+# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
+# @_group_name: build group name
+# @_restart: optional whitespace-separated list of package names to rebuild
+# @_reversefl: unfold reverse dependencies (1) or dependencies (0)
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+exp_pkg_dispatch_expand_packages() {
+ local _epdep_rdisabled="${1#\$}" _epdep_rfinished="${2#\$}" _epdep_rnames="${3#\$}" \
+ _epdep_checkfl="${4}" _epdep_forcefl="${5}" _epdep_group_name="${6}" \
+ _epdep_restart="${7}" _epdep_reversefl="${8}" _epdep_workdir="${9}" \
+ _epdep_pkg_names="";
+
+ eval ${_epdep_rdisabled}=;
+ eval ${_epdep_rfinished}=;
+ eval ${_epdep_rnames}=;
+
+ if rtl_get_var_unsafe \$_epdep_pkg_names -u "${_epdep_group_name}_PACKAGES"\
+ && [ "${_epdep_pkg_names:+1}" = 1 ]; then
+ if [ "${_epdep_reversefl:-0}" -eq 0 ]; then
+ ex_pkg_unfold_depends \
+ "${_epdep_rdisabled}" "${_epdep_rfinished}" \
+ "${_epdep_rnames}" "${_epdep_checkfl}" "${_epdep_forcefl}" \
+ "${_epdep_group_name}" "${_epdep_pkg_names}" \
+ "${_epdep_restart}" 1 "${_epdep_workdir}";
+ else
+ ex_pkg_unfold_rdepends \
+ "${_epdep_rdisabled}" "${_epdep_rfinished}" \
+ "${_epdep_rnames}" "${_epdep_group_name}" \
+ "${_epdep_pkg_names}" "${_epdep_restart}" 1 \
+ "${_epdep_workdir}" "recurse";
+ fi;
+ fi;
+
+ eval ${_epdep_rdisabled}='$(rtl_uniq2 "${_epdep_rdisabled}")';
+ eval ${_epdep_rfinished}='$(rtl_uniq2 "${_epdep_rfinished}")';
+ eval ${_epdep_rnames}='$(rtl_uniq2 "${_epdep_rnames}")';
+
+ return 0;
+};
+
+#
+# exp_pkg_dispatch_group() - dispatch a single build group
+# @_rdispatch_count: in reference to out variable of dispatcher count
+# @_rdispatch_count_cur: in reference to out variable of current dispatcher count
+# @_dispatch_count_max: maximum dispatcher count
+# @_dispatch_group_cur: current group
+# @_dispatch_group_max: maximum group
+# @_rdispatch_njobs: in reference to out variable of dispatcher count
+# @_rdispatch_wait: in reference to out variable of package names in a wait state
+# @_rpkg_disabled: in reference to variable of list of disabled packages
+# @_rpkg_finished: in reference to out variable of list of finished packages
+# @_rpkg_names: in reference to out variable of list of package names
+# @_build_steps_default: list of default build steps
+# @_build_vars_default: list of default build variables
+# @_checkfl: enable (1) or inhibit (0) dependency expansion
+# @_continue_on_failfl: continue on failed package build (1) or break (0)
+# @_dispatch_fn: top-level dispatch function name
+# @_group_name: build group name
+# @_njobs_max: maximum count of simultaneous jobs
+# @_pipe_path: pathname to build FIFO
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+exp_pkg_dispatch_group() {
+ local _epdg_rdispatch_count="${1#\$}" _epdg_rdispatch_count_cur="${2#\$}" _epdg_dispatch_count_max="${3#\$}" \
+ _epdg_dispatch_group_cur="${4#\$}" _epdg_dispatch_group_max="${5#\$}" _epdg_rdispatch_njobs="${6#\$}" \
+ _epdg_rdispatch_wait="${7#\$}" _epdg_rpkg_disabled="${8#\$}" _epdg_rpkg_finished="${9#\$}" \
+ _epdg_rpkg_names="${10#\$}" _epdg_build_steps_default="${11}" _epdg_build_vars_default="${12}" \
+ _epdg_checkfl="${13}" _epdg_continue_on_failfl="${14}" _epdg_dispatch_fn="${15}" \
+ _epdg_group_name="${16}" _epdg_njobs_max="${17}" _epdg_pipe_path="${18}" _epdg_restart_at="${19}" \
+ _epdg_workdir="${20}" \
+ _epdg_perc_group=0 _epdg_perc_pkg=0 _epdg_pipe_msg="" _epdg_pkg_name="" _epdg_rc=0;
+
+ rtl_fileop mkfifo "${_epdg_pipe_path}";
+ while true; do
+ while eval [ \"\${${_epdg_rdispatch_njobs}:-0}\" -gt 0 ]\
+ && read _epdg_pipe_msg;
+ do
+
+ case "${_epdg_pipe_msg%% *}" in
+
+ done) _epdg_pkg_name="${_epdg_pipe_msg#done * }";
+ eval : '$(('${_epdg_rdispatch_count_cur}'+=1))';
+ eval : '$(('${_epdg_rdispatch_njobs}'-=1))';
+
+ rtl_lconcat "${_epdg_rpkg_finished}" "${_epdg_pkg_name}";
+ rtl_percentage2 \$_epdg_dispatch_group_cur \$_epdg_dispatch_group_max \$_epdg_perc_group;
+ rtl_percentage2 "${_epdg_rdispatch_count_cur}" \$_epdg_dispatch_count_max \$_epdg_perc_pkg;
+
+ "${_epdg_dispatch_fn}" \
+ finish_pkg ${_epdg_pipe_msg#done } \
+ "${_epdg_dispatch_count_max}" \
+ "${_epdg_perc_group}" "${_epdg_perc_pkg}";
+
+ rtl_lfilter "${_epdg_rpkg_names}" "${_epdg_pkg_name}";
+ rtl_lfilter "${_epdg_rdispatch_wait}" "${_epdg_pkg_name}";
+
+ if eval [ \"\${${_epdg_rpkg_names}:+1}\" = 1 ]; then
+ if eval [ \"\${${_epdg_rdispatch_njobs}:-0}\" -ne \"\${_epdg_njobs_max}\" ]; then
+ exp_pkg_dispatch_packages \
+ "${_epdg_rdispatch_count}" \
+ "${_epdg_rdispatch_count_cur}" \
+ "${_epdg_dispatch_count_max}" \
+ "${_epdg_dispatch_group_cur}" \
+ "${_epdg_dispatch_group_max}" \
+ "${_epdg_rdispatch_njobs}" \
+ "${_epdg_rdispatch_wait}" \
+ "${_epdg_rpkg_disabled}" \
+ "${_epdg_rpkg_finished}" "${_epdg_rpkg_names}" \
+ "${_epdg_build_steps_default}" \
+ "${_epdg_build_vars_default}" "${_epdg_checkfl}" \
+ "${_epdg_dispatch_fn}" "${_epdg_group_name}" \
+ "${_epdg_njobs_max}" "${_epdg_pipe_path}" \
+ "${_epdg_restart_at}" "${_epdg_workdir}";
+ fi;
+ elif eval [ \"\${${_epdg_rdispatch_njobs}:-0}\" -eq 0 ]; then
+ break;
+ fi;
+ ;;
+
+ fail) _epdg_pkg_name="${_epdg_pipe_msg#fail * }";
+ eval : '$(('${_epdg_rdispatch_njobs}'-=1))';
+ _epdg_rc=1;
+ rtl_lfilter "${_epdg_rpkg_names}" "${_epdg_pkg_name}";
+ "${_epdg_dispatch_fn}" \
+ fail_pkg ${_epdg_pipe_msg#fail } \
+ "${_epdg_dispatch_count_max}";
+
+ if [ "${_epdg_rc}" -ne 0 ]\
+ && [ "${_epdg_continue_on_failfl}" -ne 1 ]; then
+ break;
+ fi;
+ ;;
+
+ msg_pkg)
+ "${_epdg_dispatch_fn}" msg_pkg ${_epdg_pipe_msg#msg_pkg };
+ ;;
+
+ step) "${_epdg_dispatch_fn}" step_pkg ${_epdg_pipe_msg#step };
+ ;;
+
+ esac; done <>"${_epdg_pipe_path}";
+
+ if [ "${_epdg_rc}" -ne 0 ]\
+ && [ "${_epdg_continue_on_failfl}" -ne 1 ]; then
+ break;
+ elif eval [ \"\${${_epdg_rpkg_names}:+1}\" = 1 ]; then
+ if eval [ \"\${${_epdg_rdispatch_njobs}:-0}\" -ne \"\${_epdg_njobs_max}\" ]; then
+ exp_pkg_dispatch_packages \
+ "${_epdg_rdispatch_count}" \
+ "${_epdg_rdispatch_count_cur}" \
+ "${_epdg_dispatch_count_max}" \
+ "${_epdg_dispatch_group_cur}" \
+ "${_epdg_dispatch_group_max}" \
+ "${_epdg_rdispatch_njobs}" \
+ "${_epdg_rdispatch_wait}" \
+ "${_epdg_rpkg_disabled}" \
+ "${_epdg_rpkg_finished}" "${_epdg_rpkg_names}" \
+ "${_epdg_build_steps_default}" \
+ "${_epdg_build_vars_default}" "${_epdg_checkfl}" \
+ "${_epdg_dispatch_fn}" "${_epdg_group_name}" \
+ "${_epdg_njobs_max}" "${_epdg_pipe_path}" \
+ "${_epdg_restart_at}" "${_epdg_workdir}";
+ fi;
+ elif eval [ \"\${${_epdg_rdispatch_njobs}:-0}\" -eq 0 ]; then
+ break;
+ fi;
+ done;
+
+ rtl_fileop rm "${_epdg_pipe_path}";
+
+ return "${_epdg_rc}";
+};
+
+#
+# exp_pkg_dispatch_packages() - dispatch set of packages
+# @_rdispatch_count: in reference to out variable of dispatcher count
+# @_dispatch_count_cur: current dispatcher count
+# @_dispatch_count_max: maximum dispatcher count
+# @_dispatch_group_cur: current group
+# @_dispatch_group_max: maximum group
+# @_rdispatch_njobs: in reference to out variable of dispatcher count
+# @_rdispatch_wait: in reference to out variable of package names in a wait state
+# @_rpkg_disabled: in reference to variable of list of disabled packages
+# @_rpkg_finished: in reference to out variable of list of finished packages
+# @_rpkg_names: in reference to out variable of list of package names
+# @_build_steps_default: list of default build steps
+# @_build_vars_default: list of default build variables
+# @_checkfl: enable (1) or inhibit (0) dependency expansion
+# @_dispatch_fn: top-level dispatch function name
+# @_group_name: build group name
+# @_njobs_max: maximum count of simultaneous jobs
+# @_pipe_path: pathname to parent-child process FIFO
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+exp_pkg_dispatch_packages() {
+ local _epdp2_rdispatch_count="${1#\$}" _epdp2_dispatch_count_cur="${2}" _epdp2_dispatch_count_max="${3}" \
+ _epdp2_dispatch_group_cur="${4}" _epdp2_dispatch_group_max="${5}" _epdp2_rdispatch_njobs="${6#\$}" \
+ _epdp2_rdispatch_wait="${7#\$}" _epdp2_rpkg_disabled="${8#\$}" _epdp2_rpkg_finished="${9#\$}" \
+ _epdp2_rpkg_names="${10#\$}" _epdp2_build_steps_default="${11}" _epdp2_build_vars_default="${12}" \
+ _epdp2_checkfl="${13}" _epdp2_dispatch_fn="${14}" _epdp2_group_name="${15}" _epdp2_njobs_max="${16}" \
+ _epdp2_pipe_path="${17}" _epdp2_restart_at="${18}" _epdp2_workdir="${19}" \
+ _epdp2_foundfl=0 _epdp2_njob=0 _epdp2_pkg_depends="" _epdp2_pkg_name="";
+
+ while eval [ \"\${${_epdp2_rdispatch_njobs}}\" -lt \"\${_epdp2_njobs_max}\" ]; do
+ _epdp2_foundfl=0;
+ eval _epdp2_pkg_names="\${${_epdp2_rpkg_names}}";
+ for _epdp2_pkg_name in ${_epdp2_pkg_names}; do
+ if ! rtl_lmatch "${_epdp2_rdispatch_wait}" "${_epdp2_pkg_name}"\
+ && ex_pkg_check_depends \
+ "${_epdp2_checkfl}" "${_epdp2_rpkg_disabled}" \
+ "${_epdp2_rpkg_finished}" "${_epdp2_pkg_name}" \
+ "${_epdp2_rpkg_names}" "${_epdp2_workdir}";
+ then
+ ex_pkg_exec \
+ "${_epdp2_rdispatch_count}" \
+ "${_epdp2_dispatch_count_cur}" "${_epdp2_dispatch_count_max}" \
+ "${_epdp2_dispatch_group_cur}" "${_epdp2_dispatch_group_max}" \
+ "${_epdp2_rdispatch_njobs}" "${_epdp2_rdispatch_wait}" \
+ "${_epdp2_build_steps_default}" \
+ "${_epdp2_build_vars_default}" "${_epdp2_dispatch_fn}" \
+ "${_epdp2_group_name}" "${_epdp2_pipe_path}" \
+ "${_epdp2_pkg_name}" "${_epdp2_restart_at}" \
+ "${_epdp2_workdir}";
+ _epdp2_foundfl=1; break;
+ fi;
+ done;
+
+ if [ "${_epdp2_foundfl:-0}" -eq 0 ]; then
+ break;
+ fi;
+ done;
+
+ return "${_epdp2_foundfl}";
+};
+
+#
+# ex_pkg_dispatch() - dispatch a set of build group
+# @_rdispatch_wait: out reference to variable of package names in a wait state
+# @_build_steps_default: list of default build steps
+# @_build_vars_default: list of default build variables
+# @_continue_on_failfl: continue on failed package build (1) or break (0)
+# @_dispatch_fn: top-level dispatch function name
+# @_group_names: build group name(s)
+# @_groups_inhibit_deps: inhibit group-group dependency expansion
+# @_njobs_max: maximum count of simultaneous jobs
+# @_pipe_path: pathname to build FIFO
+# @_restart: optional whitespace-separated list of package names to rebuild
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_restart_recursive: optional flag specifiying either no dependency expansion (0,) dependency expansion (1,) dependency expansion and forcibly rebuild (2,) forcibly rebuild reverse dependencies (3.)
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_dispatch() {
+ local _epd_rdispatch_wait="${1#\$}" _epd_build_steps_default="${2}" _epd_build_vars_default="${3}" \
+ _epd_continue_on_failfl="${4}" _epd_dispatch_fn="${5}" _epd_group_names="${6}" \
+ _epd_groups_inhibit_deps="${7}" _epd_njobs_max="${8}" _epd_pipe_path="${9}" _epd_restart="${10}" \
+ _epd_restart_at="${11}" _epd_restart_recursive="${12}" _epd_workdir="${13}" \
+ _epd_checkfl=1 _epd_forcefl=0 _epd_perc_group=0 \
+ _epd_pkg_disabled="" _epd_pkg_finished="" _epd_pkg_names="" _epd_pkg_name="" \
+ _epd_pkg_dispatch_count=0 _epd_pkg_dispatch_count_cur=0 _epd_pkg_dispatch_count_max=0 \
+ _epd_pkg_dispatch_group_cur=1 _epd_pkg_dispatch_group_max=0 \
+ _epd_pkg_dispatch_njobs=0 \
+ _epd_rc=0 _epd_reversefl=0;
+
+ case "${_epd_groups_inhibit_deps:-0}" in
+ 0) rtl_lunfold_dependsV '${_rld_name}_GROUP_DEPENDS' \$_epd_group_names ${_epd_group_names};
+ _epd_group_names="$(rtl_uniq2 \$_epd_group_names)";
+ esac;
+
+ if [ "${_epd_restart:+1}" = 1 ]; then
+ case "${_epd_restart_recursive:-0}" in
+ 0) _epd_checkfl=0; _epd_forcefl=0; _epd_reversefl=0; ;;
+ 1) _epd_checkfl=1; _epd_forcefl=0; _epd_reversefl=0; ;;
+ 2) _epd_checkfl=1; _epd_forcefl=1; _epd_reversefl=0; ;;
+ 3) _epd_checkfl=1; _epd_forcefl=1; _epd_reversefl=1; ;;
+ esac;
+ fi;
+
+ rtl_llength \$_epd_pkg_dispatch_group_max \$_epd_group_names;
+
+ for _epd_group_name in ${_epd_group_names}; do
+ _epd_pkg_disabled="";
+ _epd_pkg_finished="";
+ _epd_pkg_names="";
+ eval ${_epd_rdispatch_wait}=;
+ _epd_pkg_dispatch_count=0;
+ _epd_pkg_dispatch_count_cur=0;
+ _epd_pkg_dispatch_count_max=0;
+ _epd_pkg_dispatch_njobs=0;
+
+ rtl_percentage "${_epd_pkg_dispatch_group_cur}" "${_epd_pkg_dispatch_group_max}" \$_epd_perc_group;
+
+ if "${_epd_dispatch_fn}" \
+ start_group "${_epd_group_name}" \
+ "" "${_epd_pkg_dispatch_group_cur}" \
+ "${_epd_pkg_dispatch_group_max}" \
+ "${_epd_perc_group}";
+ then
+ if rtl_fileop mkdir "${_epd_workdir}"\
+ && rtl_log_msgV "verbose" "${MSG_build_resolving_deps}" "${_epd_group_name}"\
+ && exp_pkg_dispatch_expand_packages \
+ \$_epd_pkg_disabled \$_epd_pkg_finished \
+ \$_epd_pkg_names "${_epd_checkfl}" \
+ "${_epd_forcefl}" "${_epd_group_name}" \
+ "${_epd_restart}" "${_epd_reversefl}" \
+ "${_epd_workdir}" \
+ && exp_pkg_dispatch_complete \
+ "${_epd_dispatch_fn}" "${_epd_group_name}" \
+ "${_epd_pkg_disabled}" "${_epd_pkg_finished}" \
+ && rtl_log_msgV "verbose" "${MSG_build_resolved_deps}" "${_epd_group_name}"\
+ && rtl_llength \$_epd_pkg_dispatch_count_max \$_epd_pkg_names\
+ && [ "${_epd_pkg_dispatch_count_max}" -gt 0 ];
+ then
+ exp_pkg_dispatch_group \
+ \$_epd_pkg_dispatch_count \$_epd_pkg_dispatch_count_cur \
+ "${_epd_pkg_dispatch_count_max}" \
+ "${_epd_pkg_dispatch_group_cur}" "${_epd_pkg_dispatch_group_max}" \
+ \$_epd_pkg_dispatch_njobs "${_epd_rdispatch_wait}" \
+ \$_epd_pkg_disabled \$_epd_pkg_finished \$_epd_pkg_names \
+ "${_epd_build_steps_default}" "${_epd_build_vars_default}" \
+ "${_epd_checkfl}" "${_epd_continue_on_failfl}" "${_epd_dispatch_fn}" \
+ "${_epd_group_name}" "${_epd_njobs_max}" "${_epd_pipe_path}" \
+ "${_epd_restart_at}" "${_epd_workdir}";
+ _epd_rc="${?}";
+ fi;
+
+ : $((_epd_pkg_dispatch_group_cur+=1));
+ rtl_percentage "${_epd_pkg_dispatch_group_cur}" "${_epd_pkg_dispatch_group_max}" \$_epd_perc_group;
+
+ "${_epd_dispatch_fn}" \
+ finish_group "${_epd_group_name}" \
+ "" "${_epd_pkg_dispatch_group_cur}" \
+ "${_epd_pkg_dispatch_group_max}" \
+ "${_epd_perc_group}";
+ if [ "${_epd_rc}" -ne 0 ]; then
+ break;
+ fi;
+ fi;
+ done;
+
+ return "${_epd_rc}";
+};
+
+#
+# ex_pkg_dipatch_send() - send message from dispatcher child process to dispatcher parent process across FIFO
+# @_op: message operation string
+#
+# Returns: zero (0) invariably.
+#
+ex_pkg_dispatch_send() {
+ local _epds_op="${1}";
+ shift 1;
+
+ trap '' PIPE;
+ while ! printf "%s%s\n" "${_epds_op}" "${*:+ "${*}"}" 1>&3 2>/dev/null; do
+ :;
+ done;
+ trap - PIPE;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_pkg_env.subr b/subr.ex/ex_pkg_env.subr
new file mode 100644
index 00000000..7c4d7daf
--- /dev/null
+++ b/subr.ex/ex_pkg_env.subr
@@ -0,0 +1,195 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+# Package variable and environment variable preparation
+# Package build (step) state setting and testing
+#
+
+#
+# exp_pkg_env_defaults() - set package variable defaults for single named package
+# @_build_steps_default: list of default build steps
+# @_pkg_name: single package name
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+exp_pkg_env_defaults() {
+ local _epped_build_steps_default="${1}" _epped_pkg_name="${2}" _epped_workdir="${3}";
+
+ : ${PKG_NAME:="${_epped_pkg_name}"};
+ : ${MIDIPIX_BUILD_PWD:="$(pwd)"};
+ : ${PKG_BASE_DIR:="${_epped_workdir}/${_epped_pkg_name}-${PKG_BUILD_TYPE}-${PKG_TARGET}"};
+
+ if [ "${PKG_BUILD_STEPS_DISABLE:+1}" = 1 ]; then
+ rtl_lfilter2 \$_epped_build_steps_default \$PKG_BUILD_STEPS "${PKG_BUILD_STEPS_DISABLE:-}";
+ else
+ : ${PKG_BUILD_STEPS:="${_epped_build_steps_default}"};
+ fi;
+
+ if [ "${PKG_URL:+1}" = 1 ]; then
+ : ${PKG_FNAME:="${PKG_URL##*/}"};
+ fi;
+
+ if [ "${PKG_SUBDIR:+1}" != 1 ]; then
+ if [ "${PKG_URLS_GIT:+1}" = 1 ]\
+ && [ "${PKG_FNAME:+1}" = 1 ]; then
+ rtl_log_msgV "fatalexit" "${MSG_pkg_fail_missing_vars}";
+ elif [ "${PKG_URLS_GIT:+1}" = 1 ]; then
+ PKG_SUBDIR="${PKG_URLS_GIT%%=*}";
+ else case "${PKG_FNAME:-}" in
+ *.t*) PKG_SUBDIR="${PKG_FNAME%%.t*}"; ;;
+ *) PKG_SUBDIR="${_epped_pkg_name}"; ;;
+ esac; fi;
+ fi;
+
+ if [ "${PKG_BUILD_DIR:+1}" != 1 ]; then
+ case "${PKG_IN_TREE:-0}" in
+ 0) PKG_BUILD_DIR="obj"; ;;
+ 1) PKG_BUILD_DIR="${PKG_SUBDIR}"; ;;
+ esac;
+ fi;
+
+ PKG_BUILD_DIR="${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ PKG_CONFIGURE="${PKG_BASE_DIR}/${PKG_CONFIGURE:-${PKG_SUBDIR}/configure}";
+ PKG_DESTDIR="${PKG_BASE_DIR}/${PKG_DESTDIR:-destdir}";
+ PKG_DESTDIR_HOST="${PKG_BASE_DIR}/${PKG_DESTDIR_HOST:-destdir_host}";
+
+ return 0;
+};
+
+#
+# exp_pkg_env_set() - set package variables for single named package
+# @_build_vars_default: list of default build variables
+# @_group_name: build group name
+# @_pkg_name: single package name
+#
+# Sets package variables from either defaults, defaults specific to build type,
+# build group, package to inherit from if any, or package for a single named
+# package, and exports variables optionally named in ${PKG_ENV_VARS_EXTRA}.
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+exp_pkg_env_set() {
+ local _eppes_build_vars_default="${1}" _eppes_group_name="${2}" _eppes_pkg_name="${3}" \
+ _eppes_lvars="" _eppes_var_prefixes="" _eppes_vars_set="" \
+ _eppes_vars_unset="" _eppes_vname="" _eppes_vnames="" IFS IFS0;
+
+ rtl_set_var _eppes_vars_set BUILD_TYPE "DEFAULT ${_eppes_group_name} PKG_${_eppes_pkg_name}";
+ rtl_set_var _eppes_vars_set INHERIT_FROM "PKG_${_eppes_pkg_name}";
+ _eppes_var_prefixes="DEFAULT DEFAULT_${PKG_BUILD_TYPE} ${_eppes_group_name}";
+ rtl_toupper \$_eppes_var_prefixes;
+ rtl_lfilter2 \$_eppes_build_vars_default \$_eppes_vnames BUILD_TYPE;
+
+ for _eppes_vname in ${_eppes_vnames}; do
+ if [ "${PKG_INHERIT_FROM:+1}" = 1 ]; then
+ _eppes_lvars="PKG_${PKG_INHERIT_FROM} PKG_${PKG_INHERIT_FROM}_${BUILD_KIND} PKG_${_eppes_pkg_name} PKG_${_eppes_pkg_name}_${BUILD_KIND}";
+ rtl_toupper \$_eppes_lvars;
+ rtl_lconcat2 \$_eppes_lvars \$_eppes_var_prefixes "${_eppes_lvars}";
+ rtl_set_var _eppes_vars_set "${_eppes_vname}" "${_eppes_lvars}";
+ else
+ _eppes_lvars="PKG_${_eppes_pkg_name} PKG_${_eppes_pkg_name}_${BUILD_KIND}";
+ rtl_toupper \$_eppes_lvars;
+ rtl_lconcat2 \$_eppes_lvars \$_eppes_var_prefixes "${_eppes_lvars}";
+ rtl_set_var _eppes_vars_set "${_eppes_vname}" "${_eppes_lvars}";
+ fi;
+ done;
+
+ IFS0="${IFS:- }"; IFS=":"; for _eppes_vname in ${PKG_ENV_VARS_EXTRA:-}; do
+ export "${_eppes_vname}";
+ done; IFS="${IFS0}";
+
+ return 0;
+};
+
+#
+# ex_pkg_env() - set package variables for single named package
+# @_build_steps_default: list of default build steps
+# @_build_vars_default: list of default build variables
+# @_group_name: build group name
+# @_pkg_name: single package name
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_pkg_env() {
+ local _epe_build_steps_default="${1}" _epe_build_vars_default="${2}" \
+ _epe_group_name="${3}" _epe_pkg_name="${4}" _epe_restart_at="${5}" \
+ _epe_workdir="${6}" \
+ _epe_file_idx=0 _epe_inherit_from="" _epe_pkg_version="" \
+ _epe_vars_file="" _epe_vars_file_parent="" _epe_vname="";
+
+ if rtl_get_var_unsafe \$_epe_inherit_from -u "PKG_${_epe_pkg_name}_INHERIT_FROM"\
+ && [ "${_epe_inherit_from:+1}" = 1 ]; then
+ rtl_get_var_unsafe \$_epe_vars_file_parent -u "PKG_${_epe_inherit_from}_VARS_FILE";
+ rtl_get_var_unsafe \$_epe_vars_file -u "PKG_${_epe_pkg_name}_VARS_FILE";
+ if [ "${_epe_vars_file:+1}" != 1 ]; then
+ _epe_vars_file="${_epe_vars_file_parent}";
+ fi;
+ else
+ rtl_get_var_unsafe \$_epe_vars_file -u "PKG_${_epe_pkg_name}_VARS_FILE";
+ fi;
+
+ if [ "${_epe_vars_file:+1}" != 1 ]; then
+ rtl_get_var_unsafe \$_epe_pkg_version -u "PKG_${_epe_pkg_name}_VERSION";
+ _epe_file_idx=1;
+ while ex_pkg_get_default \
+ \$_epe_vars_file "${_epe_file_idx}" \
+ "${_epe_pkg_name}" \
+ "${_epe_pkg_version}" \
+ "vars_files" \
+ && [ "${_epe_vars_file:+1}" = 1 ];
+ do
+ : $((_epe_file_idx += 1));
+ rtl_fileop source_opt "${_epe_vars_file}";
+ done;
+ else
+ rtl_fileop source_opt \
+ "${_epe_vars_file}";
+ fi;
+
+ if ! exp_pkg_env_set "${_epe_build_vars_default}" "${_epe_group_name}" "${_epe_pkg_name}"\
+ || ! exp_pkg_env_defaults "${_epe_build_steps_default}" "${_epe_pkg_name}" "${_epe_workdir}"; then
+ return 1;
+ fi;
+
+ return 0;
+};
+
+#
+# ex_pkg_state_set() - update build step status for single named package
+# @_pkg_name: single package name
+# @_build_step: build step set status of
+# @...: optional list of build steps to invalidate status of
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_pkg_state_set() {
+ rtl_state_set "${BUILD_WORKDIR}" "${@}";
+};
+
+
+ex_pkg_state_set2() {
+ local _epss2_workdir="${1}"; shift;
+ rtl_state_set "${_epss2_workdir}" "${@}";
+};
+
+#
+# ex_pkg_state_test() - test build step status of single named package
+# @_pkg_name: single package name
+# @_build_step: build step to test status of
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_pkg_state_test() {
+ rtl_state_test "${BUILD_WORKDIR}" "${@}";
+};
+
+ex_pkg_state_test2() {
+ local _epst2_workdir="${1}"; shift;
+ rtl_state_test "${_epst2_workdir}" "${@}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_pkg_exec.subr b/subr.ex/ex_pkg_exec.subr
new file mode 100644
index 00000000..e2b3ba0d
--- /dev/null
+++ b/subr.ex/ex_pkg_exec.subr
@@ -0,0 +1,223 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+#
+# exp_pkg_exec_pre() - prepare environment for single named package w/ dispatcher
+# @_dispatch_fn: top-level dispatch function name
+# @_group_name: build group name
+# @_pkg_name: single package name
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+exp_pkg_exec_pre() {
+ local _eppep_dispatch_fn="${1}" _eppep_group_name="${2}" _eppep_pkg_name="${3}" \
+ _eppep_restart_at="${4}" _eppep_workdir="${5}";
+
+ if [ "${PKG_URL:+1}" != 1 ]\
+ && [ "${PKG_URLS_GIT:+1}" != 1 ]\
+ && [ "${PKG_VERSION:+1}" != 1 ]\
+ && [ "${PKG_INSTALL_FILES:+1}" != 1 ]\
+ && [ "${PKG_INSTALL_FILES_V2:+1}" != 1 ]\
+ && ! rtl_test_cmd "pkg_${_eppep_pkg_name}_all";
+ then
+ "${_eppep_dispatch_fn}" missing_pkg "${_eppep_group_name}" "${_eppep_pkg_name}";
+ return 1;
+ elif ! ex_pkg_state_test2 \
+ "${_eppep_workdir}" \
+ "${_eppep_pkg_name}" "start" \
+ "${_eppep_restart_at}";
+ then
+ if [ "${PKG_NO_CLEAN_BASE_DIR:-0}" -eq 0 ]\
+ && ! rtl_fileop rm "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
+ || ! rtl_fileop mkdir "${PKG_BASE_DIR}";
+ then
+ return 1;
+ fi;
+
+ if ! rtl_fileop mkdir "${PKG_BUILD_DIR}" "${PKG_DESTDIR}"\
+ || ! ex_pkg_state_set2 "${_eppep_workdir}" "${_eppep_pkg_name}" "start";
+ then
+ return 1;
+ fi;
+ elif ! rtl_exists_any "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
+ && ! rtl_fileop mkdir "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}";
+ then
+ return 1
+ fi;
+
+ rtl_fileop cd "${PKG_BUILD_DIR}";
+ return "${?}";
+};
+
+#
+# exp_pkg_exec_step() - execute single build steps & update state for single named package w/ dispatcher
+# @_group_name: build group name
+# @_pkg_name: single package name
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_step: build step to execute
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+exp_pkg_exec_step() {
+ local _eppes_group_name="${1}" _eppes_pkg_name="${2}" _eppes_restart_at="${3}" \
+ _eppes_step="${4}" \
+ _eppes_fn_name="" _eppes_pkg_step_fn="" _eppes_rc=0;
+
+ if rtl_test_cmd "pkg_${_eppes_pkg_name}_${_eppes_step}"; then
+ _eppes_pkg_step_fn="pkg_${_eppes_pkg_name}_${_eppes_step}";
+ else
+ _eppes_pkg_step_fn="pkg_${_eppes_step}";
+ fi;
+
+ for _eppes_fn_name in \
+ "pkg_${_eppes_pkg_name}_${_eppes_step}_pre" \
+ "${_eppes_pkg_step_fn}" \
+ "pkg_${_eppes_pkg_name}_${_eppes_step}_post";
+ do
+ if rtl_test_cmd "${_eppes_fn_name}"\
+ && ! "${_eppes_fn_name}" \
+ "${_eppes_group_name}" "${_eppes_pkg_name}" \
+ "${_eppes_restart_at}";
+ then
+ _eppes_rc=1; break;
+ fi;
+ done;
+
+ return "${_eppes_rc}";
+};
+
+#
+# exp_pkg_exec() - execute all pertaining build steps & update state for single named package w/ dispatcher
+# @_dispatch_fn: top-level dispatch function name
+# @_group_name: build group name
+# @_pkg_name: single package name
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+exp_pkg_exec() {
+ local _eppe_dispatch_fn="${1}" _eppe_group_name="${2}" _eppe_pkg_name="${3}" \
+ _eppe_restart_at="${4}" _eppe_workdir="${5}" \
+ _eppe_build_step_last="" _eppe_rc=0 _eppe_step="";
+
+ if ! exp_pkg_exec_pre \
+ "${_eppe_dispatch_fn}" \
+ "${_eppe_group_name}" "${_eppe_pkg_name}" \
+ "${_eppe_restart_at}" "${_eppe_workdir}" \
+ || ! "${_eppe_dispatch_fn}" \
+ start_pkg_child "${_eppe_group_name}" \
+ "${_eppe_pkg_name}";
+ then
+ _eppe_rc=1;
+ elif rtl_test_cmd "pkg_${_eppe_pkg_name}_all"; then
+ "pkg_${_eppe_pkg_name}_all" \
+ "${_eppe_group_name}" "${_eppe_pkg_name}" \
+ "${_eppe_restart_at}";
+ _eppe_rc="${?}";
+ else
+ set -- ${PKG_BUILD_STEPS};
+ while [ ${#} -gt 0 ]; do
+ _eppe_step="${1}"; shift;
+
+ if [ "${#_eppe_restart_at}" -gt 0 ]\
+ && [ "${_eppe_restart_at}" != "ALL" ]\
+ && [ "${_eppe_restart_at}" != "LAST" ]\
+ && ! rtl_lmatch \$_eppe_restart_at "${_eppe_step}" ","; then
+ continue;
+ fi;
+
+ if [ "${_eppe_step}" = "finish" ]; then
+ ex_pkg_state_set2 "${_eppe_workdir}" "${_eppe_pkg_name}" finish; break;
+ elif [ "${PKG_FORCE:-0}" -eq 0 ]\
+ && ex_pkg_state_test2 "${_eppe_workdir}" "${_eppe_pkg_name}" "${_eppe_step}" "${_eppe_restart_at}";
+ then
+ continue;
+ elif ! exp_pkg_exec_step \
+ "${_eppe_group_name}" "${_eppe_pkg_name}" \
+ "${_eppe_restart_at}" "${_eppe_step}";
+ then
+ _eppe_rc=1; break;
+ else ex_pkg_dispatch_send "step" "${_eppe_group_name}" "${_eppe_pkg_name}" "${_eppe_step}";
+ ex_pkg_state_set2 "${_eppe_workdir}" "${_eppe_pkg_name}" "${_eppe_step}" "${@}";
+ fi;
+ done;
+ fi;
+
+ return "${_eppe_rc}";
+};
+
+#
+# ex_pkg_exec() - prepare environment for, execute all pertaining build steps & update state for single named package w/ dispatcher
+# @_rdispatch_count: reference to inout variable of dispatcher count
+# @_dispatch_count_cur: current dispatcher count
+# @_dispatch_count_max: maximum dispatcher count
+# @_dispatch_group_cur: current group
+# @_dispatch_group_max: maximum group
+# @_rdispatch_njobs: reference to inout variable of dispatcher count
+# @_rdispatch_wait: reference to inout variable of package names in a wait state
+# @_build_steps_default: list of default build steps
+# @_build_vars_default: list of default build variables
+# @_dispatch_fn: top-level dispatch function name
+# @_group_name: build group name
+# @_pipe_path: pathname to parent-child process FIFO
+# @_pkg_name: single package name
+# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
+# @_workdir: pathname to build-specific temporary directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure.
+#
+ex_pkg_exec() {
+ local _epdp_rdispatch_count="${1#\$}" _epdp_dispatch_count_cur="${2}" _epdp_dispatch_count_max="${3}" \
+ _epdp_dispatch_group_cur="${4}" _epdp_dispatch_group_max="${5}" _epdp_rdispatch_njobs="${6#\$}" \
+ _epdp_rdispatch_wait="${7#\$}" _epdp_build_steps_default="${8}" _epdp_build_vars_default="${9}" \
+ _epdp_dispatch_fn="${10}" _epdp_group_name="${11}" _epdp_pipe_path="${12}" _epdp_pkg_name="${13}" \
+ _epdp_restart_at="${14}" _epdp_workdir="${15}" \
+ _epdp_dispatch_count_new=0 _epdp_perc_group=0 _epdp_perc_pkg=0;
+
+ rtl_percentage2 \$_epdp_dispatch_group_cur \$_epdp_dispatch_group_max \$_epdp_perc_group;
+ rtl_percentage2 \$_epdp_dispatch_count_cur \$_epdp_dispatch_count_max \$_epdp_perc_pkg;
+
+ eval _epdp_dispatch_count_new='$((${'"${_epdp_rdispatch_count}"'}+1))';
+ if "${_epdp_dispatch_fn}" \
+ start_pkg "${_epdp_group_name}" \
+ "${_epdp_pkg_name}" \
+ "${_epdp_dispatch_count_new}" \
+ "${_epdp_dispatch_count_max}" \
+ "${_epdp_perc_group}" "${_epdp_perc_pkg}";
+ then
+ eval : '$(('${_epdp_rdispatch_njobs}'+=1))';
+ eval ${_epdp_rdispatch_count}=\"\${_epdp_dispatch_count_new}\";
+ rtl_lconcat "${_epdp_rdispatch_wait}" "${_epdp_pkg_name}";
+
+ (trap "if [ \${?} -eq 0 ]; then \
+ ex_pkg_dispatch_send \"done\" \"${_epdp_group_name}\" \"${_epdp_pkg_name}\" \"${_epdp_dispatch_count_new}\"; \
+ else \
+ ex_pkg_dispatch_send \"fail\" \"${_epdp_group_name}\" \"${_epdp_pkg_name}\" \"${_epdp_dispatch_count_new}\"; \
+ pkill -U "${$}"; \
+ fi;" EXIT HUP INT TERM USR1 USR2;
+ set +o errexit -o noglob -o nounset; BUILD_IS_PARENT=0; rtl_log_set_fname ""; rtl_log_set_no_attr 1;
+
+ if ex_pkg_env \
+ "${_epdp_build_steps_default}" "${_epdp_build_vars_default}" \
+ "${_epdp_group_name}" "${_epdp_pkg_name}" \
+ "${_epdp_restart_at}" "${_epdp_workdir}";
+ then
+ exp_pkg_exec \
+ "${_epdp_dispatch_fn}" "${_epdp_group_name}" \
+ "${_epdp_pkg_name}" "${_epdp_restart_at}" \
+ "${_epdp_workdir}";
+ else
+ return 1;
+ fi;) 1>"${_epdp_workdir}/${_epdp_pkg_name}_stderrout.log" 2>&1 3>"${_epdp_pipe_path}" &
+ return "${?}";
+ else
+ return 1;
+ fi;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_restart.subr b/subr.ex/ex_pkg_restart.subr
index 9e51df8b..4548f1bb 100644
--- a/subr/ex_pkg_restart.subr
+++ b/subr.ex/ex_pkg_restart.subr
@@ -1,37 +1,42 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
#
-# exp_pkg_check_restart_at() - XXX
+# exp_pkg_check_restart_at() - check restart (-r) specification for unknown build steps
+# @_rstatus: out reference to status string
# @_rspec_at: in reference to restart build step list
#
-# Calling convention: in ref. @_rspec_at
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_check_restart_at() {
- local _epcra_rspec_at="${1#\$}" _epcra_len="" _epcra_rc=0 _epcra_spec_at=""; _status=""
+ local _epcra_rstatus="${1#\$}" _epcra_rspec_at="${2#\$}" \
+ _epcra_len=0 _epcra_rc=0 _epcra_spec_at="";
if ! rtl_llift2 "${_epcra_rspec_at}" \$_epcra_spec_at "," " "\
- || ! rtl_lfilter3 \$_epcra_spec_at "${DEFAULT_BUILD_STEPS} ALL LAST"\
- || ! rtl_llength2 \$_epcra_spec_at \$_epcra_len; then
+ || ! rtl_lfilter \$_epcra_spec_at "${DEFAULT_BUILD_STEPS} ALL LAST"\
+ || ! rtl_llength \$_epcra_spec_at \$_epcra_len; then
_epcra_rc=1;
elif [ "${_epcra_len}" -gt 0 ]; then
- _status="unknown build step(s) \`${_epcra_spec_at}'"; _epcra_rc=1;
- fi; return "${_epcra_rc}";
+ _epcra_rc=1;
+ rtl_setrstatus "${_epcra_rstatus}" 'unknown build step(s) \`'"${_epcra_spec_at}"''\''';
+ fi;
+
+ return "${_epcra_rc}";
};
#
-# exp_pkg_expand_restart_at_spec() - XXX
+# exp_pkg_expand_restart_at_spec() - expand list of virtual build steps and list of build steps into list of build steps w/ operator subspecifications and virtual build steps expanded
+# @_rstatus: out reference to status string
# @_rset: in reference to restart virtual build step set
# @_rspec_at: inout reference to restart build step list
#
-# Calling convention: in ref. @_rset, inout ref. @_rspec_at
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_expand_restart_at_spec() {
- local _eperas_rset="${1#\$}" _eperas_rspec_at="${2#\$}" _eperas_at="" \
- _eperas_rc=0 _eperas_spec_at="" _eperas_spec_at_=""; _status="";
+ local _eperas_rstatus="${1#\$}" _eperas_rset="${2#\$}" _eperas_rspec_at="${3#\$}" \
+ _eperas_at="" _eperas_rc=0 _eperas_spec_at="" _eperas_spec_at_="";
eval _eperas_spec_at='${'"${_eperas_rspec_at}"'}';
case "${_eperas_spec_at}" in
@@ -40,52 +45,59 @@ exp_pkg_expand_restart_at_spec() {
^*)
_eperas_spec_at="${_eperas_spec_at#^}";
- if exp_pkg_expand_restart_at_virtual \
- "${_eperas_spec_at}" \$_eperas_spec_at \
- "${_eperas_rset}" \
- && exp_pkg_check_restart_at \$_eperas_spec_at; then
+ if exp_pkg_expand_restart_at_virtual \
+ "${_eperas_rstatus}" \
+ "${_eperas_spec_at}" \$_eperas_spec_at \
+ "${_eperas_rset}" \
+ && exp_pkg_check_restart_at "${_eperas_rstatus}" \$_eperas_spec_at;
+ then
rtl_llift2 \$DEFAULT_BUILD_STEPS "${_eperas_rspec_at}" " " ",";
rtl_llift2 \$_eperas_spec_at \$_eperas_spec_at_ "," " ";
for _eperas_at in ${_eperas_spec_at_}; do
- rtl_lfilter3 "${_eperas_rspec_at}" "${_eperas_at}" ",";
- done; rtl_lfilter3 "${_eperas_rspec_at}" "finish" ",";
+ rtl_lfilter "${_eperas_rspec_at}" "${_eperas_at}" ",";
+ done; rtl_lfilter "${_eperas_rspec_at}" "finish" ",";
else
_eperas_rc=1;
fi; ;;
\<=*|\<*|\>=*|\>*)
- exp_pkg_expand_restart_at_spec_cmp \
- "${_eperas_rset}" "${_eperas_rspec_at}"; _eperas_rc="${?}"; ;;
+ exp_pkg_expand_restart_at_spec_cmp \
+ "${_eperas_rstatus}" \
+ "${_eperas_rset}" "${_eperas_rspec_at}";
+ _eperas_rc="${?}"; ;;
*)
- if ! exp_pkg_expand_restart_at_virtual \
- "${_eperas_spec_at}" "${_eperas_rspec_at}" \
+ if ! exp_pkg_expand_restart_at_virtual \
+ "${_eperas_rstatus}" \
+ "${_eperas_spec_at}" "${_eperas_rspec_at}" \
"${_eperas_rset}"; then
_eperas_rc=1;
fi; ;;
esac;
if [ "${_eperas_rc}" -eq 0 ]; then
- if ! exp_pkg_check_restart_at "${_eperas_rspec_at}"; then
+ if ! exp_pkg_check_restart_at "${_eperas_rstatus}" "${_eperas_rspec_at}"; then
_epprs_rc=1;
elif eval [ '"${'"${_eperas_rspec_at}"':+1}"' != 1 ]; then
- _status="zero-length build step list"; _epprs_rc=1;
+ _epprs_rc=1;
+ rtl_setrstatus "${_eperas_rstatus}" 'zero-length build step list';
fi;
fi;
+
return "${_eperas_rc}";
};
#
-# exp_pkg_expand_restart_at_spec_cmp() - XXX
+# exp_pkg_expand_restart_at_spec_cmp() - expand list of virtual build steps and list of build steps into list of build steps w/ operator subspecifications expanded
+# @_rstatus: out reference to status string
# @_rset: in reference to restart virtual build step set
# @_rspec_at: inout reference to restart build step list
#
-# Calling convention: in ref. @_rset, inout ref. @_rspec_at
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_expand_restart_at_spec_cmp() {
- local _eperasc_rset="${1#\$}" _eperasc_rspec_at="${2#\$}" _eperasc_at="" \
- _eperasc_eqfl="" _eperasc_foundfl="" _eperasc_ltfl="" _eperasc_rc=0 \
+ local _eperasc_rstatus="${1#\$}" _eperasc_rset="${2#\$}" _eperasc_rspec_at="${3#\$}" \
+ _eperasc_at="" _eperasc_eqfl="" _eperasc_foundfl="" _eperasc_ltfl="" _eperasc_rc=0 \
_eperasc_spec_at="" _eperasc_spec_at0="";
eval _eperasc_spec_at0='${'"${_eperasc_rspec_at}"'}';
@@ -96,10 +108,11 @@ exp_pkg_expand_restart_at_spec_cmp() {
_eperasc_spec_at0="${_eperasc_spec_at0#[<>]}"; _eperasc_eqfl=0;
fi; _eperasc_spec_at="";
- if exp_pkg_expand_restart_at_virtual \
- "${_eperasc_spec_at0%%,*}" \$_eperasc_spec_at0 \
- "${_eperasc_rset}" \
- && exp_pkg_check_restart_at \$_eperasc_spec_at0; then
+ if exp_pkg_expand_restart_at_virtual \
+ "${_eperasc_rstatus}" \
+ "${_eperasc_spec_at0%%,*}" \$_eperasc_spec_at0 \
+ "${_eperasc_rset}" \
+ && exp_pkg_check_restart_at "${_eperasc_rstatus}" \$_eperasc_spec_at0; then
if [ \( "${_eperasc_eqfl}" -eq 1 \) -a \( "${_eperasc_ltfl}" -eq 1 \) ]\
|| [ \( "${_eperasc_eqfl}" -eq 0 \) -a \( "${_eperasc_ltfl}" -eq 0 \) ]; then
_eperasc_spec_at0="${_eperasc_spec_at0##*,}";
@@ -131,18 +144,19 @@ exp_pkg_expand_restart_at_spec_cmp() {
};
#
-# exp_pkg_expand_restart_at_virtual() - XXX
+# exp_pkg_expand_restart_at_virtual() - expand list of build steps into list of build steps w/ expansion of virtual build steps
+# @_rstatus: out reference to status string
# @_spec_at: restart build step list
# @_rspec_at_new: out reference to new restart build step list
-# @_rset: inout reference to restart virtual build step set
+# @_rset: in reference to restart virtual build step set
#
-# Calling convention: inout ref. @_rspec_recursive
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_expand_restart_at_virtual() {
- local _epera_spec_at="${1}" _epera_rspec_at_new="${2#\$}" _epera_rset="${3#\$}" \
+ local _epera_rstatus="${1#\$}" _epera_spec_at="${2}" _epera_rspec_at_new="${3#\$}" \
+ _epera_rset="${4#\$}" \
_epera_at="" _epera_IFS0="${IFS:- }" _epera_rc=0 _epera_spec_at_new="" \
- IFS; _status="";
+ IFS;
eval ${_epera_rspec_at_new}=;
IFS=","; set -- ${_epera_spec_at}; IFS="${_epera_IFS0}";
@@ -151,52 +165,57 @@ exp_pkg_expand_restart_at_virtual() {
if [ "${_epera_at#@}" != "${_epera_at}" ]; then
_epera_at="${_epera_at#@}";
if [ "${_epera_at%[!0-9a-zA-Z_]*}" != "${_epera_at}" ]; then
- _status="invalid virtual build step \`${_epera_at}'"; _epera_rc=1;
+ _epera_rc=1;
+ rtl_setrstatus "${_epera_rstatus}" 'invalid virtual build step \`'"${_epera_at}"''\''';
elif eval [ '"${'"${_epera_rset}${_epera_at}"':+1}"' = 1 ]; then
eval _epera_at='${'"${_epera_rset}${_epera_at}"'}';
else
- _status="unknown virtual build step \`${_epera_at}'"; _epera_rc=1;
+ _epera_rc=1;
+ rtl_setrstatus "${_epera_rstatus}" 'unknown virtual build step \`'"${_epera_at}"''\''';
fi;
fi;
eval ${_epera_rspec_at_new}='${'"${_epera_rspec_at_new}"':+${'"${_epera_rspec_at_new}"'},}${_epera_at}';
done;
+
return "${_epera_rc}";
};
#
-# exp_pkg_expand_restart_recursive() - XXX
+# exp_pkg_expand_restart_recursive() - expand restart (-r) specification into recursion flag
# @_rspec: inout reference to restart {specification,package name list}
# @_rrecursive: out reference to recursion flag
#
-# Calling convention: inout ref. @_rspec, out ref. @_rrecursive
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_expand_restart_recursive() {
- local _eperr_rspec="${1#\$}" _eperr_rrecursive="${2#\$}" _eperr_spec=""; _status=""
+ local _eperr_rspec="${1#\$}" _eperr_rrecursive="${2#\$}" _eperr_spec="";
eval _eperr_spec='${'"${_eperr_rspec}"'}';
case "${_eperr_spec}" in
+
\*\*\*[a-zA-Z]*)
eval ${_eperr_rspec}='${_eperr_spec#\*\*\*}' ${_eperr_rrecursive}=3; ;;
\*\*[a-zA-Z]*) eval ${_eperr_rspec}='${_eperr_spec#\*\*}' ${_eperr_rrecursive}=2; ;;
\*[a-zA-Z]*) eval ${_eperr_rspec}='${_eperr_spec#\*}' ${_eperr_rrecursive}=1; ;;
ALL) eval ${_eperr_rrecursive}=2; ;;
LAST) eval ${_eperr_rrecursive}=0; ;;
+
esac;
+
return 0;
};
#
-# exp_pkg_expand_restart_spec() - XXX
+# exp_pkg_expand_restart_spec() - expand restart (-r) specification into list of build steps
+# @_rstatus: out reference to status string
# @_rspec: inout reference to restart {specification,package name list}
# @_rspec_at: out reference to restart build step list
#
-# Calling convention: inout ref. @_rspec, out ref. @_rspec_at, out ref. @_rrecursive
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_expand_restart_spec() {
- local _epers_rspec="${1#\$}" _epers_rspec_at="${2#\$}" _epers_last_pkg="" \
- _epers_rc=0 _epers_spec="" _epers_spec_at="" _epers_spec_at0="";
+ local _epers_rstatus="${1#\$}" _epers_rspec="${2#\$}" _epers_rspec_at="${3#\$}" \
+ _epers_last_pkg="" _epers_rc=0 _epers_spec="" _epers_spec_at="" _epers_spec_at0="";
eval _epers_spec='${'"${_epers_rspec}"'}';
case "${_epers_spec}" in
@@ -213,23 +232,25 @@ exp_pkg_expand_restart_spec() {
&& rtl_fileop rm "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}"; then
eval ${_epers_rspec}='${_epers_last_pkg}';
else
- _status="failed to read or clear status of last failed package \`${_epers_last_pkg}'"; _epers_rc=1;
+ _epers_rc=1;
+ rtl_setrstatus "${_epers_rstatus}" 'failed to read or clear status of last failed package \`'"${_epers_last_pkg}"''\''';
fi;
else
- _status="cannot rebuild last failed package"; _epers_rc=1;
+ _epers_rc=1;
+ rtl_setrstatus "${_epers_rstatus}" 'cannot rebuild last failed package';
fi; ;;
*:*) eval ${_epers_rspec}='${_epers_spec%:*}' ${_epers_rspec_at}='${_epers_spec#*:}'; ;;
*) eval ${_epers_rspec_at}= ${_epers_rspec_at}=ALL; ;;
esac;
+
return "${_epers_rc}";
};
#
-# exp_pkg_init_restart_at_virtual() - XXX
+# exp_pkg_init_restart_at_virtual() - produce list of virtual build step set in default build steps
# @_rset: out reference to restart virtual build step set
#
-# Calling convention: out ref. @_rset
# Returns: zero (0) on success, non-zero (>0) on failure
#
exp_pkg_init_restart_at_virtual() {
@@ -242,35 +263,42 @@ exp_pkg_init_restart_at_virtual() {
eval ${_eperav_rset}='"${'"${_eperav_rset}"':+${'"${_eperav_rset}"'},}${_eperav_step_virtual}"';
fi;
eval ${_eperav_rset}${_eperav_step_virtual}='"${'"${_eperav_rset}${_eperav_step_virtual}"':+${'"${_eperav_rset}${_eperav_step_virtual}"'},}${_eperav_step}"';
- done; return 0;
+ done;
+
+ return 0;
};
#
-# ex_pkg_process_restart_spec() - XXX
+# ex_pkg_process_restart_spec() - process restart (-r) specification into list of build steps and recursion flag
+# @_rstatus: out reference to status string
# @_rspec: inout reference to restart {specification,package name list}
# @_rspec_at: out reference to restart build step list
# @_rrecursive: out reference to restart recursion flag
#
-# Calling convention: inout ref. @_rspec, out ref. @_rspec_at
# Returns: zero (0) on success, non-zero (>0) on failure
#
ex_pkg_process_restart_spec() {
- local _epprs_rspec="${1#\$}" _epprs_rspec_at="${2#\$}" _epprs_rrecursive="${3#\$}" \
+ local _epprs_rstatus="${1#\$}" _epprs_rspec="${2#\$}" _epprs_rspec_at="${3#\$}" \
+ _epprs_rrecursive="${4#\$}" \
_epprs_at="" _epprs_rc=0 _epprs_spec_at_new="" _epprs_step="" _epprs_step1="" \
- _epprs_virtual_set=""; _status="";
+ _epprs_virtual_set="";
if eval [ '"${'"${_epprs_rspec}"':+1}"' = 1 ]; then
- if exp_pkg_init_restart_at_virtual \$_epprs_virtual_set \
- && exp_pkg_expand_restart_spec "${_epprs_rspec}" \$_epprs_spec_at_new \
- && exp_pkg_expand_restart_recursive "${_epprs_rspec}" "${_epprs_rrecursive}" \
- && exp_pkg_expand_restart_at_spec \$_epprs_virtual_set \$_epprs_spec_at_new; then
+ if exp_pkg_init_restart_at_virtual \$_epprs_virtual_set \
+ && exp_pkg_expand_restart_spec "${_epprs_rstatus}" "${_epprs_rspec}" \$_epprs_spec_at_new \
+ && exp_pkg_expand_restart_recursive "${_epprs_rspec}" "${_epprs_rrecursive}" \
+ && exp_pkg_expand_restart_at_spec "${_epprs_rstatus}" \$_epprs_virtual_set \$_epprs_spec_at_new;
+ then
+
eval ${_epprs_rspec_at}=;
case "${_epprs_spec_at_new}" in
+
ALL|LAST)
eval ${_epprs_rspec_at}='${_epprs_spec_at_new}'; ;;
+
*)
for _epprs_at in ${DEFAULT_BUILD_STEPS}; do
- if rtl_lmatch "${_epprs_at}" "${_epprs_spec_at_new}" ","; then
+ if rtl_lmatch \$_epprs_at "${_epprs_spec_at_new}" ","; then
eval ${_epprs_rspec_at}='${'"${_epprs_rspec_at}"':+${'"${_epprs_rspec_at}"'},}${_epprs_at}';
fi;
done;
@@ -281,13 +309,16 @@ ex_pkg_process_restart_spec() {
eval ${_epprs_rspec_at}='${'"${_epprs_rspec_at}"':+${'"${_epprs_rspec_at}"'},}finish';
fi;
fi; ;;
- esac; rtl_llift3 "${_epprs_rspec}" "," " " || _epprs_rc=1;
+
+ esac;
+ rtl_llift "${_epprs_rspec}" "," " " || _epprs_rc=1;
else
_epprs_rc=1;
fi;
rtl_sunset \$_epprs_virtual_set;
fi;
+
return "${_epprs_rc}";
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_rtl.subr b/subr.ex/ex_rtl.subr
new file mode 100644
index 00000000..a6177fa7
--- /dev/null
+++ b/subr.ex/ex_rtl.subr
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+#
+
+#
+# ex_rtl_fixup_pkgconfig_paths() - fixup pathname prefixes in pkg-config(1) files
+# @_dname_base: base directory pathname
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_fixup_pkgconfig_paths() {
+ local _erfpp_dname_base="${1}" \
+ _erfpp_pc_path="";
+
+ for _erfpp_pc_path in $(find "${_erfpp_dname_base=}" -name \*.pc); do
+ if [ -n "$(sed -ne '/^libdir=[^$]*$/p' "${_erfpp_pc_path}")" ] \
+ && ! sed -i"" -e '/^libdir=[^$]*$/s/^libdir=\(.*\)$/libdir=${exec_prefix}\1/' \
+ -e '/^exec_prefix=$/s/^.*$/exec_prefix=${prefix}/' \
+ "${_erfpp_pc_path}";
+ then
+ return 1;
+ fi;
+
+ if [ -n "$(sed -ne '/^includedir=[^$]*$/p' "${_erfpp_pc_path}")" ] \
+ && ! sed -i"" -e '/^includedir=[^$]*$/s/^includedir=\(.*\)$/includedir=${prefix}\1/' \
+ "${_erfpp_pc_path}";
+ then
+ return 1;
+ fi;
+ done;
+
+ return 0;
+};
+
+#
+# ex_rtl_purge_la_files() - purge .la files in tree
+# @_dname_base: base directory pathname
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_purge_la_files() {
+ local _erplf_dname_base="${1}" \
+ _erplf_la_path="";
+
+ for _erplf_la_path in $(find \
+ "${_erplf_dname_base}" \
+ -type f \
+ -name \*.la);
+ do
+ if ! rtl_fileop rm "${_erplf_la_path}"; then
+ return 1;
+ fi;
+ done;
+ return 0;
+};
+
+#
+# ex_rtl_strip_files() - strip files of debugging information
+# @_strip_cmd: strip(1) command name
+# @_tree_root: pathname to tree root
+# @--: (ignored)
+# @_log_fn: logging function name; called with @... and pathname of each file stripped
+# @...: @_fn initial arguments list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_strip_files() {
+ local _ersf_strip_cmd="${1}" _ersf_tree_root="${2}" \
+ _ersf_ignored="${3}" _ersf_log_fn="${4}" \
+ _ersf_bin_path="";
+ shift 4;
+
+ if [ -e "${_ersf_tree_root}" ]; then
+ for _ersf_bin_path in $(find \
+ "${_ersf_tree_root}" \
+ -perm /a=x \
+ -type f);
+ do
+ if objdump \
+ -sj .debug_frame \
+ -j .debug_info \
+ "${_ersf_bin_path}" \
+ >/dev/null 2>&1;
+ then
+ if ! "${_ersf_strip_cmd}" "${_ersf_bin_path}"; then
+ return 1;
+ else
+ "${_ersf_log_fn}" "${@}" "${_ersf_bin_path}";
+ fi;
+ fi;
+ done;
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_rtl_configure.subr b/subr.ex/ex_rtl_configure.subr
new file mode 100644
index 00000000..bd448213
--- /dev/null
+++ b/subr.ex/ex_rtl_configure.subr
@@ -0,0 +1,437 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+# Package {configure,make} command execution
+#
+
+#
+# ex_rtl_configure() - run configure script
+# @_ar: ar(1) command name or pathname
+# @_cc: C compiler command name or pathname
+# @_configure: configure script command name or pathname
+# @_cxx: C++ compiler command name or pathname
+# @_ld: ld(1) command name or pathname
+# @_libtool: libtool(1) command name or pathname or "none"
+# @_pkg_config: pkg-config(1) command name or pathname
+# @_python: python command name or pathname
+# @_ranlib: ranlib(1) command name or pathname
+# @--: (ignored)
+# @_flags: configure script flags as a whitespace-separated list
+# @_flags_extra: extra configure script flags as a whitespace-separated likst
+# @_flags_list: configure script flags as a :-separated list
+# @_flags_extra_list: extra configure script flags as a :-separated list
+# @--: (ignored)
+# @_cflags: $CFLAGS
+# @_cflags_extra: extra $CFLAGS
+# @_cppflags: $CPPFLAGS
+# @_cppflags_extra: extra $CPPFLAGS
+# @_cxxflags: $CXXFLAGS
+# @_cxxflags_extra: extra $CXXFLAGS
+# @_ldflags: $LDFLAGS
+# @_ldflags_extra: extra $LDFLAGS
+# @_pkg_config_libdir: pkg-config(1) search directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_configure() {
+ local _erc_ar="${1}" _erc_cc="${2}" _erc_configure="${3}" _erc_cxx="${4}" _erc_ld="${5}" \
+ _erc_libtool="${6}" _erc_pkg_config="${7}" _erc_python="${8}" _erc_ranlib="${9}" \
+ _erc_ignored="${10}" \
+ _erc_flags="${11}" _erc_flags_extra="${12}" \
+ _erc_flags_list="${13}" _erc_flags_extra_list="${14}" \
+ _erc_ignored="${15}" \
+ _erc_cflags="${16}" _erc_cflags_extra="${17}" _erc_cppflags="${18}" \
+ _erc_cppflags_extra="${19}" _erc_cxxflags="${20}" _erc_cxxflags_extra="${21}" \
+ _erc_ldflags="${22}" _erc_ldflags_extra="${23}" _erc_pkg_config_libdir="${24}" \
+ _erc_rc=0;
+
+ case "${_erc_libtool:-}" in
+ none) _erc_libtool=""; ;;
+ esac;
+
+ [ "${_erc_cflags_extra:+1}" = 1 ] && _erc_cflags="${_erc_cflags:+${_erc_cflags} }${_erc_cflags_extra}";
+ [ "${_erc_cppflags_extra:+1}" = 1 ] && _erc_cppflags="${_erc_cppflags:+${_erc_cppflags} }${_erc_cppflags_extra}";
+ [ "${_erc_cxxflags_extra:+1}" = 1 ] && _erc_cxxflags="${_erc_cxxflags:+${_erc_cxxflags} }${_erc_cxxflags_extra}";
+ [ "${_erc_ldflags_extra:+1}" = 1 ] && _erc_ldflags="${_erc_ldflags:+${_erc_ldflags} }${_erc_ldflags_extra}";
+
+(
+ if [ "${_erc_libtool:+1}" = 1 ]; then
+ export MAKE="make LIBTOOL=${_erc_libtool}";
+ fi;
+
+ [ "${_erc_ar:+1}" = 1 ] && export AR="${_erc_ar}";
+ [ "${_erc_cc:+1}" = 1 ] && export CC="${_erc_cc}";
+ [ "${_erc_cxx:+1}" = 1 ] && export CXX="${_erc_cxx}";
+ [ "${_erc_ld:+1}" = 1 ] && export LD="${_erc_ld}";
+ [ "${_erc_libtool:+1}" = 1 ] && export LIBTOOL="${_erc_libtool}";
+ [ "${_erc_pkg_config:+1}" = 1 ] && export PKG_CONFIG="${_erc_pkg_config}";
+ [ "${_erc_python:+1}" = 1 ] && export PYTHON="${_erc_python}";
+ [ "${_erc_ranlib:+1}" = 1 ] && export RANLIB="${_erc_ranlib}";
+
+ [ "${_erc_cflags:+1}" = 1 ] && export CFLAGS="${_erc_cflags}";
+ [ "${_erc_cppflags:+1}" = 1 ] && export CPPFLAGS="${_erc_cppflags}";
+ [ "${_erc_cxxflags:+1}" = 1 ] && export CXXFLAGS="${_erc_cxxflags}";
+ [ "${_erc_ldflags:+1}" = 1 ] && export LDFLAGS="${_erc_ldflags}";
+ [ "${_erc_pkg_config_libdir:+1}" = 1 ] && export PKG_CONFIG_LIBDIR="${_erc_pkg_config_libdir}";
+
+ if [ "${_erc_flags_list:+1}" = 1 ]; then
+ rtl_run_cmdlineV ":" "${_erc_configure}" \
+ "${_erc_flags_list}" \
+ "${_erc_flags_extra_list:-}" \
+ ;
+ exit "${?}";
+ elif [ "${_erc_flags_extra_list:+1}" = 1 ]; then
+ rtl_run_cmdlineV ":" "${_erc_configure}" \
+ ${_erc_flags:-} \
+ "${_erc_flags_extra_list:-}" \
+ ;
+ exit "${?}";
+ else
+ rtl_run_cmdlineV ":" "${_erc_configure}" \
+ ${_erc_flags:-} \
+ ${_erc_flags_extra:-} \
+ ;
+ exit "${?}";
+ fi;
+);
+ _erc_rc="${?}";
+
+ return "${_erc_rc}";
+};
+
+#
+# ex_rtl_configure_cmake() - configure CMake build
+# @_ar: ar(1) command name or pathname
+# @_cc: C compiler command name or pathname
+# @_cmake: CMake command name or pathname
+# @_cxx: C++ compiler command name or pathname
+# @_ld: ld(1) command name or pathname
+# @_pkg_config: pkg-config(1) command name or pathname
+# @_python: python command name or pathname
+# @_ranlib: ranlib(1) command name or pathname
+# @--: (ignored)
+# @_build_kind: build kind (Debug, Release)
+# @_build_type: CMake build type (host, cross, native)
+# @_cmake_args: additional CMake arguments as a whitespace-separated list
+# @_cmake_args_extra: additional CMake extra arguments as a whitespace-separated likst
+# @_prefix: build prefix pathname
+# @_subdir: CMake build directory pathname
+# @_system_name: CMake system name
+# @_system_processor: CMake system processor
+# @--: (ignored)
+# @_cflags: $CFLAGS
+# @_cflags_extra: extra $CFLAGS
+# @_cppflags: $CPPFLAGS
+# @_cppflags_extra: extra $CPPFLAGS
+# @_cxxflags: $CXXFLAGS
+# @_cxxflags_extra: extra $CXXFLAGS
+# @_ldflags: $LDFLAGS
+# @_ldflags_extra: extra $LDFLAGS
+# @_pkg_config_libdir: pkg-config(1) search directory
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_configure_cmake() {
+ local _ercc_ar="${1}" _ercc_cc="${2}" _ercc_cmake="${3}" \
+ _ercc_cxx="${4}" _ercc_ld="${5}" _ercc_pkg_config="${6}" _ercc_python="${7}" \
+ _ercc_ranlib="${8}" \
+ _ercc_ignored="${9}" \
+ _ercc_build_kind="${10}" _ercc_build_type="${11}" \
+ _ercc_cmake_args="${12}" _ercc_cmake_args_extra="${13}" \
+ _ercc_prefix="${14}" _ercc_subdir="${15}" \
+ _ercc_system_name="${16}" _ercc_system_processor="${17}" \
+ _ercc_ignored="${18}" \
+ _ercc_cflags="${19}" _ercc_cflags_extra="${20}" _ercc_cppflags="${21}" \
+ _ercc_cppflags_extra="${22}" _ercc_cxxflags="${23}" _ercc_cxxflags_extra="${24}" \
+ _ercc_ldflags="${25}" _ercc_ldflags_extra="${26}" _ercc_pkg_config_libdir="${27}" \
+ _ercc_cmd_name="" _ercc_cmake_args_auto="" _ercc_rc=0 _ercc_vname="" _ercc_vval=""
+
+ [ "${_ercc_cflags_extra:+1}" = 1 ] && _ercc_cflags="${_ercc_cflags:+${_ercc_cflags} }${_ercc_cflags_extra}";
+ [ "${_ercc_cppflags_extra:+1}" = 1 ] && _ercc_cppflags="${_ercc_cppflags:+${_ercc_cppflags} }${_ercc_cppflags_extra}";
+ [ "${_ercc_cxxflags_extra:+1}" = 1 ] && _ercc_cxxflags="${_ercc_cxxflags:+${_ercc_cxxflags} }${_ercc_cxxflags_extra}";
+ [ "${_ercc_ldflags_extra:+1}" = 1 ] && _ercc_ldflags="${_ercc_ldflags:+${_ercc_ldflags} }${_ercc_ldflags_extra}";
+
+(
+ [ "${_ercc_pkg_config:+1}" = 1 ] && export PKG_CONFIG="${_ercc_pkg_config}";
+ [ "${_ercc_pkg_config_libdir:+1}" = 1 ] && export PKG_CONFIG_LIBDIR="${_ercc_pkg_config_libdir}";
+ [ "${_ercc_python:+1}" = 1 ] && export PYTHON="${_ercc_python}";
+
+ for _ercc_vname in ar cc cxx ld pkg_config ranlib; do
+ _ercc_vname="_ercc_${_ercc_vname}";
+
+ if eval [ '"${'"${_ercc_vname}"':+1}"' = 1 ]\
+ && eval [ '"${'"${_ercc_vname}"'#/}"' = '"${'"${_ercc_vname}"'}"' ]; then
+ eval _ercc_cmd_name="\${${_ercc_vname}% *}";
+ eval _ercc_vval="\${${_ercc_vname}#* }";
+ eval ${_ercc_vname}='$(which "${_ercc_cmd_name}")' || return 1;
+ fi;
+ done;
+
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_AR=${_ercc_ar}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_BUILD_TYPE=${_ercc_build_kind}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_C_COMPILER=${_ercc_cc}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_C_FLAGS=${_ercc_cflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_COMMAND=${_ercc_cmake}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_CPP_FLAGS=${_ercc_cppflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_CXX_COMPILER=${_ercc_cxx}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_CXX_FLAGS=${_ercc_cxxflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_EXE_LINKER_FLAGS=${_ercc_ldflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_FIND_ROOT_PATH=${_ercc_prefix}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_INSTALL_PREFIX=" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_LINKER=${_ercc_ld}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_MODULE_LINKER_FLAGS=${_ercc_ldflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_RANLIB=${_ercc_ranlib}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_SHARED_LINKER_FLAGS=${_ercc_ldflags}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_SYSTEM_PROCESSOR=${_ercc_system_processor}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DPKG_CONFIG_EXECUTABLE=${_ercc_pkg_config}" "|";
+
+ case "${_ercc_build_type}" in
+ native)
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_SYSROOT=${_ercc_prefix}" "|";
+ rtl_lconcat \$_ercc_cmake_args_auto "-DCMAKE_SYSTEM_NAME=${_ercc_system_name}" "|";
+ ;;
+ esac;
+
+ rtl_llift \$_ercc_cmake_args "
+" "|";
+ rtl_llift \$_ercc_cmake_args_extra "
+" "|";
+
+ rtl_run_cmdlineV "|" "${_ercc_cmake}" \
+ "${_ercc_cmake_args_auto}" \
+ ${_ercc_cmake_args:-} \
+ ${_ercc_cmake_args_extra:-} \
+ "${_ercc_subdir}";
+ exit "${?}";
+);
+ _ercc_rc="${?}";
+
+ return "${_ercc_rc}";
+};
+
+#
+# ex_rtl_configure_prepare() - prepare configure script for running
+# @_build_type: build type (host, native)
+# @_builddir: build directory pathname
+# @_config_cache: optional configuration cache directives
+# @_config_cache_local: optional local configuration cache directives
+# @_config_cache_extra: optional extra configuration cache directives
+# @_config_guess_fname: config.guess file pathname
+# @_config_sub_global_fname: global config.sub file pathname
+# @_copy_config_guess: copy config.guess (copy) or keep local config.guess (keep)
+# @_force_autoreconf: 1 to force reconfiguration if already configured, 0 otherwise
+# @_subdir: subdirectory pathname
+# @_pkg_config: pkg-config(1) command name or pathname
+# @_pkg_config_libdir: pkg-config(1) search directory
+# @_prefix: prefix pathname
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_configure_prepare() {
+ local _ercp_build_type="${1}" _ercp_builddir="${2}" _ercp_config_cache="${3}" \
+ _ercp_config_cache_local="${4}" _ercp_config_cache_extra="${5}" \
+ _ercp_config_guess_fname="${6}" _ercp_config_sub_global_fname="${7}" \
+ _ercp_copy_config_guess=="${8}" _ercp_force_autoreconf="${9}" \
+ _ercp_subdir="${10}" _ercp_pkg_config="${11}" _ercp_pkg_config_libdir="${12}" \
+ _ercp_prefix="${13}";
+
+ if rtl_exists_any "${_ercp_subdir}" \
+ "configure.ac" \
+ "configure.in" \
+ "configure";
+ then
+ rtl_export_vars \
+ PKG_CONFIG "${_ercp_pkg_config}" \
+ PKG_CONFIG_LIBDIR "${_ercp_pkg_config_libdir}";
+
+ if [ "${_ercp_force_autoreconf:-0}" -eq 1 ]\
+ && ! (cd "${_ercp_subdir}" && autoreconf -fiv); then
+ return 1;
+ fi;
+
+ if [ -e "${_ercp_subdir}/configure.ac" ]\
+ && [ ! -e "${_ercp_subdir}/configure" ]; then
+ for _ercp_fname in bootstrap bootstrap.sh autogen.sh; do
+ if [ -e "${_ercp_subdir}/${_ercp_fname}" ]; then
+ for _ercp_subdir_tgt in \
+ "${_ercp_subdir}/build-aux" \
+ "${_ercp_subdir}";
+ do if [ -e "${_ercp_subdir_tgt}" ]; then
+ if ! rtl_fileop install -m 0700 \
+ "${_ercp_config_sub_global_fname}" \
+ "${_ercp_subdir_tgt}/config.sub"; then
+ return 1;
+ fi;
+
+ if [ "${_ercp_copy_config_guess}" = "copy" ]; then
+ if ! rtl_fileop install -m 0700 \
+ "${_ercp_config_guess_fname}" \
+ "${_ercp_subdir_tgt}/config.guess"; then
+ return 1;
+ else
+ break;
+ fi;
+ fi;
+ fi;
+ done;
+
+ if ! (rtl_fileop cd "${_ercp_subdir}" && \
+ /bin/sh "${_ercp_fname}"); then
+ return 1;
+ else
+ break;
+ fi;
+ fi;
+ done;
+
+ if ! (rtl_fileop cd "${_ercp_subdir}" && autoconf); then
+ return 1;
+ fi;
+ fi;
+
+ for _ercp_fname in $(find "${_ercp_subdir}" -name config.sub); do
+ if ! rtl_fileop mv "${_ercp_fname}" "${_ercp_fname}.orig"\
+ || ! rtl_fileop install -m 0700 "${_ercp_config_sub_global_fname}" "${_ercp_fname}"; then
+ return 1;
+ fi;
+ done;
+
+ if [ "${_ercp_copy_config_guess}" = "copy" ]; then
+ for _ercp_fname in $(find "${_ercp_subdir}" -name config.guess); do
+ if ! rtl_fileop mv "${_ercp_fname}" "${_ercp_fname}.orig"\
+ || ! rtl_fileop install -m 0700 "${_ercp_config_guess_fname}" "${_ercp_fname}"; then
+ return 1;
+ fi;
+ done;
+ fi;
+
+ if [ "${_ercp_build_type}" != host ]; then
+ if ! rtl_fileop touch "${_ercp_builddir}/config.cache"; then
+ return 1;
+ else
+ for _ercp_config_cache in \
+ "${_ercp_config_cache:-}" \
+ "${_ercp_config_cache_local:-}" \
+ "${_ercp_config_cache_extra:-}";
+ do
+ if [ "${_ercp_config_cache:+1}" = 1 ]\
+ && ! printf "%s\n" "${_ercp_config_cache}" |\
+ tr " " "\n" >> "${_ercp_builddir}/config.cache"; then
+ return 1;
+ fi;
+ done;
+
+ if ! sed -i"" "s,%PREFIX%,${_ercp_prefix},g" "${_ercp_builddir}/config.cache"; then
+ return 1;
+ fi;
+ fi;
+ fi;
+
+ rtl_export_vars -u \
+ PKG_CONFIG "${_ercp_pkg_config}" \
+ PKG_CONFIG_LIBDIR "${_ercp_pkg_config_libdir}";
+ fi;
+
+ return 0;
+};
+
+#
+# ex_rtl_configure_sofort() - configure sofort build
+# @_ar: ar(1) command name or pathname
+# @_cc: C compiler command name or pathname
+# @_configure: configure script command name or pathname
+# @_cxx: C++ compiler command name or pathname
+# @_ld: ld(1) command name or pathname
+# @_ranlib: ranlib(1) command name or pathname
+# @--: (ignored)
+# @_native_ar: native ar(1) command name or pathname
+# @_native_cc: native C compiler command name or pathname
+# @_native_cxx: native C++ compiler command name or pathname
+# @_native_ld: native ld(1) command name or pathname
+# @_native_ranlib: native ranlib(1) command name or pathname
+# @--: (ignored)
+# @_flags: configure script flags as a whitespace-separated list
+# @_flags_extra: extra configure script flags as a whitespace-separated likst
+# @--: (ignored)
+# @_cflags: $CFLAGS
+# @_cflags_extra: extra $CFLAGS
+# @_cppflags: $CPPFLAGS
+# @_cppflags_extra: extra $CPPFLAGS
+# @_cxxflags: $CXXFLAGS
+# @_cxxflags_extra: extra $CXXFLAGS
+# @_ldflags: $LDFLAGS
+# @_ldflags_extra: extra $LDFLAGS
+# @--: (ignored)
+# @_native_cflags: native $CFLAGS
+# @_native_cflags_extra: native extra $CFLAGS
+# @_native_cppflags: native $CPPFLAGS
+# @_native_cppflags_extra: native extra $CPPFLAGS
+# @_native_cxxflags: native $CXXFLAGS
+# @_native_cxxflags_extra: native extra $CXXFLAGS
+# @_native_ldflags: native $LDFLAGS
+# @_native_ldflags_extra: native extra $LDFLAGS
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_configure_sofort() {
+ local _ercs_ar="${1}" _ercs_cc="${2}" _ercs_configure="${3}" _ercs_cxx="${4}" _ercs_ld="${5}" _ercs_ranlib="${6}" \
+ _ercs_ignored="${7}" \
+ _ercs_native_ar="${8}" _ercs_native_cc="${9}" _ercs_native_cxx="${10}" _ercs_native_ld="${11}" \
+ _ercs_native_ranlib="${12}" \
+ _ercs_ignored="${13}" \
+ _ercs_flags="${14}" _ercs_flags_extra="${15}" \
+ _ercs_ignored="${16}" \
+ _ercs_cflags="${17}" _ercs_cflags_extra="${18}" _ercs_cppflags="${19}" \
+ _ercs_cppflags_extra="${20}" _ercs_cxxflags="${21}" _ercs_cxxflags_extra="${22}" \
+ _ercs_ldflags="${23}" _ercs_ldflags_extra="${24}" \
+ _ercs_ignored="${25}" \
+ _ercs_native_cflags="${26}" _ercs_native_cflags_extra="${27}" _ercs_native_cppflags="${28}" \
+ _ercs_native_cppflags_extra="${29}" _ercs_native_cxxflags="${30}" _ercs_native_cxxflags_extra="${31}" \
+ _ercs_native_ldflags="${32}" _ercs_native_ldflags_extra="${33}" \
+ _ercs_vname="" _ercs_rc=0;
+
+ [ "${_ercs_cflags_extra:+1}" = 1 ] && _ercs_cflags="${_ercs_cflags:+${_ercs_cflags} }${_ercs_cflags_extra}";
+ [ "${_ercs_cppflags_extra:+1}" = 1 ] && _ercs_cppflags="${_ercs_cppflags:+${_ercs_cppflags} }${_ercs_cppflags_extra}";
+ [ "${_ercs_cxxflags_extra:+1}" = 1 ] && _ercs_cxxflags="${_ercs_cxxflags:+${_ercs_cxxflags} }${_ercs_cxxflags_extra}";
+ [ "${_ercs_ldflags_extra:+1}" = 1 ] && _ercs_ldflags="${_ercs_ldflags:+${_ercs_ldflags} }${_ercs_ldflags_extra}";
+
+ [ "${_ercs_native_cflags_extra:+1}" = 1 ] && _ercs_native_cflags="${_ercs_native_cflags:+${_ercs_native_cflags} }${_ercs_native_cflags_extra}";
+ [ "${_ercs_native_cppflags_extra:+1}" = 1 ] && _ercs_native_cppflags="${_ercs_native_cppflags:+${_ercs_native_cppflags} }${_ercs_native_cppflags_extra}";
+ [ "${_ercs_native_cxxflags_extra:+1}" = 1 ] && _ercs_native_cxxflags="${_ercs_native_cxxflags:+${_ercs_native_cxxflags} }${_ercs_native_cxxflags_extra}";
+ [ "${_ercs_native_ldflags_extra:+1}" = 1 ] && _ercs_native_ldflags="${_ercs_native_ldflags:+${_ercs_native_ldflags} }${_ercs_native_ldflags_extra}";
+
+(
+ [ "${_ercs_ar:+1}" = 1 ] && export AR="${_ercs_ar}";
+ [ "${_ercs_cc:+1}" = 1 ] && export CC="${_ercs_cc}";
+ [ "${_ercs_cxx:+1}" = 1 ] && export CXX="${_ercs_cxx}";
+ [ "${_ercs_ld:+1}" = 1 ] && export LD="${_ercs_ld}";
+ [ "${_ercs_ranlib:+1}" = 1 ] && export RANLIB="${_ercs_ranlib}";
+
+ [ "${_ercs_native_ar:+1}" = 1 ] && export NATIVE_AR="${_ercs_native_ar}";
+ [ "${_ercs_native_cc:+1}" = 1 ] && export NATIVE_CC="${_ercs_native_cc}";
+ [ "${_ercs_native_cxx:+1}" = 1 ] && export NATIVE_CXX="${_ercs_native_cxx}";
+ [ "${_ercs_native_ld:+1}" = 1 ] && export NATIVE_LD="${_ercs_native_ld}";
+ [ "${_ercs_native_ranlib:+1}" = 1 ] && export NATIVE_RANLIB="${_ercs_native_ranlib}";
+
+ [ "${_ercs_cflags:+1}" = 1 ] && export CFLAGS="${_ercs_cflags}" CFLAGS_SHARED="${_ercs_cflags}" CFLAGS_STATIC="${_ercs_cflags}";
+ [ "${_ercs_cppflags:+1}" = 1 ] && export CPPFLAGS="${_ercs_cppflags}" CPPFLAGS_SHARED="${_ercs_cppflags}" CPPFLAGS_STATIC="${_ercs_cppflags}";
+ [ "${_ercs_cxxflags:+1}" = 1 ] && export CXXFLAGS="${_ercs_cxxflags}" CXXFLAGS_SHARED="${_ercs_cxxflags}" CXXFLAGS_STATIC="${_ercs_cxxflags}";
+ [ "${_ercs_ldflags:+1}" = 1 ] && export LDFLAGS="${_ercs_ldflags}" LDFLAGS_SHARED="${_ercs_ldflags}" LDFLAGS_STATIC="${_ercs_ldflags}";
+
+ [ "${_ercs_native_cflags:+1}" = 1 ] && export NATIVE_CFLAGS="${_ercs_native_cflags}";
+ [ "${_ercs_native_cppflags:+1}" = 1 ] && export NATIVE_CPPFLAGS="${_ercs_native_cppflags}";
+ [ "${_ercs_native_cxxflags:+1}" = 1 ] && export NATIVE_CXXFLAGS="${_ercs_native_cxxflags}";
+ [ "${_ercs_native_ldflags:+1}" = 1 ] && export NATIVE_LDFLAGS="${_ercs_native_ldflags}";
+
+ "${_ercs_configure}" \
+ ${_ercs_flags:-} \
+ ${_ercs_flags_extra:-};
+ exit $((${?} ? 1 : ${_ercs_rc}));
+);
+ _ercs_rc="${?}";
+
+ return "${_ercs_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_rtl_make.subr b/subr.ex/ex_rtl_make.subr
new file mode 100644
index 00000000..6867dfad
--- /dev/null
+++ b/subr.ex/ex_rtl_make.subr
@@ -0,0 +1,184 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+# Package make command execution
+#
+
+#
+# ex_rtl_make() - run make(1)
+# @_ar: ar(1) command name or pathname
+# @_cc: C compiler command name or pathname
+# @_cxx: C++ compiler command name or pathname
+# @_ld: ld(1) command name or pathname
+# @_libtool: libtool(1) command name or pathname or "none"
+# @_make: make(1) command name or pathname
+# @_pkg_config: pkg-config(1) command name or pathname
+# @_ranlib: ranlib(1) command name or pathname
+# @--: (ignored)
+# @_set_ccfl: 1 if CC=... is to be passed to make(1), 0 if CC=... is not to be passed to make(1)
+# @_subdir: make(1) -C argument
+# @--: (ignored)
+# @_makeflags: make(1) flags as a whitespace-separated list
+# @_makeflags_extra: extra make(1) flags as a whitespace-separated likst
+# @_makeflags_list: make(1) flags as a :-separated list
+# @_makeflags_extra_list: extra make(1) flags as a :-separated list
+# @_makeflags_loadavg: make(1) -l load argument
+# @_makeflags_parallelise: make(1) -j jobs argument
+# @_makeflags_verbosity: make(1) Makefile verbosity arguments or "none"
+# @--: (ignored)
+# @_cflags: $CFLAGS
+# @_cflags_extra: extra $CFLAGS
+# @_cppflags: $CPPFLAGS
+# @_cppflags_extra: extra $CPPFLAGS
+# @_cxxflags: $CXXFLAGS
+# @_cxxflags_extra: extra $CXXFLAGS
+# @_ldflags: $LDFLAGS
+# @_ldflags_extra: extra $LDFLAGS
+# @_pkg_config_libdir: pkg-config(1) search directory
+# @--: (ignored)
+# @_destdir_spec: DESTDIR=... specification
+# @_target: make(1) target
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_make() {
+ local _erm_ar="${1}" _erm_cc="${2}" _erm_cxx="${3}" _erm_ld="${4}" \
+ _erm_libtool="${5}" _erm_make="${6}" _erm_pkg_config="${7}" _erm_ranlib="${8}" \
+ _erm_ignored="${9}" \
+ _erm_set_ccfl="${10}" _erm_subdir="${11}" \
+ _erm_ignored="${12}" \
+ _erm_makeflags="${13}" _erm_makeflags_extra="${14}" _erm_makeflags_list="${15}" \
+ _erm_makeflags_extra_list="${16}" _erm_makeflags_loadavg="${17}" \
+ _erm_makeflags_parallelise="${18}" _erm_makeflags_verbosity="${19}" \
+ _erm_ignored="${20}" \
+ _erm_cflags="${21}" _erm_cflags_extra="${22}" _erm_cppflags="${23}" \
+ _erm_cppflags_extra="${24}" _erm_cxxflags="${25}" _erm_cxxflags_extra="${26}" \
+ _erm_ldflags="${27}" _erm_ldflags_extra="${28}" _erm_pkg_config_libdir="${29}" \
+ _erm_ignored="${30}" \
+ _erm_destdir_spec="${31}" _erm_target="${32}" \
+ _erm_rc=0;
+
+ case "${_erm_makeflags_loadavg:-}" in
+ none) _erm_makeflags_loadavg=""; ;;
+ esac;
+
+ case "${_erm_libtool:-}" in
+ none) _erm_libtool=""; ;;
+ esac;
+
+ case "${_erm_makeflags_verbosity}" in
+ none) _erm_makeflags_verbosity=""; ;;
+ esac;
+
+ case "${_erm_set_ccfl}" in
+ 1) _erm_set_ccfl="1"; ;;
+ *) _erm_set_ccfl=""; ;;
+ esac;
+
+(
+ if [ "${_erm_libtool:+1}" = 1 ]; then
+ export MAKE="make LIBTOOL=${_erm_libtool}";
+ fi;
+
+ if [ "${_erm_makeflags_list:+1}" = 1 ]; then
+ rtl_run_cmdlineV ":" "${_erm_make}" \
+ AR="${_erm_ar}" \
+ ${_erm_set_ccfl:+CC="${_erm_cc}"} \
+ ${_erm_set_ccfl:+CXX="${_erm_cxx}"} \
+ LD="${_erm_ld}" \
+ ${_erm_libtool:+LIBTOOL="${_erm_libtool}"} \
+ ${_erm_pkg_config:+PKG_CONFIG="${_erm_pkg_config}"} \
+ RANLIB="${_erm_ranlib}" \
+ \
+ "${_erm_makeflags_list}" \
+ "${_erm_makeflags_extra_list:-}" \
+ ${_erm_makeflags_loadavg:-} \
+ ${_erm_makeflags_parallelise:-} \
+ ${_erm_makeflags_verbosity} \
+ \
+ ${_erm_cflags:+CFLAGS="${_erm_cflags}"} \
+ ${_erm_cflags_extra:+CFLAGS+="${_erm_cflags_extra}"} \
+ ${_erm_cppflags:+CPPFLAGS="${_erm_cppflags}"} \
+ ${_erm_cppflags_extra:+CPPFLAGS+="${_erm_cppflags_extra}"} \
+ ${_erm_cxxflags:+CXXFLAGS="${_erm_cxxflags}"} \
+ ${_erm_cxxflags_extra:+CXXFLAGS+="${_erm_cxxflags_extra}"} \
+ ${_erm_ldflags:+LDFLAGS="${_erm_ldflags}"} \
+ ${_erm_ldflags_extra:+LDFLAGS+="${_erm_ldflags_extra}"} \
+ ${_erm_pkg_config_libdir:+PKG_CONFIG_LIBDIR="${_erm_pkg_config_libdir}"} \
+ \
+ ${_erm_subdir:+-C "${_erm_subdir}"} \
+ ${_erm_destdir_spec:+"${_erm_destdir_spec}"} \
+ ${_erm_target:+"${_erm_target}"} \
+ ;
+ exit "${?}";
+ elif [ "${_erm_makeflags_extra_list:+1}" = 1 ]; then
+ rtl_run_cmdlineV ":" "${_erm_make}" \
+ AR="${_erm_ar}" \
+ ${_erm_set_ccfl:+CC="${_erm_cc}"} \
+ ${_erm_set_ccfl:+CXX="${_erm_cxx}"} \
+ LD="${_erm_ld}" \
+ ${_erm_libtool:+LIBTOOL="${_erm_libtool}"} \
+ ${_erm_pkg_config:+PKG_CONFIG="${_erm_pkg_config}"} \
+ RANLIB="${_erm_ranlib}" \
+ \
+ ${_erm_makeflags:-} \
+ "${_erm_makeflags_extra_list}" \
+ ${_erm_makeflags_loadavg:-} \
+ ${_erm_makeflags_parallelise:-} \
+ ${_erm_makeflags_verbosity} \
+ \
+ ${_erm_cflags:+CFLAGS="${_erm_cflags}"} \
+ ${_erm_cflags_extra:+CFLAGS+="${_erm_cflags_extra}"} \
+ ${_erm_cppflags:+CPPFLAGS="${_erm_cppflags}"} \
+ ${_erm_cppflags_extra:+CPPFLAGS+="${_erm_cppflags_extra}"} \
+ ${_erm_cxxflags:+CXXFLAGS="${_erm_cxxflags}"} \
+ ${_erm_cxxflags_extra:+CXXFLAGS+="${_erm_cxxflags_extra}"} \
+ ${_erm_ldflags:+LDFLAGS="${_erm_ldflags}"} \
+ ${_erm_ldflags_extra:+LDFLAGS+="${_erm_ldflags_extra}"} \
+ ${_erm_pkg_config_libdir:+PKG_CONFIG_LIBDIR="${_erm_pkg_config_libdir}"} \
+ \
+ ${_erm_subdir:+-C "${_erm_subdir}"} \
+ ${_erm_destdir_spec:+"${_erm_destdir_spec}"} \
+ ${_erm_target:+"${_erm_target}"} \
+ ;
+ exit "${?}";
+ else
+ rtl_run_cmdlineV ":" "${_erm_make}" \
+ AR="${_erm_ar}" \
+ ${_erm_set_ccfl:+CC="${_erm_cc}"} \
+ ${_erm_set_ccfl:+CXX="${_erm_cxx}"} \
+ LD="${_erm_ld}" \
+ ${_erm_libtool:+LIBTOOL="${_erm_libtool}"} \
+ ${_erm_pkg_config:+PKG_CONFIG="${_erm_pkg_config}"} \
+ RANLIB="${_erm_ranlib}" \
+ \
+ ${_erm_makeflags:-} \
+ ${_erm_makeflags_extra:-} \
+ ${_erm_makeflags_loadavg:-} \
+ ${_erm_makeflags_parallelise:-} \
+ ${_erm_makeflags_verbosity} \
+ \
+ ${_erm_cflags:+CFLAGS="${_erm_cflags}"} \
+ ${_erm_cflags_extra:+CFLAGS+="${_erm_cflags_extra}"} \
+ ${_erm_cppflags:+CPPFLAGS="${_erm_cppflags}"} \
+ ${_erm_cppflags_extra:+CPPFLAGS+="${_erm_cppflags_extra}"} \
+ ${_erm_cxxflags:+CXXFLAGS="${_erm_cxxflags}"} \
+ ${_erm_cxxflags_extra:+CXXFLAGS+="${_erm_cxxflags_extra}"} \
+ ${_erm_ldflags:+LDFLAGS="${_erm_ldflags}"} \
+ ${_erm_ldflags_extra:+LDFLAGS+="${_erm_ldflags_extra}"} \
+ ${_erm_pkg_config_libdir:+PKG_CONFIG_LIBDIR="${_erm_pkg_config_libdir}"} \
+ \
+ ${_erm_subdir:+-C "${_erm_subdir}"} \
+ ${_erm_destdir_spec:+"${_erm_destdir_spec}"} \
+ ${_erm_target:+"${_erm_target}"} \
+ ;
+ exit "${?}";
+ fi;
+);
+ _erm_rc="${?}";
+
+ return "${_erm_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_rtl_midipix.subr b/subr.ex/ex_rtl_midipix.subr
new file mode 100644
index 00000000..1fb594a8
--- /dev/null
+++ b/subr.ex/ex_rtl_midipix.subr
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+#
+
+#
+# ex_rtl_install_library_archives() - install library archives and library links (.lib.a) for all libraries (.so) in tree matching lib*
+# @_dname_base: base directory pathname
+# @_mdso_cmd: mdso command name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_install_library_archives() {
+ local _erila_dname_base="${1}" _erila_mdso_cmd="${2}" \
+ _erila_postfix="" _erila_lib_dst_path="" _erila_lib_name="" \
+ _erila_lib_src_path="" _erila_so_dst_dir="" _erila_so_src_path="";
+
+ for _erila_so_src_path in \
+ $(find "${_erila_dname_base}" \
+ \( -name "*.so" -or -name "*.so.*" \) \
+ \( -name "lib*" \) \
+ -print);
+ do
+ if [ "$(readlink -f "${_erila_so_src_path}")" != "/dev/null" ]\
+ && rtl_remove_postfix "[0-9.]" "${_erila_so_src_path##*.so}" \$_erila_postfix\
+ && [ "${_erila_postfix:+1}" != 1 ]; then
+
+ case "${_erila_so_src_path}" in
+ *.so) _erila_lib_src_path="${_erila_so_src_path%%.so}.lib.a"; ;;
+ *.so.*) _erila_lib_src_path="${_erila_so_src_path%%.so.*}.${_erila_so_src_path##*.so.}.lib.a"; ;;
+ esac;
+
+ _erila_so_dst_dir="${_erila_so_src_path%/*}";
+ rtl_basename2 \$_erila_lib_src_path \$_erila_lib_name;
+ _erila_lib_dst_path="${_erila_so_dst_dir}/${_erila_lib_name}";
+
+ if [ ! -L "${_erila_lib_src_path}" ]\
+ && [ ! -e "${_erila_lib_dst_path}" ]; then
+ if ! (rtl_basename2 \$_erila_so_src_path \$_erila_fname; \
+ rtl_basename2 \$_erila_lib_dst_path \$_erila_fname_dst; \
+ rtl_dirname2 \$_erila_so_src_path \$_erila_dname; \
+ rtl_fileop cd "${_erila_dname}" && \
+ perk -e "${_erila_fname}" |\
+ "${_erila_mdso_cmd}" \
+ -i "${_erila_fname_dst}" \
+ -n "${_erila_fname}" -);
+ then
+ return 1;
+ fi;
+ fi;
+
+ if ! ex_rtl_install_library_link \
+ "${_erila_lib_name}" "${_erila_so_dst_dir}" \
+ "${_erila_so_src_path}";
+ then
+ return 1;
+ fi;
+ fi;
+ done;
+
+ return 0;
+};
+
+#
+# ex_rtl_install_library_link() - install library archive (.lib.a) link for library (.so)
+# @_lib_name: library name
+# @_so_dir: library directory pathname
+# @_so_path: library file pathname
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_install_library_link() {
+ local _erill_lib_name="${1}" _erill_so_dir="${2}" _erill_so_path="${3}" \
+ _erill_lib_link_path="${3%.so*}.lib.a" _erill_fname="" _erill_lib_link_tgt="";
+
+ if _erill_lib_link_tgt="$(find "${_erill_so_dir}" \
+ -name "${_erill_lib_name%%.*}.*.lib.a" |\
+ sort | tail -1)"\
+ && [ "${_erill_lib_link_tgt:+1}" = 1 ]\
+ && [ "${_erill_lib_link_tgt}" != "${_erill_lib_link_path}" ];
+ then
+ rtl_basename2 \$_erill_lib_link_tgt \$_erill_fname;
+
+ if ! rtl_fileop rm "${_erill_lib_link_path}"\
+ || ! rtl_fileop ln_symbolic "${_erill_fname}" "${_erill_lib_link_path}"; then
+ return 1;
+ fi;
+ fi;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.ex/ex_rtl_rpm.subr b/subr.ex/ex_rtl_rpm.subr
new file mode 100644
index 00000000..2f1589d6
--- /dev/null
+++ b/subr.ex/ex_rtl_rpm.subr
@@ -0,0 +1,270 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+#
+
+#
+# ex_rtl_build_rpm() - build RPM package
+# @_destdir: package destination directory
+# @_jobs_max: maximum count of simultaneously executing rpmbuild(1) processes
+# @_jobs_semaphore: pathname to current count of simultaneously executing rpmbuild(1) processes semaphore file
+# @_jobs_wait: wait period in seconds when @_jobs_semaphore is locked
+# @_name: package name
+# @_rpms_dname: RPMs directory pathname
+# @_spec_fname: RPM .spec file pathname
+# @_spec_fname_tgt: target package RPM .spec file pathname
+# @_tmp_dname: temporary files directory pathname
+# @_topdir: package top directory
+# @_url: package URL
+# @_version: package version
+# @_version_rpm: package RPM version
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: The following variables are substituted prior to running rpmbuild(1):
+# %{pkg_destdir}
+# %{pkg_name}
+# %{pkg_url}
+# %{pkg_version_full}
+# %{pkg_version_rpm}
+#
+# The \n-separated list of package files is inserted after the `%files' line.
+#
+ex_rtl_build_rpm() {
+ local _erbr_destdir="${1}" _erbr_jobs_max="${2}" _erbr_jobs_semaphore="${3}" _erbr_jobs_wait="${4}" \
+ _erbr_name="${5}" _erbr_rpms_dname="${6}" _erbr_spec_fname="${7}" _erbr_spec_fname_tgt="${8}" \
+ _erbr_tmp_dname="${9}" _erbr_topdir="${10}" _erbr_url="${11}" _erbr_version="${12}" \
+ _erbr_version_rpm="${13}" \
+ _erbr_spec_fname_tgt_tmp="" _erbr_job_count=0 _erbr_rc=0 _erbr_rc_jobs=0;
+
+(
+ while true; do
+ (set +o errexit -o noglob -o nounset;
+ rtl_flock_acquire 4 || exit $((${?} + 1));
+
+ read _erbr_job_count <&4;
+ if [ "${_erbr_job_count:+1}" != 1 ]; then
+ _erbr_job_count=0;
+ fi;
+
+ if [ "${_erbr_job_count}" -ge "${_erbr_jobs_max}" ]; then
+ exit 1;
+ else
+ : $((_erbr_job_count += 1));
+ printf "%s" "${_erbr_job_count}" >"${_erbr_jobs_semaphore}" || exit $((${?} + 1));
+ exit 0;
+ fi) 4<>"${_erbr_jobs_semaphore}";
+ _erbr_rc_jobs="${?}";
+
+ case "${_erbr_rc_jobs}" in
+ 0) break; ;;
+ 1) sleep "${_erbr_jobs_wait}" || return "${?}"; ;;
+ *) return $((${_erbr_rc_jobs} - 1));
+ esac;
+ done;
+
+ trap '
+ (set +o errexit -o noglob -o nounset;
+ rtl_flock_acquire 4 || exit 1;
+
+ read _erbr_job_count <&4;
+ if [ "${_erbr_job_count:+1}" != 1 ]\
+ || [ "${_erbr_job_count}" -lt 1 ]; then
+ _erbr_job_count=1;
+ fi;
+
+ : $((_erbr_job_count -= 1));
+ printf "%s" "${_erbr_job_count}" >"${_erbr_jobs_semaphore}" || exit 1;
+ exit 0) 4<>"${_erbr_jobs_semaphore}"' \
+ EXIT HUP INT TERM USR1 USR2;
+
+ (
+ _erbr_spec_fname_tgt_tmp="${_erbr_spec_fname_tgt}.tmp";
+ trap "rm -f \"${_erbr_spec_fname_tgt_tmp}\"" EXIT HUP INT TERM USR1 USR2;
+
+ #
+ # N.B. Keep list in sync w/ list in function documentation comment block at top.
+ #
+ if rtl_fileop cp "${_erbr_spec_fname}" "${_erbr_spec_fname_tgt_tmp}" \
+ && sed -i"" \
+ -ne '/^#REMOVEDBYSED#/!p' \
+ "${_erbr_spec_fname_tgt_tmp}" \
+ && sed -i"" \
+ -e 's#%{pkg_destdir}#'"${_erbr_destdir}"'#g' \
+ -e 's#%{pkg_name}#'"${_erbr_name}"'#g' \
+ -e 's#%{pkg_url}#'"${_erbr_url}"'#g' \
+ -e 's#%{pkg_version_full}#'"${_erbr_version}"'#g' \
+ -e 's#%{pkg_version_rpm}#'"${_erbr_version_rpm}"'#g' \
+ "${_erbr_spec_fname_tgt_tmp}" \
+ && sed -n -e '1,/^%files$/p' \
+ "${_erbr_spec_fname_tgt_tmp}" \
+ > "${_erbr_spec_fname_tgt}" \
+ && (cd "${_erbr_destdir}"; \
+ find -mindepth 1 \( -type f -or -type l \) | \
+ sed -e 's,^./,'"/"',' \
+ -e 's/^/"/' \
+ -e 's/$/"/') \
+ >> "${_erbr_spec_fname_tgt}" \
+ && sed -n -e '/^%files$/,${/^%files$/d;p}' \
+ "${_erbr_spec_fname_tgt_tmp}" \
+ >> "${_erbr_spec_fname_tgt}" \
+ ; \
+ then
+ _erbr_rc=0;
+ else
+ _erbr_rc=1;
+ fi;
+ exit "${_erbr_rc}";
+ ); _erbr_rc="${?}";
+
+ if [ "${_erbr_rc}" -eq 0 ]; then
+ while true; do
+ rpmbuild \
+ -bb \
+ --define "_binary_payload w2T16.xzdio" \
+ --define="_tmppath ${_erbr_tmp_dname=}" \
+ --define="_topdir ${_erbr_topdir}" \
+ --nodeps \
+ "${_erbr_spec_fname_tgt}";
+ _erbr_rc="${?}";
+
+ if [ "${_erbr_rc}" -eq 141 ]; then
+ _erbr_rc=0; continue;
+ else
+ break;
+ fi;
+ done;
+
+ if [ "${_erbr_rc}" -eq 0 ]; then
+ if ! find "${_erbr_rpms_dname}/${_erbr_name}-${_erbr_version_rpm}/RPMS" \
+ -iname \*.rpm -exec cp -pP {} "${_erbr_rpms_dname}/" \; \
+ || ! rtl_fileop rm "${_erbr_rpms_dname}/${_erbr_name}-${_erbr_version_rpm}" \
+ || ! rtl_fileop cp "${_erbr_spec_fname_tgt}" "${_erbr_rpms_dname}/";
+ then
+ _erbr_rc=1;
+ fi;
+ fi;
+ fi;
+
+ exit "${_erbr_rc}";
+);
+ _erbr_rc="${?}";
+
+ return "${_erbr_rc}";
+};
+
+#
+# ex_rtl_expand_rpm_version() - expand RPM version strings
+# @_rurl: out reference to package URL
+# @_rversion: out reference to package version
+# @_rversion_rpm: out reference to RPM version string
+# @_subdir: package subdirectory
+# @_url: package URL
+# @_url_censor: package URL filter
+# @_urls_git: package Git URL(s)
+# @_version: package version
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_expand_rpm_version() {
+ local _ererv_rurl="${1#\$}" _ererv_rversion="${2#\$}" _ererv_rversion_rpm="${3#\$}" \
+ _ererv_subdir="${4}" _ererv_url="${5}" _ererv_url_censor="${6}" \
+ _ererv_urls_git="${7}" _ererv_version="${8}" \
+ _ererv_version_full="" _ererv_version_rpm=""
+
+ if [ "${_ererv_url:+1}" = 1 ]; then
+ _ererv_url="${_ererv_url%% *}";
+ _ererv_version_full="${_ererv_version}";
+ _ererv_version_rpm="${_ererv_version%%-*}";
+
+ elif [ "${_ererv_urls_git:+1}" = 1 ]; then
+ _ererv_url="${_ererv_urls_git%% *}";
+ _ererv_url="${_ererv_url##*=}";
+ _ererv_url="${_ererv_url%%@*}";
+
+ _ererv_version_rpm="$(cd "${_ererv_subdir}" && git rev-parse HEAD)" || return 1;
+ _ererv_version_full="${_ererv_version_rpm} ($(cd "${_ererv_subdir}" && git rev-parse --abbrev-ref HEAD))" || return 1;
+ fi;
+
+ if [ "${_ererv_url#${_ererv_url_censor}}" != "${_ererv_url}" ]; then
+ _ererv_url="Unknown";
+ fi;
+
+ eval ${_ererv_rurl}='${_ererv_url}';
+ eval ${_ererv_rversion}='${_ererv_version_full}';
+ eval ${_ererv_rversion_rpm}='${_ererv_version_rpm}';
+
+ return 0;
+};
+
+#
+# ex_rtl_fixup_pkgconfig_paths() - fixup pathname prefixes in pkg-config(1) files
+# @_dname_base: base directory pathname
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_fixup_pkgconfig_paths() {
+ local _erfpp_dname_base="${1}" \
+ _erfpp_pc_path="";
+
+ for _erfpp_pc_path in $(find "${_erfpp_dname_base=}" -name \*.pc); do
+ if [ -n "$(sed -ne '/^libdir=[^$]*$/p' "${_erfpp_pc_path}")" ] \
+ && ! sed -i"" -e '/^libdir=[^$]*$/s/^libdir=\(.*\)$/libdir=${exec_prefix}\1/' \
+ -e '/^exec_prefix=$/s/^.*$/exec_prefix=${prefix}/' \
+ "${_erfpp_pc_path}";
+ then
+ return 1;
+ fi;
+
+ if [ -n "$(sed -ne '/^includedir=[^$]*$/p' "${_erfpp_pc_path}")" ] \
+ && ! sed -i"" -e '/^includedir=[^$]*$/s/^includedir=\(.*\)$/includedir=${prefix}\1/' \
+ "${_erfpp_pc_path}";
+ then
+ return 1;
+ fi;
+ done;
+
+ return 0;
+};
+
+#
+# ex_rtl_strip_files() - strip files of debugging information
+# @_strip_cmd: strip(1) command name
+# @_tree_root: pathname to tree root
+# @--: (ignored)
+# @_log_fn: logging function name; called with @... and pathname of each file stripped
+# @...: @_fn initial arguments list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+ex_rtl_strip_files() {
+ local _ersf_strip_cmd="${1}" _ersf_tree_root="${2}" \
+ _ersf_ignored="${3}" _ersf_log_fn="${4}" \
+ _ersf_bin_path="";
+ shift 4;
+
+ if [ -e "${_ersf_tree_root}" ]; then
+ for _ersf_bin_path in $(find \
+ "${_ersf_tree_root}" \
+ -perm /a=x \
+ -type f);
+ do
+ if objdump \
+ -sj .debug_frame \
+ -j .debug_info \
+ "${_ersf_bin_path}" \
+ >/dev/null 2>&1;
+ then
+ if ! "${_ersf_strip_cmd}" "${_ersf_bin_path}"; then
+ return 1;
+ else
+ "${_ersf_log_fn}" "${@}" "${_ersf_bin_path}";
+ fi;
+ fi;
+ done;
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_build.subr b/subr.pkg/pkg_build.subr
new file mode 100644
index 00000000..f3ec51df
--- /dev/null
+++ b/subr.pkg/pkg_build.subr
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_build() {
+ local _pb_group_name="${1}" _pb_pkg_name="${2}" _pb_restart_at="${3}" \
+ _pb_no_autoconf="" _pb_rc=0 _pb_subdir="";
+
+ if ! [ -x "${PKG_CONFIGURE:-}" ]; then
+ _pb_no_autoconf=1;
+ fi;
+
+ for _pb_subdir in ${PKG_MAKE_SUBDIRS:-:}; do
+ if [ "${_pb_subdir}" = ":" ]; then
+ _pb_subdir="";
+ fi;
+
+ #
+ # N.B. We only pass CC=... here if the current package does not use GNU
+ # autoconf as it often abuses it by appending -std={gnu99,...} to it
+ # instead of amending CFLAGS.
+ #
+ ex_rtl_make \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
+ "${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${PKG_RANLIB}" \
+ -- \
+ "${_pb_no_autoconf}" "${_pb_subdir}" \
+ -- \
+ "${PKG_MAKEFLAGS_BUILD:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_MAKEFLAGS_BUILD_LIST:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA_LIST:-}" \
+ "${PKG_MAKEFLAGS_LOADAVG:-}" "${PKG_MAKEFLAGS_PARALLELISE:-}" \
+ "${PKG_MAKEFLAGS_VERBOSITY:-}" \
+ -- \
+ "${PKG_CFLAGS_BUILD:-}" "${PKG_CFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_CPPFLAGS_BUILD:-}" "${PKG_CPPFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_CXXFLAGS_BUILD:-}" "${PKG_CXXFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_LDFLAGS_BUILD:-}" "${PKG_LDFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_PKG_CONFIG_LIBDIR:-}" \
+ -- \
+ "" "" \
+ ;
+ _pb_rc="${?}";
+
+ if [ "${_pb_rc}" -ne 0 ]; then
+ break;
+ fi;
+ done;
+
+ return "${_pb_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_build_clean.subr b/subr.pkg/pkg_build_clean.subr
new file mode 100644
index 00000000..c9ba0e86
--- /dev/null
+++ b/subr.pkg/pkg_build_clean.subr
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_build_clean() {
+ local _pbc_group_name="${1}" _pbc_pkg_name="${2}" _pbc_restart_at="${3}" \
+ _pbc_no_autoconf="" _pbc_rc=0 _pbc_subdir="";
+
+ if ! [ -x "${PKG_CONFIGURE:-}" ]; then
+ _pbc_no_autoconf=1;
+ fi;
+
+ if ex_pkg_state_test "${PKG_NAME}" "build" "${_pbc_restart_at}"; then
+ for _pbc_subdir in ${PKG_MAKE_SUBDIRS:-:}; do
+ if [ "${_pbc_subdir}" = ":" ]; then
+ _pbc_subdir="";
+ fi;
+
+ ex_rtl_make \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
+ "${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${PKG_RANLIB}" \
+ -- \
+ "${_pbc_no_autoconf}" "${_pbc_subdir}" \
+ -- \
+ "${PKG_MAKEFLAGS_BUILD:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_MAKEFLAGS_BUILD_LIST:-}" "${PKG_MAKEFLAGS_BUILD_EXTRA_LIST:-}" \
+ "${PKG_MAKEFLAGS_LOADAVG:-}" "${PKG_MAKEFLAGS_PARALLELISE:-}" \
+ "${PKG_MAKEFLAGS_VERBOSITY:-}" \
+ -- \
+ "${PKG_CFLAGS_BUILD:-}" "${PKG_CFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_CPPFLAGS_BUILD:-}" "${PKG_CPPFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_CXXFLAGS_BUILD:-}" "${PKG_CXXFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_LDFLAGS_BUILD:-}" "${PKG_LDFLAGS_BUILD_EXTRA:-}" \
+ "${PKG_PKG_CONFIG_LIBDIR:-}" \
+ -- \
+ "" "clean" \
+ ;
+ _pbc_rc="${?}";
+
+ if [ "${_pbc_rc}" -ne 0 ]; then
+ break;
+ fi;
+ done;
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_clean.subr b/subr.pkg/pkg_clean.subr
index a4a70d63..2046c28b 100644
--- a/subr/pkg_clean.subr
+++ b/subr.pkg/pkg_clean.subr
@@ -1,15 +1,19 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
pkg_clean() {
+ local _pc_group_name="${1}" _pc_pkg_name="${2}" _pc_restart_at="${3}";
+
if [ "${PKG_NO_CLEAN:-0}" -eq 0 ]; then
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "build" ","; then
+ if rtl_lmatch \$ARG_CLEAN_BUILDS "build" ","\
+ && [ "${PKG_NO_CLEAN_BUILD_DIR:-0}" -eq 0 ]; then
if ! rtl_fileop rm "${PKG_BUILD_DIR}"; then
return 1;
fi;
fi;
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "dest" ","; then
+ if rtl_lmatch \$ARG_CLEAN_BUILDS "dest" ","; then
if ! rtl_fileop rm "${PKG_DESTDIR}"; then
return 1;
elif [ -e "${PKG_DESTDIR_HOST}" ]\
@@ -17,12 +21,13 @@ pkg_clean() {
return 1;
fi;
fi;
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "src" ","; then
+ if rtl_lmatch \$ARG_CLEAN_BUILDS "src" ","; then
if ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_SUBDIR}"; then
return 1;
fi;
fi;
fi;
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_configure.subr b/subr.pkg/pkg_configure.subr
new file mode 100644
index 00000000..229cf583
--- /dev/null
+++ b/subr.pkg/pkg_configure.subr
@@ -0,0 +1,131 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkgp_configure_autotools() {
+ local _ppca_rc=0;
+
+ if ! [ -x "${PKG_CONFIGURE:-}" ]; then
+ _ppca_rc=2;
+ elif [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
+ || [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ];
+ then
+ _ppca_rc=2;
+ else
+ ex_rtl_configure \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CONFIGURE}" "${PKG_CXX}" "${PKG_LD}" \
+ "${PKG_LIBTOOL}" "${PKG_PKG_CONFIG}" "${PKG_PYTHON:-}" "${PKG_RANLIB}" \
+ -- \
+ "${PKG_CONFIGURE_ARGS:-}" "${PKG_CONFIGURE_ARGS_EXTRA:-}" \
+ "${PKG_CONFIGURE_ARGS_LIST:-}" "${PKG_CONFIGURE_ARGS_EXTRA_LIST:-}" \
+ -- \
+ "${PKG_CFLAGS_CONFIGURE:-}" "${PKG_CFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CPPFLAGS_CONFIGURE:-}" "${PKG_CPPFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CXXFLAGS_CONFIGURE:-}" "${PKG_CXXFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_LDFLAGS_CONFIGURE:-}" "${PKG_LDFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_PKG_CONFIG_LIBDIR:-}" \
+ ;
+ _ppca_rc=$((${?} ? 1 : ${_ppca_rc}));
+ fi;
+
+ return "${_ppca_rc}";
+};
+
+pkgp_configure_cmake() {
+ local _ppcc_build_type="" _ppcc_rc=0 _ppcc_system_name="" _ppcc_system_processor="";
+
+ if [ "${PKG_CMAKE_LISTFILE:+1}" != 1 ]\
+ || ! [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/${PKG_CMAKE_LISTFILE}" ]; then
+ _ppcc_rc=2;
+ else
+ case "${BUILD_KIND}" in
+ debug) _ppcc_build_type="Debug"; ;;
+ release) _ppcc_build_type="Release"; ;;
+ *) return 1; ;;
+ esac;
+
+ case "${PKG_BUILD_TYPE}" in
+ native)
+ _ppcc_system_name="Midipix";
+ case "${ARCH}" in
+ nt32) _ppcc_system_processor="i686"; ;;
+ nt64) _ppcc_system_processor="x86_64"; ;;
+ esac;
+ esac;
+
+ ex_rtl_configure_cmake \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CMAKE}" "${PKG_CXX}" \
+ "${PKG_LD}" "${PKG_PKG_CONFIG}" "${PKG_PYTHON:-}" "${PKG_RANLIB}" \
+ -- \
+ "${_ppcc_build_type}" "${PKG_BUILD_TYPE}" "${PKG_CMAKE_ARGS:-}" \
+ "${PKG_CMAKE_ARGS_EXTRA:-}" "${PKG_PREFIX}" \
+ "${PKG_BASE_DIR}/${PKG_SUBDIR}" "${_ppcc_system_name}" \
+ "${_ppcc_system_processor}" \
+ -- \
+ "${PKG_CFLAGS_CONFIGURE:-}" "${PKG_CFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CPPFLAGS_CONFIGURE:-}" "${PKG_CPPFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CXXFLAGS_CONFIGURE:-}" "${PKG_CXXFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_LDFLAGS_CONFIGURE:-}" "${PKG_LDFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_PKG_CONFIG_LIBDIR:-}" \
+ ;
+ _ppcc_rc=$((${?} ? 1 : ${_ppcc_rc}));
+ fi;
+
+ return "${_ppcc_rc}";
+};
+
+pkgp_configure_sofort() {
+ local _ppcs_rc=0;
+
+ if ! [ -x "${PKG_CONFIGURE:-}" ]; then
+ _ppcs_rc=2;
+ elif ! [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
+ && ! [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ]; then
+ _ppcs_rc=2;
+ else
+ ex_rtl_configure_sofort \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CONFIGURE}" "${PKG_CXX}" \
+ "${PKG_LD}" "${PKG_RANLIB}" \
+ -- \
+ "${PKG_NATIVE_AR:-}" "${PKG_NATIVE_CC:-}" "${PKG_NATIVE_CXX:-}" \
+ "${PKG_NATIVE_LD:-}" "${PKG_NATIVE_RANLIB:-}" \
+ -- \
+ "${PKG_CONFIGURE_ARGS:-}" "${PKG_CONFIGURE_ARGS_EXTRA:-}" \
+ -- \
+ "${PKG_CFLAGS_CONFIGURE:-}" "${PKG_CFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CPPFLAGS_CONFIGURE:-}" "${PKG_CPPFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_CXXFLAGS_CONFIGURE:-}" "${PKG_CXXFLAGS_CONFIGURE_EXTRA:-}" \
+ "${PKG_LDFLAGS_CONFIGURE:-}" "${PKG_LDFLAGS_CONFIGURE_EXTRA:-}" \
+ -- \
+ "${PKG_SOFORT_NATIVE_CFLAGS:-}" "${PKG_SOFORT_NATIVE_CFLAGS_EXTRA:-}" \
+ "${PKG_SOFORT_NATIVE_CPPFLAGS:-}" "${PKG_SOFORT_NATIVE_CPPFLAGS_EXTRA:-}" \
+ "${PKG_SOFORT_NATIVE_CXXFLAGS:-}" "${PKG_SOFORT_NATIVE_CXXFLAGS_EXTRA:-}" \
+ "${PKG_SOFORT_NATIVE_LDFLAGS:-}" "${PKG_SOFORT_NATIVE_LDFLAGS_EXTRA:-}" \
+ ;
+ _ppcs_rc=$((${?} ? 1 : ${_ppcs_rc}));
+ fi;
+
+ return "${_ppcs_rc}";
+};
+
+pkg_configure() {
+ local _pc_group_name="${1}" _pc_pkg_name="${2}" _pc_restart_at="${3}" \
+ _pc_rc=0 _pc_type="";
+
+ for _pc_type in autotools cmake sofort; do
+ if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
+ && [ "${PKG_CONFIGURE_TYPE}" != "${_pc_type}" ]; then
+ continue;
+ else
+ pkgp_configure_${_pc_type} "${@}"; _pc_rc="${?}";
+ case "${_pc_rc}" in
+ 0|1) return "${_pc_rc}"; ;;
+ 2) _pc_rc=0; continue; ;;
+ esac;
+ fi;
+ done;
+ return "${_pc_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_configure_autotools.subr b/subr.pkg/pkg_configure_autotools.subr
new file mode 100644
index 00000000..0a7a62d1
--- /dev/null
+++ b/subr.pkg/pkg_configure_autotools.subr
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_configure_autotools() {
+ local _pca_group_name="${1}" _pca_pkg_name="${2}" _pca_restart_at="${3}" \
+ _pca_rc=0;
+
+ if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
+ && [ "${PKG_CONFIGURE_TYPE}" != "autotools" ]; then
+ _pca_rc=0;
+ else
+ ex_rtl_configure_prepare \
+ "${PKG_BUILD_TYPE}" \
+ "${PKG_BUILD_DIR}" \
+ "${PKG_CONFIG_CACHE:-}" \
+ "${PKG_CONFIG_CACHE_LOCAL:-}" \
+ "${PKG_CONFIG_CACHE_EXTRA:-}" \
+ "${MIDIPIX_BUILD_PWD}/etc/config.guess" \
+ "${MIDIPIX_BUILD_PWD}/etc/config.sub" \
+ "${PKG_AUTOCONF_CONFIG_GUESS:-copy}" \
+ "${PKG_FORCE_AUTORECONF:-0}" \
+ "${PKG_BASE_DIR}/${PKG_SUBDIR}" \
+ "${PKG_PKG_CONFIG:-}" \
+ "${PKG_PKG_CONFIG_LIBDIRG:-}" \
+ "${PKG_PREFIX}";
+ _pca_rc="${?}";
+ fi;
+
+ return "${_pca_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_configure_clean.subr b/subr.pkg/pkg_configure_clean.subr
new file mode 100644
index 00000000..3dba1036
--- /dev/null
+++ b/subr.pkg/pkg_configure_clean.subr
@@ -0,0 +1,22 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_configure_clean() {
+ local _pcc_group_name="${1}" _pcc_pkg_name="${2}" _pcc_restart_at="${3}";
+
+ if ex_pkg_state_test \
+ "${_pcc_pkg_name}" \
+ "configure_patch_pre,configure_autotools,configure_patch,configure" \
+ "${_pcc_restart_at}"\
+ && [ "${PKG_BUILD_DIR:-}" != "${PKG_SUBDIR:-}" ];
+ then
+ rtl_fileop rm "${PKG_BUILD_DIR}" || return 1;
+ rtl_fileop mkdir "${PKG_BUILD_DIR}" || return 1;
+ rtl_fileop cd "${PKG_BUILD_DIR}" || return 1;
+ fi;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_configure_patch.subr b/subr.pkg/pkg_configure_patch.subr
new file mode 100644
index 00000000..62c4f382
--- /dev/null
+++ b/subr.pkg/pkg_configure_patch.subr
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_configure_patch_pre() {
+ pkg_configure_patch "${@}" "patches_pre";
+};
+
+pkg_configure_patch() {
+ local _pcp_group_name="${1}" _pcp_pkg_name="${2}" \
+ _pcp_restart_at="${3}" _pcp_type="${4:-patches}" \
+ _pcp_patch_cwd="" _pcp_strip_count=0;
+
+ if [ -x "${PKG_BASE_DIR}/${PKG_SUBDIR}/srcprep.sh" ]; then
+ return 0;
+ fi;
+
+ if [ "${PKG_FNAME:+1}" = 1 ]\
+ && [ "${PKG_URLS_GIT:+1}" = 1 ];
+ then
+ _pcp_patch_cwd="${PKG_BASE_DIR}";
+ _pcp_strip_count=0;
+ else
+ _pcp_patch_cwd="${PKG_BASE_DIR}/${PKG_SUBDIR}";
+ _pcp_strip_count=1;
+ fi;
+
+ if ! rtl_patch_files \
+ "${_pcp_patch_cwd}" "${_pcp_strip_count}" \
+ ex_pkg_get_default -- -- \
+ "${_pcp_pkg_name}" "${PKG_VERSION:-}" "${_pcp_type}";
+ then
+ return 1;
+ fi;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_configure_patch_pre.subr b/subr.pkg/pkg_configure_patch_pre.subr
new file mode 120000
index 00000000..f26702c8
--- /dev/null
+++ b/subr.pkg/pkg_configure_patch_pre.subr
@@ -0,0 +1 @@
+pkg_configure_patch.subr \ No newline at end of file
diff --git a/subr.pkg/pkg_fetch_clean.subr b/subr.pkg/pkg_fetch_clean.subr
new file mode 100644
index 00000000..0ac5c970
--- /dev/null
+++ b/subr.pkg/pkg_fetch_clean.subr
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_fetch_clean() {
+ local _pfc_group_name="${1}" _pfc_pkg_name="${2}" _pfc_restart_at="${3}" \
+ _pfc_dname="";
+
+ if [ "${PKG_URLS_GIT:+1}" = 1 ]; then
+ if [ "${PKG_SUBDIR:+1}" = 1 ]\
+ && [ "${PKG_SUBDIR}" != "${PKG_URLS_GIT%%=*}" ]; then
+ rtl_fileop rm "${PKG_SUBDIR}";
+ fi;
+
+ for _pfc_dname in ${PKG_URLS_GIT}; do
+ _pfc_dname="${_pfc_dname%%=*}"; rtl_fileop rm "${_pfc_dname}";
+ done;
+ elif [ "${PKG_SUBDIR:+1}" = 1 ]; then
+ rtl_fileop rm "${PKG_SUBDIR}";
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_fetch_download.subr b/subr.pkg/pkg_fetch_download.subr
new file mode 100644
index 00000000..455f32ed
--- /dev/null
+++ b/subr.pkg/pkg_fetch_download.subr
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_fetch_download() {
+ local _pfd_group_name="${1}" _pfd_pkg_name="${2}" _pfd_restart_at="${3}";
+
+ if [ "${ARG_FETCH_FORCE:-}" != "offline" ]; then
+ if [ "${PKG_URL:+1}" = 1 ]; then
+ if ! rtl_fetch_dlcache_subdir \
+ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \
+ "${PKG_INHERIT_FROM:-}";
+ then
+ return 1;
+ elif ! rtl_fetch_url_wget \
+ "${PKG_URL}" "${PKG_SHA256SUM}" "${BUILD_DLCACHEDIR}/${PKG_NAME}"\
+ "${PKG_FNAME}" "${PKG_NAME}" "${PKG_MIRRORS:-}"; then
+ return 1;
+ fi;
+ fi;
+
+ if [ "${PKG_URLS_GIT:+1}" = 1 ]; then
+ if ! rtl_fetch_dlcache_subdir \
+ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \
+ "${PKG_INHERIT_FROM:-}";
+ then
+ return 1;
+ elif ! rtl_fetch_urls_git \
+ "${BUILD_DLCACHEDIR}/${PKG_NAME}" "${DEFAULT_GIT_ARGS}" "${PKG_BASE_DIR}"\
+ "${PKG_NAME}" "${PKG_MIRRORS_GIT:-}" ${PKG_URLS_GIT}; then
+ return 1;
+ fi;
+ fi;
+
+ rtl_fetch_clean_dlcache \
+ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \
+ "${PKG_FNAME:-}" "${PKG_URLS_GIT:-}";
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_fetch_extract.subr b/subr.pkg/pkg_fetch_extract.subr
index b86c490a..14839ce5 100644
--- a/subr/pkg_fetch_extract.subr
+++ b/subr.pkg/pkg_fetch_extract.subr
@@ -1,37 +1,53 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
pkgp_fetch_extract_type() {
- local _fname="${1}";
+ local _ppfet_fname="${1}" _ppfet_rtype="${2#\$}";
+
if [ "${1##*.tar.}" != "${1}" ]; then
- printf "%s" "${1##*.tar.}";
+ eval ${_ppfet_rtype}='${1##*.tar.}';
elif [ "${1##*.t}" != "${1}" ]; then
- printf "%s" "${1##*.t}";
+ eval ${_ppfet_rtype}='${1##*.t}';
fi;
+ return 0;
};
pkg_fetch_extract() {
- if [ -n "${PKG_URL:-}" ]; then
- _oldpwd="${PWD}";
+ local _pfe_group_name="${1}" _pfe_pkg_name="${2}" _pfe_restart_at="${3}" \
+ _pfe_type="";
+
+ if [ "${PKG_URL:+1}" = 1 ]; then
+ _pfe_oldpwd="${PWD}";
+
if ! rtl_fileop cd "${PKG_BASE_DIR}"\
|| ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_SUBDIR}"; then
- rtl_fileop cd "${_oldpwd}"; return 1;
+ rtl_fileop cd "${_pfe_oldpwd}"; return 1;
else
- case "$(pkgp_fetch_extract_type "${PKG_NAME}")" in
+ pkgp_fetch_extract_type "${PKG_NAME}" \$_pfe_type;
+
+ case "${_pfe_type}" in
bz2) bunzip2 -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
gz) gunzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
lz) lzip -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
xz) xz -d < "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}" | tar -C "${PKG_BASE_DIR}" -xf -; ;;
*) tar -C "${PKG_BASE_DIR}" -xf "${BUILD_DLCACHEDIR}/${PKG_NAME}/${PKG_FNAME}"; ;;
esac;
+
if [ "${?}" -ne 0 ]; then
- rtl_fileop cd "${_oldpwd}"; return 1;
+ rtl_fileop cd "${_pfe_oldpwd}"; return 1;
else
- rtl_fileop cd "${_oldpwd}";
+ rtl_fileop cd "${_pfe_oldpwd}";
fi;
fi;
fi;
+
+ if [ -x "${PKG_BASE_DIR}/${PKG_SUBDIR}/srcprep.sh" ]; then
+ "${PKG_BASE_DIR}/${PKG_SUBDIR}/srcprep.sh";
+ fi;
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_install.subr b/subr.pkg/pkg_install.subr
index e6e2497e..8e795fa4 100644
--- a/subr/pkg_install.subr
+++ b/subr.pkg/pkg_install.subr
@@ -1,13 +1,16 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
pkg_install() {
- local _destdir="" _destdir_prefix="" _pkglist_name="";
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _destdir="" _destdir_prefix="" _pkglist_name="";
+
if ! rtl_fileop mkdir "${PKG_PREFIX}"; then
return 1;
else for _destdir in "${PKG_DESTDIR}:${PKG_PREFIX}" "${PKG_DESTDIR_HOST}:${PREFIX}"; do
- rtl_lassign "_destdir _destdir_prefix" ":" "${_destdir}";
+ rtl_lassignV "_destdir _destdir_prefix" ":" "${_destdir}";
if [ -e "${_destdir}" ]; then
(set +o errexit -o noglob; rtl_flock_acquire 4 || exit "${?}";
trap "rm -f \"${BUILD_WORKDIR}/install.lock\"" EXIT;
@@ -32,4 +35,4 @@ pkg_install() {
fi;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_install_clean.subr b/subr.pkg/pkg_install_clean.subr
new file mode 100644
index 00000000..7a045d73
--- /dev/null
+++ b/subr.pkg/pkg_install_clean.subr
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_install_clean() {
+ local _pic_group_name="${1}" _pic_pkg_name="${2}" _pic_restart_at="${3}";
+
+ if [ "${PKG_DESTDIR:+1}" = 1 ]; then
+ rtl_fileop rm "${PKG_DESTDIR}" || return 1;
+ rtl_fileop mkdir "${PKG_DESTDIR}" || return 1;
+ fi;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_install_files.subr b/subr.pkg/pkg_install_files.subr
new file mode 100644
index 00000000..f37257c6
--- /dev/null
+++ b/subr.pkg/pkg_install_files.subr
@@ -0,0 +1,94 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkgp_install_files() {
+ if [ "${PKG_INSTALL_FILES:+1}" = 1 ]; then
+ if ! rtl_install -v "${PKG_DESTDIR}" ${PKG_INSTALL_FILES}; then
+ return 1;
+ fi;
+ fi;
+ return 0;
+};
+
+pkgp_install_files_v2() {
+ local _ppifv2_status="" _ppifv2_vflag="";
+
+ if [ "${PKG_INSTALL_FILES_V2:+1}" = 1 ]; then
+ if rtl_lmatch \$ARG_VERBOSE_TAGS "install" ","; then
+ _ppifv2_vflag="-v";
+ fi;
+ if ! rtl_install_v2 \
+ \$_ppifv2_status \
+ -p "_builddir=${PKG_BUILD_DIR}" \
+ -p "_destdir=${PKG_BASE_DIR}/${PKG_DESTDIR}" \
+ -p "_destdir_host=${PKG_BASE_DIR}/${PKG_DESTDIR_HOST}" \
+ -p "_files=${MIDIPIX_BUILD_PWD}/files/${PKG_NAME}" \
+ -p "_name=${PKG_NAME}" \
+ -p "_prefix=${PKG_PREFIX}" \
+ -p "_prefix_host=${PREFIX}" \
+ -p "_prefix_native=${PREFIX_NATIVE}" \
+ -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \
+ -p "_target=${PKG_TARGET}" \
+ -p "_version=${PKG_VERSION:-}" \
+ -p "_workdir=${BUILD_WORKDIR}" \
+ ${_ppifv2_vflag} -- "${PKG_DESTDIR}" \
+ "${PKG_INSTALL_FILES_V2}";
+ then
+ return 1;
+ fi;
+ fi;
+};
+
+pkgp_install_files_libraries() {
+ if [ "${PKG_BUILD_TYPE}" != "host" ]; then
+ ex_rtl_install_library_archives "${PKG_DESTDIR}" "${PKG_TARGET}-mdso" || return 1;
+ fi;
+ if [ "${PKG_NO_PURGE_LA_FILES:-0}" -eq 0 ]; then
+ ex_rtl_purge_la_files "${PKG_DESTDIR}" || return 1;
+ fi;
+ return 0;
+};
+
+pkgp_install_files_perms() {
+ rtl_set_perms_treeV \
+ 0755 0755 0644 \
+ "${PKG_DESTDIR}" \
+ "${PKG_DESTDIR_HOST}";
+ return "${?}";
+};
+
+pkgp_install_files_strip() {
+ local _ppifs_pkg_minipixfl=0 _ppifs_rc=0;
+
+ rtl_match "${PKG_NAME}" "*_minipix"; _ppifs_pkg_minipixfl="${?}";
+ if [ \( "${_ppifs_pkg_minipixfl}" -eq 0 \) -a \( "${ARG_DEBUG_MINIPIX:-0}" -eq 0 \) ]\
+ || [ \( "${BUILD_KIND}" = release \) -a \( "${PKG_BUILD_TYPE}" = native \) ]; then
+ ex_rtl_strip_files \
+ "${PKG_TARGET}-strip" \
+ "${PKG_DESTDIR}" \
+ -- \
+ rtl_log_msgV "pkg_strip" "${MSG_pkg_strip}";
+ _ppifs_rc="${?}";
+ fi;
+
+ return "${_ppifs_rc}";
+};
+
+pkg_install_files() {
+ local _pif_group_name="${1}" _pif_pkg_name="${2}" _pif_restart_at="${3}";
+
+ if ! pkgp_install_files\
+ || ! pkgp_install_files_v2\
+ || ! pkgp_install_files_perms\
+ || ! ex_rtl_fixup_pkgconfig_paths "${PKG_DESTDIR}"\
+ || ! pkgp_install_files_strip\
+ || ! pkgp_install_files_libraries;
+ then
+ return 1;
+ fi;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_install_make.subr b/subr.pkg/pkg_install_make.subr
new file mode 100644
index 00000000..1fb896d7
--- /dev/null
+++ b/subr.pkg/pkg_install_make.subr
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_install_make() {
+ local _pim_group_name="${1}" _pim_pkg_name="${2}" _pim_restart_at="${3}" \
+ _pim_ranlib="" _pim_rc=0 _pim_subdir="";
+
+ for _pim_subdir in ${PKG_MAKE_SUBDIRS:-:}; do
+ if [ "${PKG_RANLIB_INSTALL:+1}" = 1 ]; then
+ _pim_ranlib="${PKG_RANLIB_INSTALL}";
+ else
+ _pim_ranlib="${PKG_RANLIB}";
+ fi;
+ if [ "${_pim_subdir}" = ":" ]; then
+ _pim_subdir="";
+ fi;
+
+ ex_rtl_make \
+ "${PKG_AR}" "${PKG_CC}" "${PKG_CXX}" "${PKG_CCLD}" "${PKG_LIBTOOL}" \
+ "${PKG_MAKE}" "${PKG_PKG_CONFIG}" "${_pim_ranlib}" \
+ -- \
+ 1 "${_pim_subdir}" \
+ -- \
+ "${PKG_MAKEFLAGS_INSTALL:-}" "${PKG_MAKEFLAGS_INSTALL_EXTRA:-}" \
+ "${PKG_MAKEFLAGS_INSTALL_LIST:-}" "${PKG_MAKEFLAGS_INSTALL_EXTRA_LIST:-}" \
+ "${PKG_MAKEFLAGS_LOADAVG:-}" "${PKG_MAKEFLAGS_PARALLELISE:-}" \
+ "${PKG_MAKEFLAGS_VERBOSITY:-}" \
+ -- \
+ "" "" "" "" "" "" "" "" "" \
+ -- \
+ "${PKG_MAKE_INSTALL_VNAME:-DESTDIR}=${PKG_DESTDIR}/" \
+ "${PKG_INSTALL_TARGET:-install}" \
+ ;
+ _pim_rc="${?}";
+
+ if [ "${_pim_rc}" -ne 0 ]; then
+ return 1;
+ fi;
+ done;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.pkg/pkg_install_rpm.subr b/subr.pkg/pkg_install_rpm.subr
new file mode 100644
index 00000000..83b6841f
--- /dev/null
+++ b/subr.pkg/pkg_install_rpm.subr
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_install_rpm() {
+ local _pir_group_name="${1}" _pir_pkg_name="${2}" _pir_restart_at="${3}" \
+ _pir_rc=0 _pir_url="" _pir_version="" _pir_version_rpm="";
+
+ if rtl_lmatch \$ARG_DIST "rpm" ","\
+ && [ "${PKG_RPM_DISABLE:-0}" -eq 0 ]\
+ && command which rpmbuild >/dev/null 2>&1;
+ then
+ ex_rtl_expand_rpm_version \
+ \$_pir_url \$_pir_version \$_pir_version_rpm \
+ "${PKG_BASE_DIR}/${PKG_SUBDIR}" \
+ "${PKG_URL:-}" "${DEFAULT_GITROOT_HEAD}" "${PKG_URLS_GIT:-}" \
+ "${PKG_VERSION:-}" || return 1;
+ ex_rtl_build_rpm \
+ "${PKG_DESTDIR}" \
+ "${DEFAULT_RPM_JOBS_MAX}" "${DEFAULT_RPM_JOBS_SEMAPHORE}" \
+ "${DEFAULT_RPM_JOBS_WAIT}" \
+ "${PKG_NAME}" \
+ "${PREFIX_RPM}" \
+ "${MIDIPIX_BUILD_PWD}/etc/package.spec" \
+ "${PKG_BASE_DIR}/${PKG_NAME}-${_pir_version_rpm}.spec" \
+ "${BUILD_WORKDIR}" \
+ "${PREFIX_RPM}/${PKG_NAME}-${_pir_version_rpm}" \
+ "${_pir_url}" \
+ "${_pir_version}" "${_pir_version_rpm}" || return 1;
+ fi;
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_install_subdirs.subr b/subr.pkg/pkg_install_subdirs.subr
index c9e4cd39..f36c4b6d 100644
--- a/subr/pkg_install_subdirs.subr
+++ b/subr.pkg/pkg_install_subdirs.subr
@@ -1,21 +1,27 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
pkg_install_subdirs() {
- local _spec="";
- for _spec in \
+ local _pis_group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _pis_gspec="";
+
+ for _pis_gspec in \
"${PKG_INSTALL_FILES_DESTDIR:-}" \
"${PKG_INSTALL_FILES_DESTDIR_EXTRA:-}"; do
- if ! rtl_install "${PKG_DESTDIR}" ${_spec}; then
+ if ! rtl_install "${PKG_DESTDIR}" ${_pis_gspec}; then
return 1;
fi;
done;
+
if [ "${PKG_PREFIX%/}" = "${PREFIX_NATIVE%/}" ]; then
if ! rtl_install "${PKG_DESTDIR}/${DEFAULT_TARGET}" ${PKG_INSTALL_FILES_DESTDIR}; then
return 1;
fi;
fi;
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl.subr b/subr.rtl/rtl.subr
index 532cb514..1c51054a 100644
--- a/subr.rtl/rtl.subr
+++ b/subr.rtl/rtl.subr
@@ -1,13 +1,21 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
-rtl_date() { command date "+${1:-${DEFAULT_TIMESTAMP_FMT:-"%Y/%m/%d %H:%M:%S"}}"; };
-rtl_set_IFS_nl() { IFS="
-"; };
-rtl_set_var_unsafe() { [ -n "${2}" ] && eval ${1}=\"${2}\" || return 0; };
+# <SPACE><HT><LF>
+RTL_IFS_ORIG="
+";
+
+# <LF>
+RTL_NL="
+";
+
+rtl_date() { local _rdate="${1#\$}"; shift; eval ${_rdate}=\"\$\(command date \"+\${1:-\${DEFAULT_TIMESTAMP_FMT:-\"%Y/%m/%d %H:%M:%S\"}}\"\)\"; };
+rtl_set_IFS_nl() { IFS="${RTL_NL}"; };
rtl_test_cmd() { command -v "${1}" >/dev/null; };
rtl_uniq() { if [ "${#}" -gt 0 ]; then printf "%s" "${*}" | sed 's/ /\n/g' | awk '!x[$0]++' | paste -s -d" "; fi; };
+rtl_uniq2() { eval set -- \${${1#\$}}; if [ "${#}" -gt 0 ]; then printf "%s" "${*}" | sed 's/ /\n/g' | awk '!x[$0]++' | paste -s -d" "; fi; };
rtl_unset_vars() { while [ ${#} -gt 0 ]; do unset "${1}"; shift; done; };
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_complex.subr b/subr.rtl/rtl_complex.subr
index 1e13fce7..64fcea57 100644
--- a/subr.rtl/rtl_complex.subr
+++ b/subr.rtl/rtl_complex.subr
@@ -1,83 +1,93 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtl_export_vars() - export or unset list of variables
+# @[-u]: unset instead of exporting variables
+# @...: list of variable name-value pairs
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_export_vars() {
- local _unsetfl=0; [ "x${1}" = "x-u" ] && { _unsetfl=1; shift; };
+ local _rev_unsetfl=0;
+
+ if [ "x${1}" = "x-u" ]; then
+ _rev_unsetfl=1; shift;
+ fi;
while [ "${#}" -ge 2 ]; do
if [ "${2:+1}" = 1 ]\
- || [ "${_unsetfl}" -eq 1 ]; then
- case "${_unsetfl}" in
- 0) rtl_set_var_unsafe "${1}" "${2}"; export "${1}"; ;;
+ || [ "${_rev_unsetfl}" -eq 1 ]; then
+ case "${_rev_unsetfl}" in
+ 0) rtl_set_var_unsafe "${1}" "${2}";
+ export "${1}"; ;;
1) unset "${1}"; ;;
esac;
fi; shift 2;
done;
-};
-rtl_filter_vars() {
- local _fn="${1}" _fnfl=0 _qchar="" _var_spec="" _vars="" _vname="" IFS;
- rtl_set_IFS_nl;
- for _var_spec in $(set); do
- case "${_qchar}" in
- "\"") if [ "${_var_spec%\"}" != "${_var_spec}" ]; then
- _qchar="";
- fi;
- if [ "${_fnfl:-0}" -eq 1 ]; then
- _vars="$(rtl_lconcat "${_vars}" "${_var_spec}" "\n")";
- fi;
- continue; ;;
- "\'") if [ "${_var_spec%\'}" != "${_var_spec}" ]; then
- _qchar="";
- fi;
- if [ "${_fnfl:-0}" -eq 1 ]; then
- _vars="$(rtl_lconcat "${_vars}" "${_var_spec}" "\n")";
- fi;
- continue; ;;
- *) case "${_var_spec}" in
- [!=]*=\"*\") _qchar=""; _vname="${_var_spec%%=\"*}"; ;;
- [!=]*=\"*) _qchar="\""; _vname="${_var_spec%%=\"*}"; ;;
- [!=]*=\'*\') _qchar=""; _vname="${_var_spec%%=\'*}"; ;;
- [!=]*=\'*) _qchar="\'"; _vname="${_var_spec%%=\'*}"; ;;
- [!=]*=*) _qchar=""; _vname="${_var_spec%%=*}"; ;;
- esac; ;;
- esac;
- if "${_fn}" "${_vname}"; then
- _vars="${_vars:+${_vars}
-}${_var_spec}"; _fnfl=1;
- else
- _fnfl=0;
- fi;
- done;
- printf "%s" "${_vars}";
+ return 0;
};
-rtl_head() {
- local _pattern="${1}" _s="${2}";
- while true; do
- if [ "${_s%%${_pattern}}" = "${_s}" ]; then
- break;
- else
- _s="${_s%%${_pattern}}";
- fi;
- done;
- printf "%s" "${_s}";
+#
+# rtl_percentage() - calculate percentage of two numbers
+# @_in: input number
+# @_max: input maximum
+# @_rs_out: out reference to percentage number
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_percentage() {
+ local _rp_in="${1}" _rp_max="${2}" _rp_rs_out="${3#\$}" \
+ _rp_perc;
+
+ _rp_perc=$((100 * ${_rp_in} + ${_rp_max} / 2));
+ _rp_perc=$((${_rp_perc} ? ${_rp_perc} / ${_rp_max} : ${_rp_perc}));
+
+ eval ${_rp_rs_out}='${_rp_perc}';
+ return 0;
};
-rtl_percentage() {
- local _in="${1}" _max="${2}" _perc;
- _perc="$((100 * ${_in} + ${_max} / 2))";
- _perc="$((${_perc} ? ${_perc} / ${_max} : ${_perc}))";
- printf "%d\n" "${_perc}";
+#
+# rtl_percentage2() - calculate percentage of two numbers
+# @_rin: in reference to input number
+# @_rmax: in reference to input maximum
+# @_rs_out: out reference to percentage number
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_percentage2() {
+ local _rp_rin="${1#\$}" _rp_rmax="${2#\$}" _rp_rs_out="${3#\$}" \
+ _rp_in=0 _rp_max=0 _rp_perc;
+
+ eval _rp_in=\"\${${_rp_rin}}\";
+ eval _rp_max=\"\${${_rp_rmax}}\";
+
+ _rp_perc=$((100 * ${_rp_in} + ${_rp_max} / 2));
+ _rp_perc=$((${_rp_perc} ? ${_rp_perc} / ${_rp_max} : ${_rp_perc}));
+
+ eval ${_rp_rs_out}='${_rp_perc}';
+ return 0;
};
+#
+# rtl_sunset() - unset variables
+# @_rset: in reference to list of variables to unset
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_sunset() {
- local _rs_rset="${1#\$}" _rs_kname="" IFS=" ";
- eval set -- '${'"${_rs_rset}"'}';
+ local _rs_rset="${1#\$}" \
+ IFS=" ";
+
+ eval set -- "\${${_rs_rset}}";
while [ "${#}" -gt 0 ]; do
- unset "${_rs_rset}${_rs_kname}"; shift;
+ unset "${_rs_rset}"; shift;
done; unset "${_rs_rset}";
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_fetch.subr b/subr.rtl/rtl_fetch.subr
index 5f557320..3ebd2d06 100644
--- a/subr.rtl/rtl_fetch.subr
+++ b/subr.rtl/rtl_fetch.subr
@@ -1,67 +1,72 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
-# N.B. URLs ($1) may contain `?' or '&' characters.
-rtl_fetch_url_wget() {
- local _urls="${1}" _sha256sum_src="${2}" _target_dname="${3}" _target_fname="${4}" _target_name="${5}" _mirrors="${6:-}"\
- _rc=0 _sha256sum_target="" _target_fname_full="" _url="" _url_base="" _urls_count=0 _urls_full="";
+#
+# rtl_fetch_clean_dlcache() - clean download cache for single package
+# @_dlcachedir: absolute pathname to download cache directory
+# @_name: single item name
+# @_fname_base: optional single item archive filename
+# @_urls_git: optional list of item Git URL(s)
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_fetch_clean_dlcache() {
+ local _pfdcd_dlcachedir="${1}" _pfdcd_name="${2}" \
+ _pfdcd_fname_base="${3}" _pfdcd_urls_git="${4}" \
+ _pfdcd_fname="" _pfdcd_skipfl=0 _pfdcd_url_spec="" \
+ _pfdcd_url_subdir="";
- _urls_full="${_urls}";
- for _url_base in ${_mirrors}; do
- _urls_full="$(rtl_lconcat "${_urls_full}" "${_url_base%/}/${_target_name}/${_target_fname}")";
- done;
- _urls_count="$(rtl_llength "${_urls_full}")";
- for _url in ${_urls_full}; do
- if [ -z "${_target_fname}" ]; then
- _target_fname="$(rtl_basename "${_url}")";
- fi;
- _target_fname_full="${_target_dname}/${_target_fname}";
- (set +o errexit -o noglob -o nounset;
- rtl_flock_acquire 4 || exit 1;
- trap "_rc=\"\${?}\"; rm -f \"${_target_fname_full}.fetching\"; exit \"\${_rc}\";" EXIT;
- if [ -z "${_sha256sum_src}" ]\
- || ! rtl_check_digest_file "${_target_fname_full}" "${_sha256sum_src}" "${_target_fname_full}.fetched"; then
- wget ${DEFAULT_WGET_ARGS} -O "${_target_fname_full}" "${_url}"; _rc="${?}";
- if [ "${_rc}" -ne 0 ]; then
- exit $((${_rc}+2));
- elif [ -n "${_sha256sum_src}" ]\
- && ! rtl_check_digest "${_target_fname_full}" "${_sha256sum_src}"; then
- exit 2;
- else
- printf "%s" "${RTL_CHECK_DIGEST_DIGEST}" > "${_target_fname_full}.fetched"; exit 0;
+ for _pfdcd_fname in \
+ $(cd "${_pfdcd_dlcachedir}/${_pfdcd_name}" 2>/dev/null &&
+ find -maxdepth 1 -mindepth 1 \
+ ${_pfdcd_fname_base:+-not -name "${_pfdcd_fname_base}"} \
+ ${_pfdcd_fname_base:+-not -name "${_pfdcd_fname_base}.fetched"});
+ do
+ _pfdcd_fname="${_pfdcd_fname#./}"; _pfdcd_skipfl=0;
+
+ for _pfdcd_url_spec in ${_pfdcd_urls_git}; do
+ _pfdcd_url_subdir="${_pfdcd_url_spec%%=*}"; _pfdcd_url_subdir="${_pfdcd_url_subdir##*/}";
+ if [ "${_pfdcd_fname%.git}" = "${_pfdcd_url_subdir}" ]; then
+ _pfdcd_skipfl=1; break;
fi;
- else
- exit 0;
- fi;) 4<>"${_target_fname_full}.fetching"; _rc="${?}"; : $((_urls_count-=1));
- case "${_rc}" in
- 0) break; ;;
- 1) if [ "${_urls_count}" -ge 1 ]; then
- rtl_log_msg "warning" "${MSG_rtl_fetch_lockfail_retryurl}" "${_url}";
- else
- rtl_log_msg "fatal" "${MSG_rtl_fetch_lockfail}" "${_url}";
- rtl_fileop rm "${_target_fname_full}"; break;
- fi; ;;
- 2) if [ "${_urls_count}" -ge 1 ]; then
- rtl_log_msg "warning" "${MSG_rtl_fetch_hashfail_retryurl}" "${_url}" "${_sha256sum_src}";
- else
- if _sha256sum_target="$(sha256sum "${_target_fname_full}" |\
- awk '{print $1}' 2>/dev/null)"; then
- rtl_log_msg "fatal" "${MSG_rtl_fetch_hashfail1}" "${_url}" "${_sha256sum_src}" "${_sha256sum_target}";
- else
- rtl_log_msg "fatal" "${MSG_rtl_fetch_hashfail2}" "${_url}" "${_sha256sum_src}";
- fi;
- rtl_fileop rm "${_target_fname_full}"; break;
- fi; ;;
- *) if [ "${_urls_count}" -ge 1 ]; then
- rtl_log_msg "warning" "${MSG_rtl_fetch_fail_retryurl}" "${_url}" "$((${_rc}-2))";
- else
- rtl_log_msg "fatal" "${MSG_rtl_fetch_fail}" "${_url}" "$((${_rc}-2))";
- rtl_fileop rm "${_target_fname_full}"; break;
- fi; ;;
- esac;
+ done;
+
+ if [ "${_pfdcd_skipfl}" -eq 0 ]; then
+ _pfdcd_fname="${_pfdcd_dlcachedir}/${_pfdcd_name}/${_pfdcd_fname}";
+ rtl_log_msgV "verbose" "${MSG_rtl_fetch_rm_redundant}" "${_pfdcd_fname}" "${_pfdcd_name}";
+ rtl_fileop rm "${_pfdcd_fname}";
+ fi;
done;
- return "${_rc}";
+
+ return 0;
+};
+
+#
+# rtl_fetch_dlcache_subdir() - create download cache subdirectory for single package
+# @_dlcachedir: absolute pathname to download cache directory
+# @_name: single item name
+# @_inherit_from: optional name of item @_name inherits from
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_fetch_dlcache_subdir() {
+ local _rfds_dlcachedir="${1}" _rfds_name="${2}" _rfds_inherit_from="${3}";
+
+ if [ "${_rfds_inherit_from:+1}" = 1 ]\
+ && ! [ -e "${_rfds_dlcachedir}/${_rfds_name}" ]\
+ && ! rtl_fileop ln_symbolic "${_rfds_inherit_from}" "${_rfds_dlcachedir}/${_rfds_name}";
+ then
+ return 1;
+ elif [ "${_rfds_inherit_from:+1}" != 1 ]\
+ && ! [ -e "${_rfds_dlcachedir}/${_rfds_name}" ]\
+ && ! rtl_fileop mkdir "${_rfds_dlcachedir}/${_rfds_name}";
+ then
+ return 1;
+ else
+ return 0;
+ fi;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_fetch_git.subr b/subr.rtl/rtl_fetch_git.subr
index d86db0de..db8a8614 100644
--- a/subr.rtl/rtl_fetch_git.subr
+++ b/subr.rtl/rtl_fetch_git.subr
@@ -1,70 +1,85 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtlp_fetch_url_git() - fetch Git URL for item
+# @_dlcachedir: absolute pathname to download cache directory
+# @_git_args: optional argument string to pass to git(1)
+# @_git_branch: name of Git branch
+# @_mirrors: optional list of mirror base URLs
+# @_name: single item name
+# @_target_subdir: target subdirectory name
+# @_target_dname: target directory name
+# @_url: single Git URL
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtlp_fetch_url_git() {
- local _cache_dname="${1}" _git_args="${2}" _git_branch="${3}" _mirrors="${4}" \
- _pkg_name="${5}" _subdir="${6}" _tgtdir="${7}" _url="${8}" _cache_dname_full="" \
- _clonefl=0 _git_pull_log_fname="" _oldpwd="" _url_base="";
+ local _rpfug_dlcachedir="${1}" _rpfug_git_args="${2}" _rpfug_git_branch="${3}" \
+ _rpfug_mirrors="${4}" _rpfug_name="${5}" _rpfug_target_subdir="${6}" \
+ _rpfug_target_dname="${7}" _rpfug_url="${8}" \
+ _rpfug_dlcachedir_full="" _rpfug_clonefl=0 _rpfug_dname="" \
+ _rpfug_oldpwd="" _rpfug_url_base="";
- _cache_dname_full="${_cache_dname}/${_subdir##*/}";
+ _rpfug_dlcachedir_full="${_rpfug_dlcachedir}/${_rpfug_target_subdir##*/}";
(set -o errexit -o noglob -o nounset;
rtl_flock_acquire 4 || exit "${?}";
- trap "rm -f \"${_cache_dname_full%%[/]}.fetching\"" EXIT;
- if [ -e "${_cache_dname_full}" ]; then
- (rtl_fileop cd "${_cache_dname_full}" || exit 1;
- _git_pull_log_fname="$(mktemp)" || exit 1;
- trap 'rm -f "${_git_pull_log_fname}" 2>/dev/null' EXIT HUP INT TERM USR1 USR2;
- if ! git pull ${_git_args} origin "${_git_branch:-main}" >"${_git_pull_log_fname}" 2>&1; then
- if grep -q '^fatal: refusing to merge unrelated histories$' "${_git_pull_log_fname}"; then
- cat "${_git_pull_log_fname}"; printf "Detected forced push(es).\n";
- elif grep -q '^Automatic merge failed; fix conflicts and then commit the result.$' "${_git_pull_log_fname}"; then
- cat "${_git_pull_log_fname}"; printf "Detected forced push(es).\n"; git merge --abort;
- else
- cat "${_git_pull_log_fname}"; exit 1;
- fi;
- while true; do
- printf "Attempting git-reset(1) --hard HEAD^ and git-pull(1)...\n";
- if ! git reset --hard "HEAD^"; then
- exit 1;
- elif git pull ${_git_args} origin "${_git_branch:-main}"; then
- exit 0;
- fi;
- done;
- else
- cat "${_git_pull_log_fname}"; exit 0;
- fi;) || return 1;
- (rtl_fileop cd "${_cache_dname_full}" &&\
+ trap "rm -f \"${_rpfug_dlcachedir_full%%[/]}.fetching\"" EXIT;
+
+ if [ -e "${_rpfug_dlcachedir_full}" ]; then
+ (rtl_fileop cd "${_rpfug_dlcachedir_full}" || exit 1;
+ git pull --rebase ${_rpfug_git_args} origin "${_rpfug_git_branch:-main}";
+ exit "${?}";) || return 1;
+ (rtl_fileop cd "${_rpfug_dlcachedir_full}" &&\
git submodule update) || return 1;
- else if git clone ${_git_args} -b "${_git_branch:-main}" "${_url}" "${_cache_dname_full}"; then
- _clonefl=1;
- elif [ "${_mirrors}" = "skip" ]; then
+ else
+ if git clone \
+ ${_rpfug_git_args} \
+ -b "${_rpfug_git_branch:-main}" \
+ "${_rpfug_url}" \
+ "${_rpfug_dlcachedir_full}";
+ then
+ _rpfug_clonefl=1;
+ elif [ "${_rpfug_mirrors}" = "skip" ]; then
return 1;
- else for _url_base in ${_mirrors}; do
- if git clone ${_git_args} -b "${_git_branch:-main}" "${_url_base}/${_pkg_name}/${_subdir}" "${_cache_dname_full}"; then
- _clonefl=1; break;
+ else
+ for _rpfug_url_base in ${_rpfug_mirrors}; do
+ if git clone \
+ ${_rpfug_git_args} \
+ -b "${_rpfug_git_branch:-main}" \
+ "${_rpfug_url_base}/${_rpfug_name}/${_rpfug_target_subdir}" \
+ "${_rpfug_dlcachedir_full}";
+ then
+ _rpfug_clonefl=1; break;
fi;
done;
fi;
- if [ "${_clonefl}" -eq 0 ]; then
+
+ if [ "${_rpfug_clonefl}" -eq 0 ]; then
return 1;
- else if [ -n "${_git_branch}" ]; then
- (rtl_fileop cd "${_cache_dname_full}" &&\
- git checkout "${_git_branch}") || return 1;
+ else if [ "${_rpfug_git_branch:+1}" = 1 ]; then
+ (rtl_fileop cd "${_rpfug_dlcachedir_full}" &&\
+ git checkout "${_rpfug_git_branch}") || return 1;
fi;
- (rtl_fileop cd "${_cache_dname_full}" &&\
+ (rtl_fileop cd "${_rpfug_dlcachedir_full}" &&\
git submodule update --init) || return 1;
fi;
fi;
- if [ "${_cache_dname}" != "${_tgtdir}" ]; then
- _oldpwd="${PWD}"; rtl_fileop cd "${_tgtdir}" || return 1;
- rtl_fileop rm "${_tgtdir}/${_subdir}" || return 1;
- if [ ! -e "$(rtl_dirname "${_tgtdir}/${_subdir}")" ]; then
- rtl_fileop mkdir "$(rtl_dirname "${_tgtdir}/${_subdir}")";
+
+ if [ "${_rpfug_dlcachedir}" != "${_rpfug_target_dname}" ]; then
+ _rpfug_oldpwd="${PWD}"; rtl_fileop cd "${_rpfug_target_dname}" || return 1;
+ rtl_fileop rm "${_rpfug_target_dname}/${_rpfug_target_subdir}" || return 1;
+ _rpfug_dname="${_rpfug_target_dname}/${_rpfug_target_subdir}"; rtl_dirname \$_rpfug_dname;
+
+ if ! [ -e "${_rpfug_dname}" ]; then
+ rtl_fileop mkdir "${_rpfug_dname}";
fi;
- rtl_fileop cp "${_cache_dname_full}" "${_tgtdir}/${_subdir}" || return 1;
- rtl_fileop cd "${_oldpwd}" || return 1;
- fi) 4<>"${_cache_dname_full%%[/]}.fetching";
+
+ rtl_fileop cp "${_rpfug_dlcachedir_full}" "${_rpfug_target_dname}/${_rpfug_target_subdir}" || return 1;
+ rtl_fileop cd "${_rpfug_oldpwd}" || return 1;
+ fi) 4<>"${_rpfug_dlcachedir_full%%[/]}.fetching";
if [ "${?}" -eq 0 ]; then
cd "$(pwd)";
@@ -73,44 +88,92 @@ rtlp_fetch_url_git() {
fi;
};
+#
+# rtlp_fetch_mirror_urls_git() - setup mirror for Git URL(s)
+# @_git_args: optional argument string to pass to git(1)
+# @_target_dname: target directory name
+# @...: list of Git URLs
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_fetch_mirror_urls_git() {
- local _git_args="${1}" _tgtdir="${2}" _rc=0 _repo_dname="" _subdir="" _url="" _url_spec=""; shift 2;
+ local _rfmug_git_args="${1}" _rfmug_target_dname="${2}" \
+ _rfmug_dname="" _rfmug_rc=0 _rfmug_repo_dname="" _rfmug_target_subdir="" \
+ _rfmug_url="" _rfmug_url_spec=""; shift 2;
- for _url_spec in "${@}"; do
- _subdir="${_url_spec%=*}"; _subdir="${_subdir##*/}"; _url="${_url_spec#*=}"; _url="${_url%@*}";
- _repo_dname="${_subdir}"; [ "${_repo_dname%.git}" = "${_repo_dname}" ] && _repo_dname="${_repo_dname}.git";
+ for _rfmug_url_spec in "${@}"; do
+ _rfmug_target_subdir="${_rfmug_url_spec%=*}";
+ _rfmug_target_subdir="${_rfmug_target_subdir##*/}";
+ _rfmug_url="${_rfmug_url_spec#*=}";
+ _rfmug_url="${_rfmug_url%@*}";
+ _rfmug_repo_dname="${_rfmug_target_subdir}";
+
+ if [ "${_rfmug_repo_dname%.git}" = "${_rfmug_repo_dname}" ]; then
+ _rfmug_repo_dname="${_rfmug_repo_dname}.git";
+ fi;
- if [ ! -e "$(rtl_dirname "${_tgtdir}")" ]; then
- rtl_fileop mkdir "$(rtl_dirname "${_tgtdir}")";
+ _rfmug_dname="${_rfmug_target_dname}"; rtl_dirname \$_rfmug_dname;
+ if ! [ -e "${_rfmug_dname}" ]; then
+ rtl_fileop mkdir "${_rfmug_dname}";
fi;
+
(set -o errexit -o noglob -o nounset;
rtl_flock_acquire 4 || exit "${?}";
- trap "rm -f \"${_tgtdir}/.fetching\"" EXIT;
- if [ -e "${_tgtdir}/${_repo_dname}" ]; then
- (rtl_fileop cd "${_tgtdir}/${_repo_dname}" && git fetch ${_git_args} --all) || return 1;
- else (rtl_fileop cd "${_tgtdir}" && git clone ${_git_args} --mirror "${_url}" "${_repo_dname}") || return 1;
- fi) 4<>"${_tgtdir}/.fetching";
+ trap "rm -f \"${_rfmug_target_dname}/.fetching\"" EXIT;
+
+ if [ -e "${_rfmug_target_dname}/${_rfmug_repo_dname}" ]; then
+ (rtl_fileop cd "${_rfmug_target_dname}/${_rfmug_repo_dname}" &&\
+ git fetch ${_rfmug_git_args} --all) ||\
+ return 1;
+ else
+ (rtl_fileop cd "${_rfmug_target_dname}" &&\
+ git clone ${_rfmug_git_args} --mirror "${_rfmug_url}" "${_rfmug_repo_dname}") ||\
+ return 1;
+ fi) 4<>"${_rfmug_target_dname}/.fetching";
+
if [ "${?}" -ne 0 ]; then
- _rc=1;
+ _rfmug_rc=1;
fi;
- done; return "${_rc}";
+ done;
+
+ return "${_rfmug_rc}";
};
+#
+# rtl_fetch_url_git() - fetch Git URL(s) for item
+# @_dlcachedir: absolute pathname to download cache directory
+# @_git_args: optional argument string to pass to git(1)
+# @_target_dname: target directory name
+# @_name: single item name
+# @_mirrors: optional list of mirror base URLs
+# @...: list of Git URLs
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_fetch_urls_git() {
- local _cache_dname="${1}" _git_args="${2}" _tgtdir="${3}" _pkg_name="${4}" _mirrors="${5}"\
- _git_branch="" _subdir="" _url="" _url_spec=""; shift 5;
+ local _rfug_dlcachedir="${1}" _rfug_git_args="${2}" _rfug_target_dname="${3}" \
+ _rfug_name="${4}" _rfug_mirrors="${5}" \
+ _rfug_git_branch="" _rfug_target_subdir="" _rfug_url="" _rfug_url_spec="";
+ shift 5;
- for _url_spec in "${@}"; do
- _subdir="${_url_spec%=*}"; _url="${_url_spec#*=}"; _url="${_url%@*}";
- if [ "${_url_spec#*@}" != "${_url_spec}" ]; then
- _git_branch=${_url_spec#*@};
+ for _rfug_url_spec in "${@}"; do
+ _rfug_target_subdir="${_rfug_url_spec%=*}";
+ _rfug_url="${_rfug_url_spec#*=}";
+ _rfug_url="${_rfug_url%@*}";
+ if [ "${_rfug_url_spec#*@}" != "${_rfug_url_spec}" ]; then
+ _rfug_git_branch=${_rfug_url_spec#*@};
fi;
if ! rtlp_fetch_url_git \
- "${_cache_dname}" "${_git_args}" "${_git_branch}" "${_mirrors}"\
- "${_pkg_name}" "${_subdir}" "${_tgtdir}" "${_url}"; then
+ "${_rfug_dlcachedir}" "${_rfug_git_args}" \
+ "${_rfug_git_branch}" "${_rfug_mirrors}" \
+ "${_rfug_name}" "${_rfug_target_subdir}" \
+ "${_rfug_target_dname}" "${_rfug_url}";
+ then
return 1;
fi;
done;
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_fetch_wget.subr b/subr.rtl/rtl_fetch_wget.subr
new file mode 100644
index 00000000..361603f0
--- /dev/null
+++ b/subr.rtl/rtl_fetch_wget.subr
@@ -0,0 +1,91 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+#
+# rtl_fetch_url_wget() - fetch archive file(s) for item
+# @_urls: list of URLs
+# @_sha256sum_src: SHA256SUM digest file to check authenticity of archive file(s) with
+# @_target_dname: target directory namne
+# @_target_fname: target filename
+# @_target_name: target subdirectory name
+# @_mirrors: optional list of mirror base URLs
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: URLs ($1) may contain `?' or '&' characters.
+#
+rtl_fetch_url_wget() {
+ local _rfuw_urls="${1}" _rfuw_sha256sum_src="${2}" _rfuw_target_dname="${3}" \
+ _rfuw_target_fname="${4}" _rfuw_target_name="${5}" _rfuw_mirrors="${6:-}" \
+ _rfuw_rc=0 _rfuw_sha256sum_target="" _rfuw_target_fname_full="" _rfuw_url="" \
+ _rfuw_url_base="" _rfuw_urls_count=0 _rfuw_urls_full="";
+
+ _rfuw_urls_full="${_rfuw_urls}";
+ for _rfuw_url_base in ${_rfuw_mirrors}; do
+ rtl_lconcat \$_rfuw_urls_full "${_rfuw_url_base%/}/${_rfuw_target_name}/${_rfuw_target_fname}";
+ done;
+ rtl_llength \$_rfuw_urls_count \$_rfuw_urls_full;
+
+ for _rfuw_url in ${_rfuw_urls_full}; do
+ if [ "${_rfuw_target_fname:+1}" != 1 ]; then
+ rtl_basename2 \$_rfuw_url \$_rfuw_target_fname;
+ fi;
+ _rfuw_target_fname_full="${_rfuw_target_dname}/${_rfuw_target_fname}";
+
+ (set +o errexit -o noglob -o nounset;
+ rtl_flock_acquire 4 || exit 1;
+ trap "_rfuw_rc=\"\${?}\"; rm -f \"${_rfuw_target_fname_full}.fetching\"; exit \"\${_rfuw_rc}\";" EXIT;
+
+ if [ "${_rfuw_sha256sum_src:+1}" != 1 ]\
+ || ! rtl_check_digest_file "${_rfuw_target_fname_full}" "${_rfuw_sha256sum_src}" "${_rfuw_target_fname_full}.fetched"; then
+ wget ${DEFAULT_WGET_ARGS} -O "${_rfuw_target_fname_full}" "${_rfuw_url}"; _rfuw_rc="${?}";
+ if [ "${_rfuw_rc}" -ne 0 ]; then
+ exit $((${_rfuw_rc}+2));
+ elif [ "${_rfuw_sha256sum_src:+1}" = 1 ]\
+ && ! rtl_check_digest \$_digest "${_rfuw_target_fname_full}" "${_rfuw_sha256sum_src}"; then
+ exit 2;
+ else
+ printf "%s" "${_digest}" > "${_rfuw_target_fname_full}.fetched"; exit 0;
+ fi;
+ else
+ exit 0;
+ fi;) 4<>"${_rfuw_target_fname_full}.fetching"; _rfuw_rc="${?}"; : $((_rfuw_urls_count-=1));
+
+ case "${_rfuw_rc}" in
+
+ 0) break; ;;
+
+ 1) if [ "${_rfuw_urls_count}" -ge 1 ]; then
+ rtl_log_msgV "warning" "${MSG_rtl_fetch_lockfail_retryurl}" "${_rfuw_url}";
+ else
+ rtl_log_msgV "fatal" "${MSG_rtl_fetch_lockfail}" "${_rfuw_url}";
+ rtl_fileop rm "${_rfuw_target_fname_full}"; break;
+ fi; ;;
+
+ 2) if [ "${_rfuw_urls_count}" -ge 1 ]; then
+ rtl_log_msgV "warning" "${MSG_rtl_fetch_hashfail_retryurl}" "${_rfuw_url}" "${_rfuw_sha256sum_src}";
+ else
+ if _rfuw_sha256sum_target="$(sha256sum "${_rfuw_target_fname_full}" |\
+ awk '{print $1}' 2>/dev/null)"; then
+ rtl_log_msgV "fatal" "${MSG_rtl_fetch_hashfail1}" "${_rfuw_url}" "${_rfuw_sha256sum_src}" "${_rfuw_sha256sum_target}";
+ else
+ rtl_log_msgV "fatal" "${MSG_rtl_fetch_hashfail2}" "${_rfuw_url}" "${_rfuw_sha256sum_src}";
+ fi;
+ rtl_fileop rm "${_rfuw_target_fname_full}"; break;
+ fi; ;;
+
+ *) if [ "${_rfuw_urls_count}" -ge 1 ]; then
+ rtl_log_msgV "warning" "${MSG_rtl_fetch_fail_retryurl}" "${_rfuw_url}" "$((${_rfuw_rc}-2))";
+ else
+ rtl_log_msgV "fatal" "${MSG_rtl_fetch_fail}" "${_rfuw_url}" "$((${_rfuw_rc}-2))";
+ rtl_fileop rm "${_rfuw_target_fname_full}"; break;
+ fi; ;;
+
+ esac;
+ done;
+
+ return "${_rfuw_rc}";
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_fileop.subr b/subr.rtl/rtl_fileop.subr
index 6d258f5e..9dfc266d 100644
--- a/subr.rtl/rtl_fileop.subr
+++ b/subr.rtl/rtl_fileop.subr
@@ -1,4 +1,5 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
@@ -7,144 +8,186 @@
#
rtlp_fileop_check() {
- local _prefix="${1}" _pname="" _rname=""; shift;
- while [ "${#}" -gt 0 ]; do
- return 0;
- shift; done;
+ local _rpfc_prefix="${1}" _rpfc_pname="" _rpfc_rname=""; shift;
+ return 0;
};
rtlp_fileop_log() {
- rtl_log_msg "fileop" "0;${1}";
+ rtl_log_msgV "fileop" "0;${1}";
};
#
+# Public globals
+#
+
+RTL_FILEOP_SOURCE_FNAME="";
+
+#
# Public subroutines
#
+#
+# rtl_fileop() - clean download cache for single package
+# @_op: file operation (one of: cd, chmod, chgrp, chown, cp_follow, cp, install, ln_symbolic, mv, touch, mkdir, mkfifo, rm, source, source_opt, test)
+# @...: file operation arguments
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_fileop() {
- local _op="${1}" _dst="" _group="" _install_args="" _mode="" _owner="" _rc=0 _src=""; shift;
- case "${_op}" in
- cd) if [ \( -z "${1}" \) -o ! \( -L "${1}" -o -e "${1}" \) ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invalid_dir}" "${1}";
+ local _rf_op="${1}" \
+ _rf_dst="" _rf_group="" _rf_install_args="" \
+ _rf_mode="" _rf_owner="" _rf_rc=0 _rf_src=""; shift;
+
+ case "${_rf_op}" in
+
+ cd) if [ \( "${1:+1}" != 1 \) -o ! \( -L "${1}" -o -e "${1}" \) ]; then
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invalid_dir}" "${1}";
elif rtlp_fileop_check "${PREFIX:-}" "${1}"; then
rtlp_fileop_log "Changing working directory to \`${1}'.";
- cd -- "${1}"; _rc="${?}";
+ cd -- "${1}"; _rf_rc="${?}";
fi; ;;
+
chmod) if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_chmod}" "${*}";
- elif _mode="${1}" && shift\
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_chmod}" "${*}";
+ elif _rf_mode="${1}" && shift\
&& rtlp_fileop_check "${PREFIX:-}" "${*}"; then
- rtlp_fileop_log "Changing file mode bits of \`${*}' to \`${_mode}'.";
- chmod -- "${_mode}" "${@}"; _rc="${?}";
+ rtlp_fileop_log "Changing file mode bits of \`${*}' to \`${_rf_mode}'.";
+ chmod -- "${_rf_mode}" "${@}"; _rf_rc="${?}";
fi; ;;
+
chgrp) if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_chgrp}" "${*}";
- elif _group="${1}" && shift\
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_chgrp}" "${*}";
+ elif _rf_group="${1}" && shift\
&& rtlp_fileop_check "${PREFIX:-}" "${*}"; then
- rtlp_fileop_log "Changing file group of \`${*}' to \`${_group}'.";
- chgrp -- "${_group}" "${@}"; _rc="${?}";
+ rtlp_fileop_log "Changing file group of \`${*}' to \`${_rf_group}'.";
+ chgrp -- "${_rf_group}" "${@}"; _rf_rc="${?}";
fi; ;;
+
chown) if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_chown}" "${*}";
- elif _owner="${1}" && shift\
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_chown}" "${*}";
+ elif _rf_owner="${1}" && shift\
&& rtlp_fileop_check "${PREFIX:-}" "${*}"; then
- rtlp_fileop_log "Changing file owner of \`${*}' to \`${_owner}'.";
- chown -- "${_owner}" "${@}"; _rc="${?}";
+ rtlp_fileop_log "Changing file owner of \`${*}' to \`${_rf_owner}'.";
+ chown -- "${_rf_owner}" "${@}"; _rf_rc="${?}";
fi; ;;
+
cp_follow)
if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_cp_follow}" "${*}";
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_cp_follow}" "${*}";
elif rtlp_fileop_check "${PREFIX:-}" "${*}"; then
- _src="${*}"; _src="${_src% *}";
- _dst="${*}"; _dst="${_dst##* }";
- rtlp_fileop_log "Copying \`${_src}' into \`${_dst}' w/ -pLR.";
- cp -pLR -- "${@}"; _rc="${?}";
+ _rf_src="${*}"; _rf_src="${_rf_src% *}";
+ _rf_dst="${*}"; _rf_dst="${_rf_dst##* }";
+ rtlp_fileop_log "Copying \`${_rf_src}' into \`${_rf_dst}' w/ -pLR.";
+ cp -pLR -- "${@}"; _rf_rc="${?}";
fi; ;;
+
cp) if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_cp}" "${*}";
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_cp}" "${*}";
elif rtlp_fileop_check "${PREFIX:-}" "${*}"; then
- _src="${*}"; _src="${_src% *}";
- _dst="${*}"; _dst="${_dst##* }";
- rtlp_fileop_log "Copying \`${_src}' into \`${_dst}' w/ -pPR.";
- cp -pPR -- "${@}"; _rc="${?}";
+ _rf_src="${*}"; _rf_src="${_rf_src% *}";
+ _rf_dst="${*}"; _rf_dst="${_rf_dst##* }";
+ rtlp_fileop_log "Copying \`${_rf_src}' into \`${_rf_dst}' w/ -pPR.";
+ cp -pPR -- "${@}"; _rf_rc="${?}";
fi; ;;
+
install)
if [ "${#}" -lt 2 ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_install}" "${*}";
- else _dst="$(while [ ""${#}"" -gt 2 ]; do shift; done; printf "%s" "${2}")";
- _install_args="$(while [ ""${#}"" -gt 2 ]; do printf "%s" "${1}"; shift; done)";
- _src="$(while [ ""${#}"" -gt 2 ]; do shift; done; printf "%s" "${1}")";
- if rtlp_fileop_check "${PREFIX:-}" "${_dst}" "${_src}"; then
- rtlp_fileop_log "Installing \`${_src}' into \`${_dst}' w/ ${_install_args}.";
- install "${@}"; _rc="${?}";
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_install}" "${*}";
+ else
+ rtl_lindexV \$_rf_dst -1 "${@}";
+ rtl_lrangeV \$_rf_install_args 0 1 "${@}";
+ rtl_lindexV \$_rf_install_args -2 "${@}";
+
+ if rtlp_fileop_check "${PREFIX:-}" "${_rf_dst}" "${_rf_src}"; then
+ rtlp_fileop_log "Installing \`${_rf_src}' into \`${_rf_dst}' w/ ${_rf_install_args}.";
+ install "${@}"; _rf_rc="${?}";
fi;
fi; ;;
+
ln_symbolic)
- if [ \( -z "${1}" \) -o \( -z "${2}" \) ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_ln_symbolic}" "${*}";
+ if [ \( "${1:+1}" != 1 \) -o \( "${2:+1}" != 1 \) ]; then
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_ln_symbolic}" "${*}";
elif rtlp_fileop_check "${PREFIX:-}" "${2}"; then
if rtl_fileop test "${2}"; then
rtl_fileop rm "${2}";
fi;
if [ "${?}" -eq 0 ]; then
rtlp_fileop_log "Linking \`${1}' to \`${2}' w/ -fs";
- ln -fs -- "${1}" "${2}"; _rc="${?}";
+ ln -fs -- "${1}" "${2}"; _rf_rc="${?}";
fi;
fi; ;;
- mv) if [ \( -z "${1}" \) -o \( -z "${2}" \) ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_mv}" "${*}";
+
+ mv) if [ \( "${1:+1}" != 1 \) -o \( "${2:+1}" != 1 \) ]; then
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_mv}" "${*}";
elif rtlp_fileop_check "${PREFIX:-}" "${1}" "${2}"; then
rtlp_fileop_log "Moving \`${1}' to \`${2}' w/ -fs";
- mv -f -- "${1}" "${2}"; _rc="${?}";
+ mv -f -- "${1}" "${2}"; _rf_rc="${?}";
fi; ;;
- touch) if [ -z "${1}" ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_touch}" "${*}";
+
+ touch) if [ "${1:+1}" != 1 ]; then
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_touch}" "${*}";
elif rtlp_fileop_check "${PREFIX:-}" "${1}"; then
rtlp_fileop_log "Touching file \`${1}'${2:+ w/ timestamp \`${2}\'}.";
- touch ${2:+-t "${2}"} -- "${1}"; _rc="${?}";
+ touch ${2:+-t "${2}"} -- "${1}"; _rf_rc="${?}";
fi; ;;
- mkdir|mkfifo|rm|source|source_opt|test)
+
+ mkdir|mkfifo|rm|source|source_with_fnamevar|source_opt|source_opt_with_fnamevar|test)
while [ \( "${?}" -eq 0 \) -a \( ""${#}"" -gt 0 \) ]; do
- if [ -z "${1}" ]; then
- rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm}" "${_op}" "${*}";
- elif [ "${_op}" = mkdir ]\
+ if [ "${1:+1}" != 1 ]; then
+ rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm}" "${_rf_op}" "${*}";
+ elif [ "${_rf_op}" = mkdir ]\
&& [ ! -d "${1}" ]\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"; then
if rtl_fileop test "${1}"; then
rtl_fileop rm "${1}";
fi;
rtlp_fileop_log "Making directory \`${1}'.";
- mkdir -p -- "${1}"; _rc="${?}";
- elif [ "${_op}" = mkfifo ]\
+ mkdir -p -- "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = mkfifo ]\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"; then
if rtl_fileop test "${1}"; then
rtl_fileop rm "${1}";
fi;
rtlp_fileop_log "Creating FIFO \`${1}'.";
rtlp_fileop_check "${PREFIX:-}" "${1}";
- mkfifo -- "${1}"; _rc="${?}";
- elif [ "${_op}" = rm ]\
+ mkfifo -- "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = rm ]\
&& rtl_fileop test "${1}"\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"; then
rtlp_fileop_log "Removing directory or file \`${1}'.";
- rm -rf -- "${1}"; _rc="${?}";
- elif [ "${_op}" = source ]\
+ rm -rf -- "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = source ]\
+ && rtlp_fileop_check "${PREFIX:-}" "${1}"; then
+ rtlp_fileop_log "Sourcing file \`${1}'.";
+ . "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = source_with_fnamevar ]\
+ && rtlp_fileop_check "${PREFIX:-}" "${1}"; then
+ rtlp_fileop_log "Sourcing file \`${1}'.";
+ RTL_FILEOP_SOURCE_FNAME="${1}";
+ . "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = source_opt ]\
+ && rtl_fileop test "${1}"\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"; then
rtlp_fileop_log "Sourcing file \`${1}'.";
- . "${1}"; _rc="${?}";
- elif [ "${_op}" = source_opt ]\
+ . "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = source_opt_with_fnamevar ]\
&& rtl_fileop test "${1}"\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"; then
rtlp_fileop_log "Sourcing file \`${1}'.";
- . "${1}"; _rc="${?}";
- elif [ "${_op}" = test ]\
+ RTL_FILEOP_SOURCE_FNAME="${1}";
+ . "${1}"; _rf_rc="${?}";
+ elif [ "${_rf_op}" = test ]\
&& rtlp_fileop_check "${PREFIX:-}" "${1}"\
&& ! [ \( -L "${1}" \) -o \( -e "${1}" \) ]; then
return 1;
fi; shift;
done; ;;
- *) rtl_log_msg "fatalexit" "${MSG_rtl_fileop_invparm_fileop}" "${*}"; ;;
- esac; return "${_rc}";
+
+ *) rtl_log_msgV "fatalexit" "${MSG_rtl_fileop_invparm_fileop}" "${*}"; ;;
+
+ esac;
+
+ return "${_rf_rc}";
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_filepath.subr b/subr.rtl/rtl_filepath.subr
index 671f8534..a2f0f5c4 100644
--- a/subr.rtl/rtl_filepath.subr
+++ b/subr.rtl/rtl_filepath.subr
@@ -1,18 +1,52 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtl_basename() - obtain base name from filename
+# @_rfname: inout reference to filename
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_basename() {
- local _fname="${1##*/}"; printf "%s" "${_fname}";
+ rtl_basename2 "${1}" "${1}";
+};
+
+#
+# rtl_basename2() - obtain base name from filename
+# @_rfname: in reference to filename
+# @_rfname_out: out reference to new filename
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_basename2() {
+ local _rb2_rfname="${1#\$}" _rb2_rfname_out="${2#\$}" \
+ _rb2_fname="";
+
+ eval _rb2_fname="\${${_rb2_rfname}}";
+ eval ${_rb2_rfname_out}='${_rb2_fname##*/}';
+ return 0;
};
+#
+# rtl_check_digest() - check digest of single file
+# @_rdigest: out reference to digest of file
+# @_fname: name of file to check
+# @_digest_check: digest to check against
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_check_digest() {
- local _fname="${1}" _digest_check="${2}" _digest=""; RTL_CHECK_DIGEST_DIGEST="";
- if ! [ -e "${_fname}" ]; then
+ local _rcd_rdigest="${1#\$}" _rcd_fname="${2}" _rcd_digest_check="${3}" \
+ _rcd_digest="";
+
+ if ! [ -e "${_rcd_fname}" ]; then
return 1;
- else set -- $(sha256sum "${_fname}");
- RTL_CHECK_DIGEST_DIGEST="${1}";
- if [ "${RTL_CHECK_DIGEST_DIGEST}" = "${_digest_check}" ]; then
+ else set -- $(sha256sum "${_rcd_fname}");
+ _rcd_digest="${1}";
+ eval ${_rcd_rdigest}='${_rcd_digest}';
+ if [ "${_rcd_digest}" = "${_rcd_digest_check}" ]; then
return 0;
else
return 1;
@@ -20,58 +54,132 @@ rtl_check_digest() {
fi;
};
+#
+# rtl_check_digest_file() - check digest of single file w/ digest file
+# @_fname: name of file to check
+# @_digest_check: digest to check against
+# @_digest_fname: name of file containing digest
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_check_digest_file() {
- local _fname="${1}" _digest_check="${2}" _digest_fname="${3}" _digest="" RTL_CHECK_DIGEST_DIGEST="";
- if ! [ -e "${_digest_fname}" ]; then
+ local _rcdf_fname="${1}" _rcdf_digest_check="${2}" _rcdf_digest_fname="${3}" \
+ _rcdf_digest="" _rcdf_digest_file="";
+
+ if ! [ -e "${_rcdf_digest_fname}" ]; then
return 1;
- else _digest="$(cat "${_digest_fname}")";
- if [ "${_digest}" != "${_digest_check}" ]\
- || ! rtl_check_digest "${_fname}" "${_digest_check}"; then
+ else _rcdf_digest_file="$(cat "${_rcdf_digest_fname}")";
+ if [ "${_rcdf_digest_file}" != "${_rcdf_digest_check}" ]\
+ || ! rtl_check_digest \$_rcdf_digest "${_rcdf_fname}" \
+ "${_rcdf_digest_check}";
+ then
return 1;
+ else
+ return 0;
fi;
fi;
};
+#
+# rtl_check_path_vars() - check pathname variables for validity
+# @_rstatus: out reference to status string
+# @_vnames: list of variable names
+#
+# Returns: zero (0) on success, non-zero (>0) on empty or unset pathname variable or pathname variable containing whitespace characters
+#
rtl_check_path_vars() {
- local _vnames="${1}" _rc=0 _vname="" _vname_val=""; _status="";
- for _vname in ${_vnames}; do
- _vname_val="$(rtl_get_var_unsafe "${_vname}")";
- if [ -z "${_vname_val}" ]; then
- _rc=1; _status="Error: variable \`${_vname}' is empty or unset."; break;
- elif [ "${_vname_val#* *}" != "${_vname_val}" ]; then
- _rc=2; _status="Error: variable \`${_vname}' contains one or more whitespace characters."; break;
+ local _rcpv_rstatus="${1#\$}" _rcpv_vnames="${2}" \
+ _rcpv_rc=0 _rcpv_vname="" _rcpv_vname_val="";
+
+ for _rcpv_vname in ${_rcpv_vnames}; do
+ rtl_get_var_unsafe \$_rcpv_vname_val "${_rcpv_vname}";
+ if [ "${_rcpv_vname_val:+1}" != 1 ]; then
+ _rcpv_rc=1;
+ rtl_setrstatus "${_rcpv_rstatus}" 'Error: variable \`'"${_rcpv_vname}'"' is empty or unset.';
+ break;
+ elif [ "${_rcpv_vname_val#* *}" != "${_rcpv_vname_val}" ]; then
+ _rcpv_rc=2;
+ rtl_setrstatus "${_rcpv_rstatus}" 'Error: variable \`'"${_rcpv_vname}'"' contains one or more whitespace characters.';
+ break;
fi;
done;
- return "${_rc}";
+ return "${_rcpv_rc}";
};
+#
+# rtl_dirname() - obtain directory name from filename
+# @_rfname: inout reference to {file,directory} name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_dirname() {
- local _dname="${1%/*}";
- case "${_dname}" in
- "") _dname="."; ;;
- *) while rtl_matchr "${_dname}" "*/"; do
- _dname="${_dname%/}";
+ rtl_dirname2 "${1}" "${1}";
+};
+
+#
+# rtl_dirname2() - obtain directory name from filename
+# @_rfname: in reference to filename
+# @_rfname_out: out reference to directory name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_dirname2() {
+ local _rfname="${1#\$}" _rdname_out="${2#\$}" \
+ _rd2_dname="";
+
+ eval _rd2_dname="\${${_rfname}}";
+ _rd2_dname="${_rd2_dname%/*}";
+
+ case "${_rd2_dname}" in
+ "") _rd2_dname="."; ;;
+ *) while rtl_matchr "${_rd2_dname}" "*/"; do
+ _rd2_dname="${_rd2_dname%/}";
done; ;;
- esac; printf "%s" "${_dname:-/}";
+ esac;
+
+ eval ${_rdname_out}='${_rd2_dname}';
+ return 0;
};
+#
+# rtl_exists_any() - check for existence of pathnames beneath directory
+# @_subdir: single directory name
+# @...: list of pathnames to check
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_exists_any() {
- local _subdir="${1}"; shift;
+ local _rea_subdir="${1}"; shift;
+
while [ "${#}" -gt 0 ]; do
- if [ -e "${_subdir}/${1}" ]; then
+ if [ -e "${_rea_subdir}/${1}" ]; then
return 0;
else
shift;
fi;
- done; return 1;
+ done;
+ return 1;
};
+#
+# rtl_flock_acquire() - acquire file lock
+# @_fd: single file descriptor
+# @_conflict_exit_code: exit code on conflict
+# @_wait: wait period in seconds
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_flock_acquire() {
- local _fd="${1}" _conflict_exit_code="${2:-253}" _wait="${3:-3600}"
+ local _rfa_fd="${1}" _rfa_conflict_exit_code="${2:-253}" _rfa_wait="${3:-3600}";
+
while true; do
- if flock -E "${_conflict_exit_code}" -w "${_wait}" "${_fd}"; then
- break;
- elif [ "${?}" -eq "${_conflict_exit_code}" ]; then
+ if flock \
+ -E "${_rfa_conflict_exit_code}" \
+ -w "${_rfa_wait}" \
+ "${_rfa_fd}";
+ then
+ return 0;
+ elif [ "${?}" -eq "${_rfa_conflict_exit_code}" ]; then
continue;
else
return "${?}";
@@ -79,13 +187,24 @@ rtl_flock_acquire() {
done;
};
+#
+# rtl_is_newer() - check if single file is newer than other single file
+# @_new_fname: single name of newer file
+# @_old_fname: single name of older file
+#
+# Returns: zero (0) if @_new_fname is newer, non-zero (>0) if @_old_fname is newer
+#
rtl_is_newer() {
- local _new_fname="${1}" _old_fname="${2}" _new_ts="" _old_ts="";
- if ! [ -e "${_old_fname}" ]; then
+ local _ris_new_fname="${1}" _ris_old_fname="${2}" \
+ _ris_new_ts="" _ris_old_ts="";
+
+ if ! [ -e "${_ris_old_fname}" ]; then
return 0;
- else _new_ts="$(stat -c %Y "${_new_fname}" 2>/dev/null)";
- _old_ts="$(stat -c %Y "${_old_fname}" 2>/dev/null)";
- if [ "${_new_ts:-0}" -gt "${_old_ts:-0}" ]; then
+ else
+ _ris_new_ts="$(stat -c %Y "${_ris_new_fname}" 2>/dev/null)";
+ _ris_old_ts="$(stat -c %Y "${_ris_old_fname}" 2>/dev/null)";
+
+ if [ "${_ris_new_ts:-0}" -gt "${_ris_old_ts:-0}" ]; then
return 0;
else
return 1;
@@ -93,4 +212,95 @@ rtl_is_newer() {
fi;
};
-# vim:filetype=sh
+#
+# rtl_patch_files() - patch files
+# @_patch_cwd: patch(1) -d directory
+# @_strip_count: patch(1) strip count
+# @_fn: name of function that produces patch filenames and takes the arguments @_rpatch_fname @_patch_idx @...
+# @... optional arguments to pass to @_fn
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_patch_files() {
+ local _rpf_patch_cwd="${1}" _rpf_strip_count="${2}" _rpf_fn="${3}" \
+ _rpf_patch_fname="" _rpf_patch_idx=0;
+ shift $((3 + 2));
+
+ _rpf_patch_idx=1;
+ while "${_rpf_fn}" \
+ \$_rpf_patch_fname "${_rpf_patch_idx}" \
+ "${@}" \
+ && [ "${_rpf_patch_fname:+1}" = 1 ];
+ do
+ : $((_rpf_patch_idx += 1));
+ if [ -r "${_rpf_patch_fname}" ]\
+ && ! patch \
+ -b \
+ -d "${_rpf_patch_cwd}" \
+ "-p${_rpf_strip_count}" \
+ < "${_rpf_patch_fname}";
+ then
+ return 1;
+ fi;
+ done;
+ return 0;
+};
+
+#
+# rtl_set_perms_treeV() - set mode bits of directories and files
+# @_mode_dir: mode bits for directories
+# @_mode_file_exec: mode bits for executable files
+# @_mode_file_nonexec: mode bits for non-executable files
+# @...: list of base directory pathnames as positional parameters; empty strings are ignored
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_set_perms_treeV() {
+ local _rspt_mode_dir="${1}" _rspt_mode_file_exec="${2}" _rspt_mode_file_nonexec="${3}" \
+ _rspt_destdir="" _rspt_fname="" \
+ IFS IFS0="${IFS}";
+ shift 3;
+
+ for _rspt_destdir in "${@}"; do
+ if [ -e "${_rspt_destdir}" ]; then
+ rtl_set_IFS_nl;
+
+ for _rspt_fname in $(find "${_rspt_destdir}" -type d); do
+ if ! rtl_fileop chmod "${_rspt_mode_dir}" \
+ "${_rspt_fname}";
+ then
+ return 1;
+ fi;
+ done;
+
+ for _rspt_fname in $(find \
+ "${_rspt_destdir}" \
+ \( -not -perm /0111 \) \
+ -type f);
+ do
+ if ! rtl_fileop chmod "${_rspt_mode_file_nonexec}" \
+ "${_rspt_fname}";
+ then
+ return 1;
+ fi;
+ done;
+
+ for _rspt_fname in $(find \
+ "${_rspt_destdir}" \
+ -perm /0111 \
+ -type f);
+ do
+ if ! rtl_fileop chmod "${_rspt_mode_file_exec}" \
+ "${_rspt_fname}";
+ then
+ return 1;
+ fi;
+ done;
+
+ IFS="${IFS0}";
+ fi;
+ done;
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_install.subr b/subr.rtl/rtl_install.subr
index db305cd0..a0a9b8d0 100644
--- a/subr.rtl/rtl_install.subr
+++ b/subr.rtl/rtl_install.subr
@@ -1,83 +1,100 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtl_install() - install files
+# @[-v]: increase verbosity
+# @_prefix: installation prefix pathname
+# @...: install operation (one of: -* (remove,) !*=* (move/rename,) /=* (create directory/ies,) @*=* (create/update symbolic link,) m[0-7][0-7][0-7][0-7]=* (set mode bits,) o*=* (set user/group owner,) *=* (copy))
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_install() {
- local _verbose="" _prefix="" _chmod_mode="" _dname="" _file_fname_dst="" \
- _file_fname_src="" _fname="" _ln_fname="" _ln_target="" _owner_spec="" \
- _pname="";
- [ "${1}" = "-v" ] && { _verbose=1; shift; }; _prefix="${1}"; shift;
+ local _ri_verbose="" _ri_prefix="" \
+ _ri_chmod_mode="" _ri_dname="" _ri_file_fname_dst="" _ri_file_fname_src="" \
+ _ri_fname="" _ri_ln_fname="" _ri_ln_target="" _ri_owner_spec="" _ri_pname="";
+
+ if [ "${1}" = "-v" ]; then
+ _ri_verbose=1; shift;
+ fi;
+ _ri_prefix="${1}"; shift;
while [ ${#} -gt 0 ]; do
case "${1}" in
+
-*)
- _pname="${1#-}";
- if [ "${_pname#/}" = "${_pname}" ]; then
- _pname="${_prefix:+${_prefix}/}${_pname}";
+ _ri_pname="${1#-}";
+ if [ "${_ri_pname#/}" = "${_ri_pname}" ]; then
+ _ri_pname="${_ri_prefix:+${_ri_prefix}/}${_ri_pname}";
fi;
- if ! rtl_fileop rm "${_pname}"; then
+ if ! rtl_fileop rm "${_ri_pname}"; then
return 1;
fi; ;;
!*=*)
- _file_fname_src="${1#!}"; _file_fname_src="${_file_fname_src%=*}";
- _file_fname_dst="${1#!}"; _file_fname_dst="${_file_fname_dst#*=}";
- if [ "${_file_fname_src#/}" = "${_file_fname_src}" ]; then
- _file_fname_src="${_prefix:+${_prefix}/}${_file_fname_src}";
+ _ri_file_fname_src="${1#!}"; _ri_file_fname_src="${_ri_file_fname_src%=*}";
+ _ri_file_fname_dst="${1#!}"; _ri_file_fname_dst="${_ri_file_fname_dst#*=}";
+ if [ "${_ri_file_fname_src#/}" = "${_ri_file_fname_src}" ]; then
+ _ri_file_fname_src="${_ri_prefix:+${_ri_prefix}/}${_ri_file_fname_src}";
fi;
- if [ "${_file_fname_dst#/}" = "${_file_fname_dst}" ]; then
- _file_fname_dst="${_prefix:+${_prefix}/}${_file_fname_dst}";
+ if [ "${_ri_file_fname_dst#/}" = "${_ri_file_fname_dst}" ]; then
+ _ri_file_fname_dst="${_ri_prefix:+${_ri_prefix}/}${_ri_file_fname_dst}";
fi;
- if ! rtl_fileop mv "${_file_fname_src}" "${_file_fname_dst}"; then
+ if ! rtl_fileop mv "${_ri_file_fname_src}" "${_ri_file_fname_dst}"; then
return 1;
fi; ;;
/=*)
- _dname="${1#/=}";
- if [ "${_dname#/}" = "${_dname}" ]; then
- _dname="${_prefix:+${_prefix}/}${_dname}";
+ _ri_dname="${1#/=}";
+ if [ "${_ri_dname#/}" = "${_ri_dname}" ]; then
+ _ri_dname="${_ri_prefix:+${_ri_prefix}/}${_ri_dname}";
fi;
- if ! rtl_fileop mkdir "${_dname}"; then
+ if ! rtl_fileop mkdir "${_ri_dname}"; then
return 1;
fi; ;;
@*=*)
- _ln_target="${1%=*}"; _ln_target="${_ln_target#@}"; _ln_fname="${1#*=}";
- if [ "${_ln_fname#/}" = "${_ln_fname}" ]; then
- _ln_fname="${_prefix:+${_prefix}/}${_ln_fname}";
+ _ri_ln_target="${1%=*}"; _ri_ln_target="${_ri_ln_target#@}"; _ri_ln_fname="${1#*=}";
+ if [ "${_ri_ln_fname#/}" = "${_ri_ln_fname}" ]; then
+ _ri_ln_fname="${_ri_prefix:+${_ri_prefix}/}${_ri_ln_fname}";
fi;
- if [ -e "${_ln_fname}" ]; then
- rtl_fileop rm "${_ln_fname}";
+ if [ -e "${_ri_ln_fname}" ]; then
+ rtl_fileop rm "${_ri_ln_fname}";
fi;
- if ! rtl_fileop ln_symbolic "${_ln_target}" "${_ln_fname}"; then
+ if ! rtl_fileop ln_symbolic "${_ri_ln_target}" "${_ri_ln_fname}"; then
return 1;
fi; ;;
m[0-7][0-7][0-7][0-7]=*)
- _fname="${1#m[0-7][0-7][0-7][0-7]=}"; _chmod_mode="${1%%=*}"; _chmod_mode="${_chmod_mode#m}";
- if ! rtl_fileop chmod "${_chmod_mode}" "${_fname}"; then
+ _ri_fname="${1#m[0-7][0-7][0-7][0-7]=}"; _ri_chmod_mode="${1%%=*}"; _ri_chmod_mode="${_ri_chmod_mode#m}";
+ if ! rtl_fileop chmod "${_ri_chmod_mode}" "${_ri_fname}"; then
return 1;
fi; ;;
o*=*)
- _fname="${1#o*=}"; _owner_spec="${1%%=*}"; _owner_spec="${_owner_spec#o}";
- if ! rtl_fileop chown "${_owner_spec}" "${_fname}"; then
+ _ri_fname="${1#o*=}"; _ri_owner_spec="${1%%=*}"; _ri_owner_spec="${_ri_owner_spec#o}";
+ if ! rtl_fileop chown "${_ri_owner_spec}" "${_ri_fname}"; then
return 1;
fi; ;;
*=*)
- _file_fname_src="${1%=*}"; _file_fname_dst="${1#*=}";
- if [ "${_file_fname_src#/}" = "${_file_fname_src}" ]; then
- _file_fname_src="${_prefix:+${_prefix}/}${_file_fname_src}";
+ _ri_file_fname_src="${1%=*}"; _ri_file_fname_dst="${1#*=}";
+ if [ "${_ri_file_fname_src#/}" = "${_ri_file_fname_src}" ]; then
+ _ri_file_fname_src="${_ri_prefix:+${_ri_prefix}/}${_ri_file_fname_src}";
fi;
- if [ "${_file_fname_dst#/}" = "${_file_fname_dst}" ]; then
- _file_fname_dst="${_prefix:+${_prefix}/}${_file_fname_dst}";
+ if [ "${_ri_file_fname_dst#/}" = "${_ri_file_fname_dst}" ]; then
+ _ri_file_fname_dst="${_ri_prefix:+${_ri_prefix}/}${_ri_file_fname_dst}";
fi;
- if ! rtl_fileop cp "${_file_fname_src}" "${_file_fname_dst}"; then
+ if ! rtl_fileop cp "${_ri_file_fname_src}" "${_ri_file_fname_dst}"; then
return 1;
fi; ;;
+
esac; shift;
done;
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_install_v2.subr b/subr.rtl/rtl_install_v2.subr
index 46cf804d..da4c3090 100644
--- a/subr.rtl/rtl_install_v2.subr
+++ b/subr.rtl/rtl_install_v2.subr
@@ -1,8 +1,9 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
-RTLP_INSTALL_NL="
+RTL_NL="
";
# XXX optimise
@@ -14,265 +15,306 @@ RTLP_INSTALL_NL="
#
# DSL functor implementation
#
-# {{{ rtlp_install_fmap($_rparams, $_prefix, $_spec, $_fn, [$_param[...], --, [$_spec[...]]])
-rtlp_install_fmap() {
- local _rif_rparams="${1#\$}" _rif_prefix="${2}" _rif_spec="${3}" \
- _rif_fn="${4}" _rif_IFS0="${IFS:- }" _rif_paramsc=0 \
- _rif_spec_cur="" _rif_spec_list="" _rif_spec0="" _rif_specsc=0 \
- _rif_nspec=0 _rif_rc=0 IFS; shift 4;
+# {{{ rtlp_install_v2_fmap($_rstatus, $_rparams, $_prefix, $_spec, $_fn, [$_param[...], --, [$_spec[...]]])
+rtlp_install_v2_fmap() {
+ local _ri2f_rstatus="${1#\$}" _ri2f_rparams="${2#\$}" _ri2f_prefix="${3}" _ri2f_spec="${4}" _ri2f_fn="${5}" \
+ _ri2f_IFS0="${IFS:- }" _ri2f_paramsc=0 _ri2f_spec_cur="" _ri2f_spec_list="" _ri2f_spec0="" \
+ _ri2f_specsc=0 _ri2f_nspec=0 _ri2f_rc=0 IFS;
+ shift 5;
+
while [ "${#}" -gt 0 ] && [ "x${1}" != "x--" ]; do
- : $((_rif_paramsc+=1)); local "${_rif_rparams}${_rif_paramsc}=${1}"; shift;
+ : $((_ri2f_paramsc+=1)); local "${_ri2f_rparams}${_ri2f_paramsc}=${1}"; shift;
done; shift;
while [ "${#}" -gt 0 ] && [ "x${1}" != "x--" ]; do
- : $((_rif_specsc+=1)); local "_rif_specs${_rif_specsc}=${1}"; shift;
+ : $((_ri2f_specsc+=1)); local "_ri2f_specs${_ri2f_specsc}=${1}"; shift;
done;
- if rtlp_install_fmap_params "${_rif_rparams}" \$_rif_spec ""\
- && rtlp_install_fmap_patterns "${_rif_rparams}" "${_rif_prefix}" "${_rif_spec}" \$_rif_spec_list; then
- IFS="${RTLP_INSTALL_NL}"; for _rif_spec_cur in ${_rif_spec_list}; do
- IFS="${_rif_IFS0}"; set --;
- _rif_nspec=1; while [ "${_rif_nspec}" -le "${_rif_specsc}" ]; do
- eval _rif_spec0=\"\${_rif_specs${_rif_nspec}}\";
- rtlp_install_fmap_params \
- "${_rif_rparams}" \
- \$_rif_spec0 "${_rif_spec_cur}";
- eval set -- '"${@}"' '"${_rif_spec0}"'; : $((_rif_nspec+=1));
+ if rtlp_install_v2_fmap_params "${_ri2f_rstatus}" "${_ri2f_rparams}" \$_ri2f_spec ""\
+ && rtlp_install_v2_fmap_patterns "${_ri2f_rstatus}" "${_ri2f_rparams}" "${_ri2f_prefix}" "${_ri2f_spec}" \$_ri2f_spec_list; then
+ IFS="${RTL_NL}"; for _ri2f_spec_cur in ${_ri2f_spec_list}; do
+ IFS="${_ri2f_IFS0}"; set --;
+ _ri2f_nspec=1; while [ "${_ri2f_nspec}" -le "${_ri2f_specsc}" ]; do
+ eval _ri2f_spec0=\"\${_ri2f_specs${_ri2f_nspec}}\";
+ rtlp_install_v2_fmap_params \
+ "${_ri2f_rstatus}" \
+ "${_ri2f_rparams}" \
+ \$_ri2f_spec0 "${_ri2f_spec_cur}";
+ eval set -- '"${@}"' '"${_ri2f_spec0}"'; : $((_ri2f_nspec+=1));
done;
- eval "${_rif_fn}" \"\$\{@\}\"; _rif_rc=$((${?} ? ${?} : ${_rif_rc}));
- [ "${_rif_rc}" -ne 0 ] && break;
- done; IFS="${_rif_IFS0}";
+ eval "${_ri2f_fn}" \"\$\{@\}\"; _ri2f_rc=$((${?} ? ${?} : ${_ri2f_rc}));
+ [ "${_ri2f_rc}" -ne 0 ] && break;
+ done; IFS="${_ri2f_IFS0}";
else
- _rif_rc=1;
+ _ri2f_rc=1;
fi;
- return "${_rif_rc}";
+ return "${_ri2f_rc}";
};
# }}}
-# {{{ rtlp_install_fmap_params($_rparams, $_rspec, $_item)
+# {{{ rtlp_install_v2_fmap_params($_rstatus, $_rparams, $_rspec, $_item)
RTLP_INSTALL_FMAP_PARAMS_LEVEL=0;
-rtlp_install_fmap_params() {
- local _rifp_rparams="${1#\$}" _rifp_rspec="${2#\$}" _rifp_item="${3}" \
- _rifp_expr="" _rifp_expr_="" _rifp_expr_sub="" _rifp_expr_op="" \
- _rifp_lhs="" _rifp_rc=0 _rifp_rhs="" _rifp_subexpr=""; _status="";
- eval _rifp_lhs='${'"${_rifp_rspec}"'}'\; ${_rifp_rspec}=;
+rtlp_install_v2_fmap_params() {
+ local _ri2fp_rstatus="${1#\$}" _ri2fp_rparams="${2#\$}" _ri2fp_rspec="${3#\$}" _ri2fp_item="${4}" \
+ _ri2fp_expr="" _ri2fp_expr_="" _ri2fp_expr_sub="" _ri2fp_expr_op="" _ri2fp_lhs="" _ri2fp_rc=0 \
+ _ri2fp_rhs="" _ri2fp_subexpr="";
+ eval _ri2fp_lhs='${'"${_ri2fp_rspec}"'}'\; ${_ri2fp_rspec}=;
while true; do
- if ! rtlp_install_splitl_ref \$_rifp_expr \$_rifp_lhs \$_rifp_rhs '%[' ']'; then
- eval ${_rifp_rspec}='${'"${_rifp_rspec}"'}${_rifp_lhs}'; break;
- else case "${_rifp_expr}" in
+ if ! rtlp_install_v2_splitl_ref \$_ri2fp_expr \$_ri2fp_lhs \$_ri2fp_rhs '%[' ']'; then
+ eval ${_ri2fp_rspec}='${'"${_ri2fp_rspec}"'}${_ri2fp_lhs}'; break;
+ else
+ case "${_ri2fp_expr}" in
+
[0-9]*)
- eval _rifp_expr='${'"${_rifp_rparams}${_rifp_expr}"'}'; ;;
+ eval _ri2fp_expr='${'"${_ri2fp_rparams}${_ri2fp_expr}"'}'; ;;
+
@[0-9]*)
: $((RTLP_INSTALL_FMAP_PARAMS_LEVEL+=1));
- eval _rifp_expr${RTLP_INSTALL_FMAP_PARAMS_LEVEL}='${'"${_rifp_rparams}${_rifp_expr#@}"'}';
- rtlp_install_fmap_params "${_rifp_rparams}" \
- \$_rifp_expr${RTLP_INSTALL_FMAP_PARAMS_LEVEL} \
- "${_rifp_item}"; _rifp_rc="${?}";
- eval _rifp_expr='${_rifp_expr'"${RTLP_INSTALL_FMAP_PARAMS_LEVEL}"'}';
+ eval _ri2fp_expr${RTLP_INSTALL_FMAP_PARAMS_LEVEL}='${'"${_ri2fp_rparams}${_ri2fp_expr#@}"'}';
+ rtlp_install_v2_fmap_params "${_ri2fp_rstatus}" "${_ri2fp_rparams}" \
+ \$_ri2fp_expr${RTLP_INSTALL_FMAP_PARAMS_LEVEL} \
+ "${_ri2fp_item}"; _ri2fp_rc="${?}";
+ eval _ri2fp_expr='${_ri2fp_expr'"${RTLP_INSTALL_FMAP_PARAMS_LEVEL}"'}';
+ unset '_ri2fp_expr'"${RTLP_INSTALL_FMAP_PARAMS_LEVEL}";
: $((RTLP_INSTALL_FMAP_PARAMS_LEVEL-=1));
- [ "${_rifp_rc}" -eq 1 ] && break; ;;
+ [ "${_ri2fp_rc}" -eq 1 ] && break; ;;
[_0-9a-zA-Z]*)
- case "${_rifp_expr}" in
- DNAME*) _rifp_subexpr="${_rifp_expr#DNAME}"; _rifp_expr="${_rifp_item%/*}"; ;;
- FNAME*) _rifp_subexpr="${_rifp_expr#FNAME}"; _rifp_expr="${_rifp_item##*/}"; ;;
- ITEM*) _rifp_subexpr="${_rifp_expr#ITEM}"; _rifp_expr="${_rifp_item}"; ;;
- "") _rifp_rc=1; _status="zero-length parameter name in expression"; ;;
+ case "${_ri2fp_expr}" in
+
+ DNAME*) _ri2fp_subexpr="${_ri2fp_expr#DNAME}"; _ri2fp_expr="${_ri2fp_item%/*}"; ;;
+ FNAME*) _ri2fp_subexpr="${_ri2fp_expr#FNAME}"; _ri2fp_expr="${_ri2fp_item##*/}"; ;;
+ ITEM*) _ri2fp_subexpr="${_ri2fp_expr#ITEM}"; _ri2fp_expr="${_ri2fp_item}"; ;;
+
+ "") _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'zero-length parameter name in expression';
+ ;;
+
*)
- _rifp_expr_="${_rifp_expr%%[!_0-9a-zA-Z]*}";
- _rifp_subexpr="${_rifp_expr#${_rifp_expr_}}";
- _rifp_expr="${_rifp_expr_}";
- if eval [ '"${'"${_rifp_rparams}${_rifp_expr}"':+1}"' = 1 ]; then
- eval _rifp_expr='${'"${_rifp_rparams}${_rifp_expr}"'}';
- else _rifp_rc=1; _status="unknown parameter name \`${_rifp_expr}' in expression";
- fi; ;;
+ _ri2fp_expr_="${_ri2fp_expr%%[!_0-9a-zA-Z]*}";
+ _ri2fp_subexpr="${_ri2fp_expr#${_ri2fp_expr_}}";
+ _ri2fp_expr="${_ri2fp_expr_}";
+ if eval [ '"${'"${_ri2fp_rparams}${_ri2fp_expr}"':+1}"' = 1 ]; then
+ eval _ri2fp_expr='${'"${_ri2fp_rparams}${_ri2fp_expr}"'}';
+ else _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'unknown parameter name \`'"${_ri2fp_expr}"''\'' in expression';
+ fi;
+ ;;
+
esac;
- if [ "${_rifp_rc}" -eq 0 ]; then
+ if [ "${_ri2fp_rc}" -eq 0 ]; then
while true; do
- if ! rtlp_install_splitl_subexpr \
- \$_rifp_subexpr_ \
- \$_rifp_subexpr \
+ if ! rtlp_install_v2_splitl_subexpr \
+ \$_ri2fp_subexpr_ \
+ \$_ri2fp_subexpr \
'## # %% %'; then
break;
- else case "${_rifp_subexpr_}" in
+ else case "${_ri2fp_subexpr_}" in
+
/*) ;;
- \#\#*) _rifp_expr="${_rifp_expr##${_rifp_subexpr_#\#\#}}"; ;;
- \#*) _rifp_expr="${_rifp_expr#${_rifp_subexpr_#\#}}"; ;;
- %%*) _rifp_expr="${_rifp_expr%%${_rifp_subexpr_#%%}}"; ;;
- %*) _rifp_expr="${_rifp_expr%${_rifp_subexpr_#%}}"; ;;
- "") _rifp_rc=1; _status="zero-length subexpression in expression"; ;;
- *) _rifp_rc=1; _status="invalid subexpression \`${_rifp_subexpr_}' in expression"; ;;
+ \#\#*) _ri2fp_expr="${_ri2fp_expr##${_ri2fp_subexpr_#\#\#}}"; ;;
+ \#*) _ri2fp_expr="${_ri2fp_expr#${_ri2fp_subexpr_#\#}}"; ;;
+ %%*) _ri2fp_expr="${_ri2fp_expr%%${_ri2fp_subexpr_#%%}}"; ;;
+ %*) _ri2fp_expr="${_ri2fp_expr%${_ri2fp_subexpr_#%}}"; ;;
+
+ "") _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'zero-length subexpression in expression';
+ ;;
+
+ *) _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'invalid subexpression \`'"${_ri2fp_subexpr_}"''\'' in expression';
+ ;;
+
esac; fi;
done;
fi; ;;
- "") _rifp_rc=1; _status="zero-length expression"; break; ;;
- *) _rifp_rc=1; _status="invalid expression \`${_rifp_expr}'"; break; ;;
+ "") _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'zero-length expression';
+ break; ;;
+
+ *) _ri2fp_rc=1;
+ rtl_setrstatus "${_ri2fp_rstatus}" 'invalid expression \`'"${_ri2fp_expr}"''\';
+ break; ;;
+
esac; fi;
- eval ${_rifp_rspec}='${'"${_rifp_rspec}"'}${_rifp_lhs}${_rifp_expr}'; _rifp_lhs="${_rifp_rhs}";
- done; return "${_rifp_rc}";
+
+ eval ${_ri2fp_rspec}='${'"${_ri2fp_rspec}"'}${_ri2fp_lhs}${_ri2fp_expr}'; _ri2fp_lhs="${_ri2fp_rhs}";
+ done;
+
+ return "${_ri2fp_rc}";
};
# }}}
-# {{{ rtlp_install_fmap_patterns($_rparams, $_prefix, $_spec, $_rspec_list)
-rtlp_install_fmap_patterns() {
- local _rifp2_rparams="${1#\$}" _rifp2_prefix="${2}" _rifp2_spec="${3}" \
- _rifp2_rspec_list="${4#\$}" _rifp2_expr="" _rifp2_lhs="" _rifp2_rc=0 \
- _rifp2_rhs="" IFS="${RTLP_INSTALL_NL}"; _status="";
- _rifp2_lhs="${_rifp2_spec}";
+# {{{ rtlp_install_v2_fmap_patterns($_rstatus, $_rparams, $_prefix, $_spec, $_rspec_list)
+rtlp_install_v2_fmap_patterns() {
+ local _ri2fp2_rstatus="${1#\$}" _ri2fp2_rparams="${2#\$}" _ri2fp2_prefix="${3}" \
+ _ri2fp2_spec="${4}" _ri2fp2_rspec_list="${5#\$}" \
+ _ri2fp2_expr="" _ri2fp2_lhs="" _ri2fp2_rc=0 _ri2fp2_rhs="" \
+ IFS="${RTL_NL}";
+ _ri2fp2_lhs="${_ri2fp2_spec}";
while true; do
- if rtlp_install_splitl_ref \$_rifp2_expr \$_rifp2_lhs \$_rifp2_rhs '%<' '>'; then
- case "${_rifp2_expr}" in
+ if rtlp_install_v2_splitl_ref \$_ri2fp2_expr \$_ri2fp2_lhs \$_ri2fp2_rhs '%<' '>'; then
+ case "${_ri2fp2_expr}" in
+
*\**)
- if [ "${_rifp2_lhs#/}" = "${_rifp2_lhs}" ]; then
- _rifp2_lhs_full="${_rifp2_prefix:+${_rifp2_prefix%}/}${_rifp2_lhs:+${_rifp2_lhs%/}/}";
+ if [ "${_ri2fp2_lhs#/}" = "${_ri2fp2_lhs}" ]; then
+ _ri2fp2_lhs_full="${_ri2fp2_prefix:+${_ri2fp2_prefix%}/}${_ri2fp2_lhs:+${_ri2fp2_lhs%/}/}";
else
- _rifp2_lhs_full="${_rifp2_lhs:+${_rifp2_lhs%/}/}";
+ _ri2fp2_lhs_full="${_ri2fp2_lhs:+${_ri2fp2_lhs%/}/}";
fi;
- set +o noglob; for _rifp2_pname in ${_rifp2_lhs_full}${_rifp2_expr}; do
- set -o noglob; _rifp2_pname="${_rifp2_pname%/}${_rifp2_rhs:+/${_rifp2_rhs}}";
- if [ -e "${_rifp2_pname}" ]; then
- eval ${_rifp2_rspec_list}='${'"${_rifp2_rspec_list}"':+${'"${_rifp2_rspec_list}"'}${RTLP_INSTALL_NL}}${_rifp2_pname}';
+ set +o noglob; for _ri2fp2_pname in ${_ri2fp2_lhs_full}${_ri2fp2_expr}; do
+ set -o noglob; _ri2fp2_pname="${_ri2fp2_pname%/}${_ri2fp2_rhs:+/${_ri2fp2_rhs}}";
+ if [ -e "${_ri2fp2_pname}" ]; then
+ eval ${_ri2fp2_rspec_list}='${'"${_ri2fp2_rspec_list}"':+${'"${_ri2fp2_rspec_list}"'}${RTL_NL}}${_ri2fp2_pname}';
fi;
done; set -o noglob; ;;
- "") _rifp2_rc=1; _status="zero-length pattern"; break; ;;
- *) _rifp2_rc=1; _status="invalid pattern \`${_rifp2_expr}'"; break; ;;
- esac; _rifp2_lhs="${_rifp2_rhs}";
+ "") _ri2fp2_rc=1;
+ rtl_setrstatus "${_ri2fp2_rstatus}" 'zero-length pattern';
+ break; ;;
+
+ *) _ri2fp2_rc=1;
+ rtl_setrstatus "${_ri2fp2_rstatus}" 'invalid pattern \`'"${_ri2fp2_expr}"''\';
+ break; ;;
+
+ esac; _ri2fp2_lhs="${_ri2fp2_rhs}";
else
- eval ${_rifp2_rspec_list}='${'"${_rifp2_rspec_list}"':+${'"${_rifp2_rspec_list}"'}${RTLP_INSTALL_NL}}${_rifp2_lhs}';
+ eval ${_ri2fp2_rspec_list}='${'"${_ri2fp2_rspec_list}"':+${'"${_ri2fp2_rspec_list}"'}${RTL_NL}}${_ri2fp2_lhs}';
break;
fi;
- done; return "${_rifp2_rc}";
+ done;
+
+ return "${_ri2fp2_rc}";
};
# }}}
#
# Install OPeration functions
#
-# {{{ rtlp_install_op_chmod($_nflag, $_prefix, $_vflag, $_fname, $_mode)
-rtlp_install_op_chmod() {
- local _rioc_nflag="${1}" _rioc_prefix="${2}" _rioc_vflag="${3}" _rioc_fname="${4}" _rioc_mode="${5}";
+# {{{ rtlp_install_v2_op_chmod($_nflag, $_prefix, $_vflag, $_fname, $_mode)
+rtlp_install_v2_op_chmod() {
+ local _ri2oc_nflag="${1}" _ri2oc_prefix="${2}" _ri2oc_vflag="${3}" _ri2oc_fname="${4}" _ri2oc_mode="${5}";
- rtlp_install_fixup_fname \$_rioc_fname "${_rioc_prefix}";
- rtlp_install_rc "${_rioc_nflag}" "${_rioc_vflag}" rtl_fileop chmod "${_rioc_mode}" "${_rioc_fname}";
+ rtlp_install_v2_fixup_fname \$_ri2oc_fname "${_ri2oc_prefix}";
+ rtlp_install_v2_rc "${_ri2oc_nflag}" "${_ri2oc_vflag}" rtl_fileop chmod "${_ri2oc_mode}" "${_ri2oc_fname}";
};
# }}}
-# {{{ rtlp_install_op_chgrp($_nflag, $_prefix, $_vflag, $_fname, $_group)
-rtlp_install_op_chgrp() {
- local _rioc2_nflag="${1}" _rioc2_prefix="${2}" _rioc2_vflag="${3}" _rioc2_fname="${4}" _rioc2_group="${5}";
+# {{{ rtlp_install_v2_op_chgrp($_nflag, $_prefix, $_vflag, $_fname, $_group)
+rtlp_install_v2_op_chgrp() {
+ local _ri2oc2_nflag="${1}" _ri2oc2_prefix="${2}" _ri2oc2_vflag="${3}" _ri2oc2_fname="${4}" _ri2oc2_group="${5}";
- rtlp_install_fixup_fname \$_rioc2_fname "${_rioc2_prefix}";
- rtlp_install_rc "${_rioc2_nflag}" "${_rioc2_vflag}" rtl_fileop chgrp "${_rioc2_group}" "${_rioc2_fname}";
+ rtlp_install_v2_fixup_fname \$_ri2oc2_fname "${_ri2oc2_prefix}";
+ rtlp_install_v2_rc "${_ri2oc2_nflag}" "${_ri2oc2_vflag}" rtl_fileop chgrp "${_ri2oc2_group}" "${_ri2oc2_fname}";
};
# }}}
-# {{{ rtlp_install_op_chown($_nflag, $_prefix, $_vflag, $_fname, $_owner)
-rtlp_install_op_chown() {
- local _rioc3_nflag="${1}" _rioc3_prefix="${2}" _rioc3_vflag="${3}" _rioc3_fname="${4}" _rioc3_owner="${5}";
+# {{{ rtlp_install_v2_op_chown($_nflag, $_prefix, $_vflag, $_fname, $_owner)
+rtlp_install_v2_op_chown() {
+ local _ri2oc3_nflag="${1}" _ri2oc3_prefix="${2}" _ri2oc3_vflag="${3}" _ri2oc3_fname="${4}" _ri2oc3_owner="${5}";
- rtlp_install_fixup_fname \$_rioc3_fname "${_rioc3_prefix}";
- rtlp_install_rc "${_rioc3_nflag}" "${_rioc3_vflag}" rtl_fileop chown "${_rioc3_owner}" "${_rioc3_fname}";
+ rtlp_install_v2_fixup_fname \$_ri2oc3_fname "${_ri2oc3_prefix}";
+ rtlp_install_v2_rc "${_ri2oc3_nflag}" "${_ri2oc3_vflag}" rtl_fileop chown "${_ri2oc3_owner}" "${_ri2oc3_fname}";
};
# }}}
-# {{{ rtlp_install_op_cp($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
-rtlp_install_op_cp() {
- local _rioc4_nflag="${1}" _rioc4_prefix="${2}" _rioc4_vflag="${3}" _rioc4_fname_dst="${4}" _rioc4_fname_src="${5}";
+# {{{ rtlp_install_v2_op_cp($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
+rtlp_install_v2_op_cp() {
+ local _ri2oc4_nflag="${1}" _ri2oc4_prefix="${2}" _ri2oc4_vflag="${3}" _ri2oc4_fname_dst="${4}" _ri2oc4_fname_src="${5}";
- rtlp_install_fixup_fname \$_rioc4_fname_dst "${_rioc4_prefix}";
- rtlp_install_fixup_fname \$_rioc4_fname_src "${_rioc4_prefix}";
- rtlp_install_rc "${_rioc4_nflag}" "${_rioc4_vflag}" rtl_fileop cp "${_rioc4_fname_src}" "${_rioc4_fname_dst}";
+ rtlp_install_v2_fixup_fname \$_ri2oc4_fname_dst "${_ri2oc4_prefix}";
+ rtlp_install_v2_fixup_fname \$_ri2oc4_fname_src "${_ri2oc4_prefix}";
+ rtlp_install_v2_rc "${_ri2oc4_nflag}" "${_ri2oc4_vflag}" rtl_fileop cp "${_ri2oc4_fname_src}" "${_ri2oc4_fname_dst}";
};
# }}}
-# {{{ rtlp_install_op_cp_follow_if_newer($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
-rtlp_install_op_cp_follow_if_newer() {
- local _riocfin_nflag="${1}" _riocfin_prefix="${2}" _riocfin_vflag="${3}" _riocfin_fname_dst="${4}" _riocfin_fname_src="${5}";
-
- rtlp_install_fixup_fname \$_riocfin_fname_dst "${_riocfin_prefix}";
- rtlp_install_fixup_fname \$_riocfin_fname_src "${_riocfin_prefix}";
- if [ -e "${_riocfin_fname_dst}" ]\
- && rtl_is_newer "${_riocfin_fname_src}" "${_riocfin_fname_dst}"; then
+# {{{ rtlp_install_v2_op_cp_follow_if_newer($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
+rtlp_install_v2_op_cp_follow_if_newer() {
+ local _ri2ocfin_nflag="${1}" _ri2ocfin_prefix="${2}" _ri2ocfin_vflag="${3}" _ri2ocfin_fname_dst="${4}" _ri2ocfin_fname_src="${5}";
+
+ rtlp_install_v2_fixup_fname \$_ri2ocfin_fname_dst "${_ri2ocfin_prefix}";
+ rtlp_install_v2_fixup_fname \$_ri2ocfin_fname_src "${_ri2ocfin_prefix}";
+ if [ -e "${_ri2ocfin_fname_dst}" ]\
+ && rtl_is_newer "${_ri2ocfin_fname_src}" "${_ri2ocfin_fname_dst}"; then
return 0;
else
- rtlp_install_rc "${_riocfin_nflag}" "${_riocfin_vflag}" rtl_fileop cp_follow "${_riocfin_fname_src}" "${_riocfin_fname_dst}";
+ rtlp_install_v2_rc "${_ri2ocfin_nflag}" "${_ri2ocfin_vflag}" rtl_fileop cp_follow "${_ri2ocfin_fname_src}" "${_ri2ocfin_fname_dst}";
fi;
};
# }}}
-# {{{ rtlp_install_op_ln_symbolic($_nflag, $_prefix, $_vflag, $_ln_fname, $_ln_target)
-rtlp_install_op_ln_symbolic() {
- local _riols_nflag="${1}" _riols_prefix="${2}" _riols_vflag="${3}" _riols_ln_fname="${4}" _riols_ln_target="${5}";
+# {{{ rtlp_install_v2_op_ln_symbolic($_nflag, $_prefix, $_vflag, $_ln_fname, $_ln_target)
+rtlp_install_v2_op_ln_symbolic() {
+ local _ri2ols_nflag="${1}" _ri2ols_prefix="${2}" _ri2ols_vflag="${3}" _ri2ols_ln_fname="${4}" _ri2ols_ln_target="${5}";
- rtlp_install_fixup_fname \$_riols_ln_fname "${_riols_prefix}";
- if [ -e "${_riols_ln_fname}" ]; then
- rtlp_install_rc "${_riols_nflag}" "${_riols_vflag}" rtl_fileop rm "${_riols_ln_fname}";
+ rtlp_install_v2_fixup_fname \$_ri2ols_ln_fname "${_ri2ols_prefix}";
+ if [ -e "${_ri2ols_ln_fname}" ]; then
+ rtlp_install_v2_rc "${_ri2ols_nflag}" "${_ri2ols_vflag}" rtl_fileop rm "${_ri2ols_ln_fname}";
fi;
- rtlp_install_rc "${_riols_nflag}" "${_riols_vflag}" rtl_fileop ln_symbolic "${_riols_ln_target}" "${_riols_ln_fname}";
+ rtlp_install_v2_rc "${_ri2ols_nflag}" "${_ri2ols_vflag}" rtl_fileop ln_symbolic "${_ri2ols_ln_target}" "${_ri2ols_ln_fname}";
};
# }}}
-# {{{ rtlp_install_op_mkdir($_nflag, $_prefix, $_vflag, $_dname)
-rtlp_install_op_mkdir() {
- local _riom_nflag="${1}" _riom_prefix="${2}" _riom_vflag="${3}" _riom_dname="${4}";
+# {{{ rtlp_install_v2_op_mkdir($_nflag, $_prefix, $_vflag, $_dname)
+rtlp_install_v2_op_mkdir() {
+ local _ri2om_nflag="${1}" _ri2om_prefix="${2}" _ri2om_vflag="${3}" _ri2om_dname="${4}";
- rtlp_install_fixup_fname \$_riom_dname "${_riom_prefix}";
- rtlp_install_rc "${_riom_nflag}" "${_riom_vflag}" rtl_fileop mkdir "${_riom_dname}";
+ rtlp_install_v2_fixup_fname \$_ri2om_dname "${_ri2om_prefix}";
+ rtlp_install_v2_rc "${_ri2om_nflag}" "${_ri2om_vflag}" rtl_fileop mkdir "${_ri2om_dname}";
};
# }}}
-# {{{ rtlp_install_op_mv($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
-rtlp_install_op_mv() {
- local _riom2_nflag="${1}" _riom2_prefix="${2}" _riom2_vflag="${3}" _riom2_fname_dst="${4}" _riom2_fname_src="${5}";
+# {{{ rtlp_install_v2_op_mv($_nflag, $_prefix, $_vflag, $_file_fname_dst, $_file_fname_src)
+rtlp_install_v2_op_mv() {
+ local _ri2om2_nflag="${1}" _ri2om2_prefix="${2}" _ri2om2_vflag="${3}" _ri2om2_fname_dst="${4}" _ri2om2_fname_src="${5}";
- rtlp_install_fixup_fname \$_riom2_fname_dst "${_riom2_prefix}";
- rtlp_install_fixup_fname \$_riom2_fname_src "${_riom2_prefix}";
- rtlp_install_rc "${_riom2_nflag}" "${_riom2_vflag}" rtl_fileop mv "${_riom2_fname_src}" "${_riom2_fname_dst}";
+ rtlp_install_v2_fixup_fname \$_ri2om2_fname_dst "${_ri2om2_prefix}";
+ rtlp_install_v2_fixup_fname \$_ri2om2_fname_src "${_ri2om2_prefix}";
+ rtlp_install_v2_rc "${_ri2om2_nflag}" "${_ri2om2_vflag}" rtl_fileop mv "${_ri2om2_fname_src}" "${_ri2om2_fname_dst}";
};
# }}}
-# {{{ rtlp_install_op_rm($_nflag, $_prefix, $_vflag, $_pname)
-rtlp_install_op_rm() {
- local _rior_nflag="${1}" _rior_prefix="${2}" _rior_vflag="${3}" _rior_pname="${4}";
+# {{{ rtlp_install_v2_op_rm($_nflag, $_prefix, $_vflag, $_pname)
+rtlp_install_v2_op_rm() {
+ local _ri2or_nflag="${1}" _ri2or_prefix="${2}" _ri2or_vflag="${3}" _ri2or_pname="${4}";
- rtlp_install_fixup_fname \$_rior_pname "${_rior_prefix}";
- rtlp_install_rc "${_rior_nflag}" "${_rior_vflag}" rtl_fileop rm "${_rior_pname}";
+ rtlp_install_v2_fixup_fname \$_ri2or_pname "${_ri2or_prefix}";
+ rtlp_install_v2_rc "${_ri2or_nflag}" "${_ri2or_vflag}" rtl_fileop rm "${_ri2or_pname}";
};
# }}}
-# {{{ rtlp_install_op_touch($_nflag, $_prefix, $_vflag, $_fname, $_ts)
-rtlp_install_op_touch() {
- local _riot_nflag="${1}" _riot_prefix="${2}" _riot_vflag="${3}" _riot_fname="${4}" _riot_ts="${5:-}";
+# {{{ rtlp_install_v2_op_touch($_nflag, $_prefix, $_vflag, $_fname, $_ts)
+rtlp_install_v2_op_touch() {
+ local _ri2ot_nflag="${1}" _ri2ot_prefix="${2}" _ri2ot_vflag="${3}" _ri2ot_fname="${4}" _ri2ot_ts="${5:-}";
- rtlp_install_fixup_fname \$_riot_fname "${_riot_prefix}";
- rtlp_install_rc "${_riot_nflag}" "${_riot_vflag}" rtl_fileop touch "${_riot_fname}" "${_riot_ts}";
+ rtlp_install_v2_fixup_fname \$_ri2ot_fname "${_ri2ot_prefix}";
+ rtlp_install_v2_rc "${_ri2ot_nflag}" "${_ri2ot_vflag}" rtl_fileop touch "${_ri2ot_fname}" "${_ri2ot_ts}";
};
# }}}
#
# Ancillary functions
#
-# {{{ rtlp_install_fixup_fname($_rfname, $_prefix)
-rtlp_install_fixup_fname() {
- local _riff_rfname="${1#\$}" __riff_prefix="${2}" _riff_fname="";
- eval _riff_fname='${'"${_riff_rfname}"'}';
+# {{{ rtlp_install_v2_fixup_fname($_rfname, $_prefix)
+rtlp_install_v2_fixup_fname() {
+ local _ri2ff_rfname="${1#\$}" _ri2ff_prefix="${2}" _ri2ff_fname="";
+ eval _ri2ff_fname='${'"${_ri2ff_rfname}"'}';
- if [ "${_riff_fname#/}" = "${_riff_fname}" ]; then
- eval ${_riff_rfname}='${__riff_prefix:+${__riff_prefix}/}${_riff_fname}';
+ if [ "${_ri2ff_fname#/}" = "${_ri2ff_fname}" ]; then
+ eval ${_ri2ff_rfname}='${_ri2ff_prefix:+${_ri2ff_prefix}/}${_ri2ff_fname}';
fi;
};
# }}}
-# {{{ rtlp_install_rc($_nflag, $_vflag, $_fn, [...])
-rtlp_install_rc() {
- local _rir_nflag="${1}" _rir_vflag="${2}" _rir_fn="${3}" _rir_rc=0; shift 3;
+# {{{ rtlp_install_v2_rc($_nflag, $_vflag, $_fn, [...])
+rtlp_install_v2_rc() {
+ local _ri2r_nflag="${1}" _ri2r_vflag="${2}" _ri2r_fn="${3}" _ri2r_rc=0; shift 3;
- if [ "${_rir_nflag}" -eq 1 ]\
- || [ "${_rir_vflag}" -gt 0 ]; then
- rtl_log_msg "install" "${MSG_rtl_install_v2_rc}" "${_rir_fn}${_rir_fn:+ ${*}}";
+ if [ "${_ri2r_nflag}" -eq 1 ]\
+ || [ "${_ri2r_vflag}" -gt 0 ]; then
+ rtl_log_msgV "install" "${MSG_rtl_install_v2_rc}" "${_ri2r_fn}${_ri2r_fn:+ ${*}}";
fi;
- if [ "${_rir_nflag}" -eq 0 ]; then
- "${_rir_fn}" "${@}"; _rir_rc="${?}";
+ if [ "${_ri2r_nflag}" -eq 0 ]; then
+ "${_ri2r_fn}" "${@}"; _ri2r_rc="${?}";
fi;
- return "${_rir_rc}";
+ return "${_ri2r_rc}";
};
# }}}
-# {{{ rtlp_install_splitl($_rlhs, $_rrhs, $_sep)
+# {{{ rtlp_install_v2_splitl($_rlhs, $_rrhs, $_sep)
#
-# rtlp_install_splitl()
-# Slit @_rlhs from left-hand side into left-hand and right-hand side
+# rtlp_install_v2_splitl()
+# Split @_rlhs from left-hand side into left-hand and right-hand side
# according to @_sep w/ backslash escaping
#
# @_rlhs: inout reference to string and left-hand side result
@@ -283,29 +325,30 @@ rtlp_install_rc() {
# Notate bene: @_sep is a shell pattern
# Returns: zero (0) on success, non-zero (>0) on absence of unescaped @_sep in @_rlhs
#
-rtlp_install_splitl() {
- local _ris_rlhs="${1#\$}" _ris_rrhs="${2#\$}" _ris_sep="${3}" _ris_lhs="" \
- _ris_lhs_new="" _ris_rc=1 _ris_rhs="" _ris_rhs_new="";
-
- eval _ris_rhs='${'"${_ris_rlhs}"'}';
- while [ "${_ris_rhs:+1}" = 1 ]; do
- _ris_lhs_new="${_ris_rhs%%${_ris_sep}*}";
- if [ "${_ris_lhs_new}" != "${_ris_rhs}" ]; then
- _ris_rhs_new="${_ris_rhs#*${_ris_sep}}";
- if [ "${_ris_lhs_new%\\}" = "${_ris_lhs_new}" ]; then
- eval ${_ris_rlhs}='${_ris_lhs}${_ris_lhs_new}' \
- ${_ris_rrhs}='${_ris_rhs_new}'; _ris_rc=0; break;
+rtlp_install_v2_splitl() {
+ local _ri2s_rlhs="${1#\$}" _ri2s_rrhs="${2#\$}" _ri2s_sep="${3}" _ri2s_lhs="" \
+ _ri2s_lhs_new="" _ri2s_rc=1 _ri2s_rhs="" _ri2s_rhs_new="";
+
+ eval _ri2s_rhs='${'"${_ri2s_rlhs}"'}';
+ while [ "${_ri2s_rhs:+1}" = 1 ]; do
+ _ri2s_lhs_new="${_ri2s_rhs%%${_ri2s_sep}*}";
+ if [ "${_ri2s_lhs_new}" != "${_ri2s_rhs}" ]; then
+ _ri2s_rhs_new="${_ri2s_rhs#*${_ri2s_sep}}";
+ if [ "${_ri2s_lhs_new%\\}" = "${_ri2s_lhs_new}" ]; then
+ eval ${_ri2s_rlhs}='${_ri2s_lhs}${_ri2s_lhs_new}' \
+ ${_ri2s_rrhs}='${_ri2s_rhs_new}'; _ri2s_rc=0; break;
else
- _ris_lhs="${_ris_lhs}${_ris_lhs_new%\\}${_ris_sep}";
- _ris_rhs="${_ris_rhs_new}";
+ _ri2s_lhs="${_ri2s_lhs}${_ri2s_lhs_new%\\}${_ri2s_sep}";
+ _ri2s_rhs="${_ri2s_rhs_new}";
fi;
else break; fi;
- done; return "${_ris_rc}";
+ done;
+ return "${_ri2s_rc}";
};
# }}}
-# {{{ rtlp_install_splitl_ref($_ritem, $_rlhs, $_rrhs, $_sepl, $_sepr)
+# {{{ rtlp_install_v2_splitl_ref($_ritem, $_rlhs, $_rrhs, $_sepl, $_sepr)
#
-# rtlp_install_splitl_ref()
+# rtlp_install_v2_splitl_ref()
# Split @_rlhs from left-hand side into left-hand, reference, and
# right-hand side according to left-hand (beginning) and right-hand
# (ending) side separators w/ backslash escaping
@@ -320,48 +363,48 @@ rtlp_install_splitl() {
# Notate bene: @_sepl and @_sepr are shell patterns
# Returns: zero (0) on success, non-zero (>0) on absence of unescaped references in @_rlhs
#
-rtlp_install_splitl_ref() {
- local _risr_rref="${1#\$}" _risr_rlhs="${2#\$}" _risr_rrhs="${3#\$}" _risr_sepl="${4}" \
- _risr_sepr="${5}" _risr_item="" _risr_item_lhs="" _risr_item_lhs_new="" \
- _risr_item_rhs="" _risr_item_rhs_new="" _risr_lhs="" _risr_lhs_new="" _risr_rc=1 \
- _risr_rhs="" _risr_rhs_new="";
-
- eval _risr_rhs='${'"${_risr_rlhs}"'}';
- while [ "${_risr_rhs:+1}" = 1 ]; do
- _risr_lhs_new="${_risr_rhs%%${_risr_sepl}*}";
- if [ "${_risr_lhs_new}" != "${_risr_rhs}" ]; then
- _risr_rhs_new="${_risr_rhs#*${_risr_sepl}}";
- if [ "${_risr_lhs_new%\\}" = "${_risr_lhs_new}" ]; then
- _risr_item=""; _risr_item_lhs=""; _risr_item_rhs="${_risr_rhs_new}";
- while [ "${_risr_item_rhs:+1}" = 1 ]; do
- _risr_item_lhs_new="${_risr_item_rhs%%${_risr_sepr}*}";
- if [ "${_risr_item_lhs_new}" != "${_risr_item_rhs}" ]; then
- _risr_item_rhs_new="${_risr_item_rhs#*${_risr_sepr}}";
- if [ "${_risr_item_lhs_new%\\}" = "${_risr_item_lhs_new}" ]; then
- _risr_item="${_risr_item_lhs}${_risr_item_lhs_new}";
- _risr_item_rhs="${_risr_item_rhs_new}";
- _risr_rc=0; break;
+rtlp_install_v2_splitl_ref() {
+ local _ri2sr_rref="${1#\$}" _ri2sr_rlhs="${2#\$}" _ri2sr_rrhs="${3#\$}" _ri2sr_sepl="${4}" \
+ _ri2sr_sepr="${5}" _ri2sr_item="" _ri2sr_item_lhs="" _ri2sr_item_lhs_new="" \
+ _ri2sr_item_rhs="" _ri2sr_item_rhs_new="" _ri2sr_lhs="" _ri2sr_lhs_new="" _ri2sr_rc=1 \
+ _ri2sr_rhs="" _ri2sr_rhs_new="";
+
+ eval _ri2sr_rhs='${'"${_ri2sr_rlhs}"'}';
+ while [ "${_ri2sr_rhs:+1}" = 1 ]; do
+ _ri2sr_lhs_new="${_ri2sr_rhs%%${_ri2sr_sepl}*}";
+ if [ "${_ri2sr_lhs_new}" != "${_ri2sr_rhs}" ]; then
+ _ri2sr_rhs_new="${_ri2sr_rhs#*${_ri2sr_sepl}}";
+ if [ "${_ri2sr_lhs_new%\\}" = "${_ri2sr_lhs_new}" ]; then
+ _ri2sr_item=""; _ri2sr_item_lhs=""; _ri2sr_item_rhs="${_ri2sr_rhs_new}";
+ while [ "${_ri2sr_item_rhs:+1}" = 1 ]; do
+ _ri2sr_item_lhs_new="${_ri2sr_item_rhs%%${_ri2sr_sepr}*}";
+ if [ "${_ri2sr_item_lhs_new}" != "${_ri2sr_item_rhs}" ]; then
+ _ri2sr_item_rhs_new="${_ri2sr_item_rhs#*${_ri2sr_sepr}}";
+ if [ "${_ri2sr_item_lhs_new%\\}" = "${_ri2sr_item_lhs_new}" ]; then
+ _ri2sr_item="${_ri2sr_item_lhs}${_ri2sr_item_lhs_new}";
+ _ri2sr_item_rhs="${_ri2sr_item_rhs_new}";
+ _ri2sr_rc=0; break;
else
- _risr_item_lhs="${_risr_item_lhs}${_risr_item_lhs_new%\\}${_risr_sepr}";
- _risr_item_rhs="${_risr_item_rhs_new}";
+ _ri2sr_item_lhs="${_ri2sr_item_lhs}${_ri2sr_item_lhs_new%\\}${_ri2sr_sepr}";
+ _ri2sr_item_rhs="${_ri2sr_item_rhs_new}";
fi;
else break; fi;
done; break;
else
- _risr_lhs="${_risr_lhs}${_risr_lhs_new%\\}${_risr_sepl}"; _risr_rhs="${_risr_rhs_new}";
+ _ri2sr_lhs="${_ri2sr_lhs}${_ri2sr_lhs_new%\\}${_ri2sr_sepl}"; _ri2sr_rhs="${_ri2sr_rhs_new}";
fi;
else break; fi;
done;
- eval ${_risr_rref}='${_risr_item}' \
- ${_risr_rlhs}='${_risr_lhs}${_risr_lhs_new}' \
- ${_risr_rrhs}='${_risr_item_rhs}';
- return "${_risr_rc}";
+ eval ${_ri2sr_rref}='${_ri2sr_item}' \
+ ${_ri2sr_rlhs}='${_ri2sr_lhs}${_ri2sr_lhs_new}' \
+ ${_ri2sr_rrhs}='${_ri2sr_item_rhs}';
+ return "${_ri2sr_rc}";
};
# }}}
-# {{{ rtlp_install_splitl_subexpr($_rexpr, $_rlhs, $_lsep)
+# {{{ rtlp_install_v2_splitl_subexpr($_rexpr, $_rlhs, $_lsep)
#
-# rtlp_install_splitl_subexpr()
+# rtlp_install_v2_splitl_subexpr()
# Split @_rlhs from left-hand side into left-hand (subexpression) and right-hand
# side according to list of expression operator prefixes w/ backslash escaping
#
@@ -373,69 +416,205 @@ rtlp_install_splitl_ref() {
# Notate bene: @_lsep list items are shell patterns
# Returns: zero (0) on success, non-zero (>0) on absence of unescaped expressions in @_rlhs
#
-rtlp_install_splitl_subexpr() {
- local _riss_rexpr="${1#\$}" _riss_rlhs="${2#\$}" _riss_lsep="${3}" _riss_lhs="" \
- _riss_matchfl="" _riss_nsep="" _riss_rc=1 _riss_sep="" _riss_sexpr="" \
- _riss_sexpr_lhs="" _riss_sexpr_lhs_new="" _riss_sexpr_rhs="" \
- _riss_sexpr_rhs_new="" _riss_sexpr_rhs_new_min="" _riss_sexpr_rhs_new_min_new="" \
- _riss_sexpr_sep="" _riss_sexpr_sep_new=""
-
- eval _riss_lhs='${'"${_riss_rlhs}"'}'; set -- ${_riss_lsep};
- if [ "${_riss_lhs:+1}" = 1 ]; then
- _riss_matchfl=0; _riss_nsep=1; while [ "${_riss_nsep}" -le "${#}" ]; do
- eval _riss_sep='${'"${_riss_nsep}"'}';
- case "${_riss_lhs}" in
- ${_riss_sep}*) _riss_matchfl=1; break; ;;
- *) : $((_riss_nsep+=1)); ;;
+rtlp_install_v2_splitl_subexpr() {
+ local _ri2ss_rexpr="${1#\$}" _ri2ss_rlhs="${2#\$}" _ri2ss_lsep="${3}" _ri2ss_lhs="" \
+ _ri2ss_matchfl="" _ri2ss_nsep="" _ri2ss_rc=1 _ri2ss_sep="" _ri2ss_sexpr="" \
+ _ri2ss_sexpr_lhs="" _ri2ss_sexpr_lhs_new="" _ri2ss_sexpr_rhs="" \
+ _ri2ss_sexpr_rhs_new="" _ri2ss_sexpr_rhs_new_min="" _ri2ss_sexpr_rhs_new_min_new="" \
+ _ri2ss_sexpr_sep="" _ri2ss_sexpr_sep_new=""
+
+ eval _ri2ss_lhs='${'"${_ri2ss_rlhs}"'}'; set -- ${_ri2ss_lsep};
+
+ if [ "${_ri2ss_lhs:+1}" = 1 ]; then
+ _ri2ss_matchfl=0; _ri2ss_nsep=1; while [ "${_ri2ss_nsep}" -le "${#}" ]; do
+ eval _ri2ss_sep='${'"${_ri2ss_nsep}"'}';
+ case "${_ri2ss_lhs}" in
+ ${_ri2ss_sep}*) _ri2ss_matchfl=1; break; ;;
+ *) : $((_ri2ss_nsep+=1)); ;;
esac;
done;
- if [ "${_riss_matchfl}" -eq 1 ]; then
- _riss_sexpr=""; _riss_sexpr_lhs="${_riss_sep}";
- _riss_sexpr_rhs="${_riss_lhs#${_riss_sep}}";
- while [ "${_riss_sexpr_rhs:+1}" = 1 ]; do
- _riss_sexpr_rhs_new_min=-1; _riss_sexpr_sep=""; _riss_nsep=1;
- while [ "${_riss_nsep}" -le "${#}" ]; do
- eval _riss_sexpr_sep_new='${'"${_riss_nsep}"'}';
- _riss_sexpr_rhs_new="${_riss_sexpr_rhs%%${_riss_sexpr_sep_new}*}";
- if [ "${_riss_sexpr_rhs_new}" != "${_riss_sexpr_rhs}" ]; then
- _riss_sexpr_rhs_new_min_new="${#_riss_sexpr_rhs_new}";
- if [ "${_riss_sexpr_rhs_new_min_new}" -le "${_riss_sexpr_rhs_new_min}" ]\
- || [ "${_riss_sexpr_rhs_new_min}" -eq -1 ]; then
- _riss_sexpr_rhs_new_min="${_riss_sexpr_rhs_new_min_new}";
- _riss_sexpr_sep="${_riss_sexpr_sep_new}";
+
+ if [ "${_ri2ss_matchfl}" -eq 1 ]; then
+ _ri2ss_sexpr=""; _ri2ss_sexpr_lhs="${_ri2ss_sep}";
+ _ri2ss_sexpr_rhs="${_ri2ss_lhs#${_ri2ss_sep}}";
+
+ while [ "${_ri2ss_sexpr_rhs:+1}" = 1 ]; do
+ _ri2ss_sexpr_rhs_new_min=-1; _ri2ss_sexpr_sep=""; _ri2ss_nsep=1;
+ while [ "${_ri2ss_nsep}" -le "${#}" ]; do
+ eval _ri2ss_sexpr_sep_new='${'"${_ri2ss_nsep}"'}';
+ _ri2ss_sexpr_rhs_new="${_ri2ss_sexpr_rhs%%${_ri2ss_sexpr_sep_new}*}";
+ if [ "${_ri2ss_sexpr_rhs_new}" != "${_ri2ss_sexpr_rhs}" ]; then
+ _ri2ss_sexpr_rhs_new_min_new="${#_ri2ss_sexpr_rhs_new}";
+ if [ "${_ri2ss_sexpr_rhs_new_min_new}" -le "${_ri2ss_sexpr_rhs_new_min}" ]\
+ || [ "${_ri2ss_sexpr_rhs_new_min}" -eq -1 ]; then
+ _ri2ss_sexpr_rhs_new_min="${_ri2ss_sexpr_rhs_new_min_new}";
+ _ri2ss_sexpr_sep="${_ri2ss_sexpr_sep_new}";
fi;
- fi; : $((_riss_nsep+=1));
+ fi; : $((_ri2ss_nsep+=1));
done;
- if [ "${_riss_sexpr_sep:+1}" = 1 ]; then
- _riss_sexpr_lhs_new="${_riss_sexpr_rhs%%${_riss_sexpr_sep}*}";
- if [ "${_riss_sexpr_lhs_new%\\}" = "${_riss_sexpr_lhs_new}" ]; then
- _riss_sexpr_lhs="${_riss_sexpr_lhs}${_riss_sexpr_lhs_new}";
- _riss_sexpr_rhs="${_riss_sexpr_sep}${_riss_sexpr_rhs#*${_riss_sexpr_sep}}"; break;
+ if [ "${_ri2ss_sexpr_sep:+1}" = 1 ]; then
+ _ri2ss_sexpr_lhs_new="${_ri2ss_sexpr_rhs%%${_ri2ss_sexpr_sep}*}";
+ if [ "${_ri2ss_sexpr_lhs_new%\\}" = "${_ri2ss_sexpr_lhs_new}" ]; then
+ _ri2ss_sexpr_lhs="${_ri2ss_sexpr_lhs}${_ri2ss_sexpr_lhs_new}";
+ _ri2ss_sexpr_rhs="${_ri2ss_sexpr_sep}${_ri2ss_sexpr_rhs#*${_ri2ss_sexpr_sep}}"; break;
else
- _riss_sexpr_lhs="${_riss_sexpr_lhs}${_riss_sexpr_rhs%%\\${_riss_sexpr_sep}*}${_riss_sexpr_sep}";
- _riss_sexpr_rhs="${_riss_sexpr_rhs#*\\${_riss_sexpr_sep}}";
+ _ri2ss_sexpr_lhs="${_ri2ss_sexpr_lhs}${_ri2ss_sexpr_rhs%%\\${_ri2ss_sexpr_sep}*}${_ri2ss_sexpr_sep}";
+ _ri2ss_sexpr_rhs="${_ri2ss_sexpr_rhs#*\\${_ri2ss_sexpr_sep}}";
fi;
else
- _riss_sexpr_lhs="${_riss_sexpr_lhs}${_riss_sexpr_rhs}"; _riss_sexpr_rhs=""; break;
+ _ri2ss_sexpr_lhs="${_ri2ss_sexpr_lhs}${_ri2ss_sexpr_rhs}"; _ri2ss_sexpr_rhs=""; break;
fi;
done;
- eval ${_riss_rexpr}='${_riss_sexpr_lhs}' ${_riss_rlhs}='${_riss_sexpr_rhs}'; _riss_rc=0;
+
+ eval ${_ri2ss_rexpr}='${_ri2ss_sexpr_lhs}' ${_ri2ss_rlhs}='${_ri2ss_sexpr_rhs}'; _ri2ss_rc=0;
fi;
- fi; return "${_riss_rc}";
+ fi;
+
+ return "${_ri2ss_rc}";
};
# }}}
+#
+# rtl_install_v2() - install files
+# @_rstatus: reference to out variable of status string on failure
+# @[-i]: continue on soft errors
+# @[-I ifs]: process spec_list with ifs instead of NL
+# @[-n]: perform dry run
+# @[-p name=val]: set named parameter
+# @[-v]: increase verbosity
+# @_prefix: pathname prefix
+# @_spec_list: ifs-separated list of specs
+#
+# {{{ File installation DSL
+#
+# ```
+# (*
+# SH_GLOB_PATTERN = any valid portable shell pattern (see sh(1)); superset of PATHNAME
+# SH_SUBSTRING_PATTERN = any valid portable substring processing shell pattern (see sh(1));
+# superset of PATHNAME
+# PARAMETER = any valid portable shell variable name except that [0-9] may occur
+# the beginning
+# PATHNAME = any valid filename, directory name, relative or absolute pathname
+# excluding the characters NUL and NL
+# *)
+#
+# spec = { op_flag, } op_unary, "=", op_spec, "\n", { spec } ;
+# | { op_flag, } op_binary, op_spec, "=" op_spec, "\n", { spec } ;
+# | "#" COMMENT ;
+# op_unary = "-" | "/" | "t" ;
+# op_binary = ":" | "!" | "@" | "+" | "g" | "m" | "o" | "T" ;
+# op_flag = "?" ;
+# op_spec = pattern_spec | PATHNAME | expr_spec | op_spec ;
+#
+# pattern_spec = "%<", SH_GLOB_PATTERN, ">" ;
+#
+# expr_spec = "%[", expr, { sexpr_spec }, "%]" ;
+# expr = [ "@" ], "0" .. "9" | "DNAME" | "FNAME" | "ITEM" | PARAMETER ;
+#
+# sexpr_spec = sexpr_op_unary, SH_SUBSTRING_PATTERN, { sexpr } ;
+# sexpr_op_unary = "##" | "#" | "%%" | "%" ;
+# ```
+#
+# Single ``"="`` characters in ``spec``, the ``"%<"`` and ``"%["`` character
+# sequences in ``pattern_spec`` and ``expr_spec``, resp., and the ``sexpr_op_unary``
+# as well as ``sexpr_op_binary`` characters or character sequences may be
+# escaped with a single backslash (``"\"``.) ``SH_SUBSTRING_PATTERN`` differs
+# from ``SH_GLOB_PATTERN`` solely in that any of ``sexpr_op_unary`` and
+# ``sexpr_op_binary`` occuring at the beginning of or in the former must
+# be escaped with a single backslash (``"\"``,) e.g. ``"#\#pattern"`` and
+# ``"%\%pattern"``, etc. and ``"#pat\%ern"`` and ``%patt\#ern", etc., resp.
+#
+# Named parameters (``PARAMETER``) are supplied via the ``-p name=value``
+# argument to ``rtl_install()``, whereas numbered parameters are for
+# internal usage only; the ``"DNAME"``, ``"FNAME"``, and ``"ITEM"`` parameters
+# lazily evaluate to the directory name, file (aka base) name, and full
+# pathname of the current item being processed relative to a specification
+# with a pattern in it.
+#
+# The following operation flags are defined:
+#
+# | Flag | Description |
+# | --------- | ------------------------ |
+# | ``?`` | Continue on soft failure |
+#
+# The following operations are defined:
+#
+# | Operation | Arity | Description |
+# | -------------- | ------ | ---------------------------------------------------------------- |
+# | ``-`` | Unary | Remove directories and/or files |
+# | ``/`` | Unary | Create directories or trees thereof |
+# | ``t`` | Unary | touch(1) files and/or directories |
+# | ``:`` | Binary | Copy directories and/or files |
+# | ``!`` | Binary | Move/rename directories and/or files |
+# | ``@`` | Binary | Create/update symbolic links |
+# | ``+`` | Binary | Copy directories and/or files if newer and follow symbolic links |
+# | ``g`` | Binary | Set group owner of files and/or directories |
+# | ``m`` | Binary | Set mode bits of files and/or directories |
+# | ``o`` | Binary | Set user and/or group owner of files and/or directories |
+# | ``T`` | Binary | touch(1) files and/or directories with timestamp |
+#
+# The following expression modifiers are defined:
+#
+# | Modifier | Description |
+# | -------------- | ----------------------------------------- |
+# | ``@`` | Recursively reevaluate after substituting |
+#
+# The following subexpression operators are defined:
+#
+# | Operation | Arity | Description |
+# | -------------- | ------ | ---------------------------------------------------------------- |
+# | ``##`` | Unary | Remove largest prefix from left-hand side |
+# | ``#`` | Unary | Remove prefix from left-hand side |
+# | ``%%`` | Unary | Remove largest postfix from right-hand side |
+# | ``%`` | Unary | Remove postfix from right-hand side |
+#
+# ```shell
+# #
+# # Examples:
+# #
+#
+# #
+# # Create directory %[_minipix]/bin and copy all files
+# # in %[_minipix_dist]/bin/ to %[_minipix]/bin/ with
+# # identical file names.
+# /=%[_minipix]/bin
+# ?%[_minipix_dist]/bin/%<*>=%[_minipix]/bin/%[FNAME]
+#
+# #
+# # Rename all files in share/info/ matching *.info to
+# # their filenames with the `.info' postfix removed and
+# # `-2.64.info' appended and all files in share/man/man1/
+# # matching *.1 with the `.1' postfix removed and -2.64.1
+# # appended.
+# !share/info/%<*.info>=share/info/%[FNAME%.info]-2.64.info
+# !share/man/man1/%<*.1>=share/man/man1/%[FNAME%.1]-2.64.1
+#
+# #
+# # Create/update symbolic links named include/ffi.h and
+# # include/ffitarget.h with ../lib/libffi-3.2.1/include/ffi.h
+# # and ../lib/libffi-3.2.1/include/ffitarget.h as targets, resp.
+# @../lib/libffi-3.2.1/include/ffi.h=include/ffi.h
+# @../lib/libffi-3.2.1/include/ffitarget.h=include/ffitarget.h
+#
+# ```
+#
+# }}}
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_install_v2() {
- local _ri_prefix="" _ri_spec_flag="" _ri_spec_list="" _ri_iflag=0 _ri_IFS="${IFS:- }" \
- _ri_nflag=0 _ri_paramsc=0 _ri_vflag=0 _ri_IFS0 _ri_nparam=0 _ri_opt="" _ri_param="" \
- _ri_rc=0 _ri_spec="" _ri_spec_dst="" _ri_spec_src="" IFS OPTARG="" OPTIND=1; _status="";
+ local _ri2_rstatus="${1#\$}" \
+ _ri2_prefix="" _ri2_spec_flag="" _ri2_spec_list="" _ri2_iflag=0 _ri2_IFS="${IFS:- }" \
+ _ri2_nflag=0 _ri2_paramsc=0 _ri2_vflag=0 _ri2_IFS0 _ri2_nparam=0 _ri2_opt="" _ri2_param="" \
+ _ri2_rc=0 _ri2_spec="" _ri2_spec_dst="" _ri2_spec_src="" IFS OPTARG="" OPTIND=1;
+ shift;
while true; do
if [ "${1:-}" = "--" ]; then
: $((OPTIND+=1)); break;
- elif ! getopts hiI:np:v _ri_opt; then
+ elif ! getopts hiI:np:v _ri2_opt; then
break;
- else case "${_ri_opt}" in
+ else case "${_ri2_opt}" in
h) printf "usage: rtl_install [-i] [-I ifs] [-n] [-p name=val] [-v] prefix spec_list\n" >&2;
printf " -i...........: continue on soft errors\n" >&2;
printf " -I ifs.......: process spec_list with ifs instead of NL\n" >&2;
@@ -444,102 +623,107 @@ rtl_install_v2() {
printf " -v...........: increase verbosity\n" >&2;
printf " prefix.......: pathname prefix\n" >&2;
printf " spec_list....: ifs-separated list of specs\n" >&2; return 1; ;;
- i) _ri_iflag=1; ;;
- I) _ri_IFS="${OPTARG}"; ;;
- n) _ri_nflag=1; ;;
- p) : $((_ri_paramsc+=1)); local _ri_params${OPTARG%%=*}="${OPTARG#*=}"; ;;
- v) : $((_ri_vflag+=1)); ;;
+ i) _ri2_iflag=1; ;;
+ I) _ri2_IFS="${OPTARG}"; ;;
+ n) _ri2_nflag=1; ;;
+ p) : $((_ri2_paramsc+=1)); local _ri2_params${OPTARG%%=*}="${OPTARG#*=}"; ;;
+ v) : $((_ri2_vflag+=1)); ;;
*) return 1; ;;
esac; fi;
done; shift $((${OPTIND}-1));
- _ri_prefix="${1:-}"; _ri_spec_list="${2:-}"; shift 2;
- _ri_IFS0="${IFS:- }"; IFS="${_ri_IFS}"; set -- ${_ri_spec_list}; IFS="${_ri_IFS0}";
+ _ri2_prefix="${1:-}"; _ri2_spec_list="${2:-}"; shift 2;
+ _ri2_IFS0="${IFS:- }"; IFS="${_ri2_IFS}"; set -- ${_ri2_spec_list}; IFS="${_ri2_IFS0}";
while [ ${#} -gt 0 ]; do
- _ri_spec_src="${1}";
- case "${_ri_spec_src}" in
- \?*) _ri_spec_flag="?"; ;;
- *) _ri_spec_flag=""; ;;
+ _ri2_spec_src="${1}";
+ case "${_ri2_spec_src}" in
+ \?*) _ri2_spec_flag="?"; ;;
+ *) _ri2_spec_flag=""; ;;
esac;
- if ! rtlp_install_splitl \$_ri_spec_src \$_ri_spec_dst "="; then
- _ri_rc=1; _status="zero-length or invalid specification \`${1}'";
- else case "${_ri_spec_src}" in
+ if ! rtlp_install_v2_splitl \$_ri2_spec_src \$_ri2_spec_dst "="; then
+ _ri2_rc=1;
+ rtl_setrstatus "${_ri2_rstatus}" 'zero-length or invalid specification \`'"${1}"''\';
+ else case "${_ri2_spec_src}" in
+
-)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_rm "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_rm "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]"; ;;
/)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_mkdir "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_mkdir "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]"; ;;
t*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_touch "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_touch "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" "" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[5]"; ;;
:*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_src#:}" \
- rtlp_install_op_cp "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "${_ri_spec_dst}" "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_src#:}" \
+ rtlp_install_v2_op_cp "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "${_ri2_spec_dst}" "" \
-- "%[1]" "%[2]" "%[3]" "%[@4]" "%[ITEM]"; ;;
!*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_src#!}" \
- rtlp_install_op_mv "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "${_ri_spec_dst}" "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_src#!}" \
+ rtlp_install_v2_op_mv "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "${_ri2_spec_dst}" "" \
-- "%[1]" "%[2]" "%[3]" "%[@4]" "%[ITEM]"; ;;
@*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_ln_symbolic "${_ri_nflag}" "${_ri_prefix}" \
- "${_ri_vflag}" "" "${_ri_spec_src#@}" "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_ln_symbolic "${_ri2_nflag}" "${_ri2_prefix}" \
+ "${_ri2_vflag}" "" "${_ri2_spec_src#@}" "" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[@5]"; ;;
+*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_src#+}" \
- rtlp_install_op_cp_follow_if_newer "${_ri_nflag}" "${_ri_prefix}" \
- "${_ri_vflag}" "${_ri_spec_dst}" "" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_src#+}" \
+ rtlp_install_v2_op_cp_follow_if_newer "${_ri2_nflag}" "${_ri2_prefix}" \
+ "${_ri2_vflag}" "${_ri2_spec_dst}" "" \
-- "%[1]" "%[2]" "%[3]" "%[@4]" "%[ITEM]"; ;;
g*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_chgrp "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" "${_ri_spec_src#g}" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_chgrp "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" "${_ri2_spec_src#g}" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[5]"; ;;
m[0-7][0-7][0-7][0-7])
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_chmod "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" "${_ri_spec_src#m}" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_chmod "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" "${_ri2_spec_src#m}" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[5]"; ;;
o*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_chown "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" "${_ri_spec_src#o}" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_chown "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" "${_ri2_spec_src#o}" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[5]"; ;;
T*)
- rtlp_install_fmap \$_ri_params "${_ri_prefix}" "${_ri_spec_dst}" \
- rtlp_install_op_touch "${_ri_nflag}" "${_ri_prefix}" "${_ri_vflag}" \
- "" "${_ri_spec_src#T}" \
+ rtlp_install_v2_fmap "${_ri2_rstatus}" \$_ri2_params "${_ri2_prefix}" "${_ri2_spec_dst}" \
+ rtlp_install_v2_op_touch "${_ri2_nflag}" "${_ri2_prefix}" "${_ri2_vflag}" \
+ "" "${_ri2_spec_src#T}" \
-- "%[1]" "%[2]" "%[3]" "%[ITEM]" "%[5]"; ;;
\#*|"")
;;
- esac; _ri_rc="${?}"; fi;
+
+ esac; _ri2_rc="${?}"; fi;
shift;
- if [ "${_ri_rc}" -ne 0 ]\
- && [ "${_ri_iflag}" -eq 0 ]; then
+
+ if [ "${_ri2_rc}" -ne 0 ]\
+ && [ "${_ri2_iflag}" -eq 0 ]; then
break;
fi;
done;
- return "${_ri_rc}";
+
+ return "${_ri2_rc}";
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_list.subr b/subr.rtl/rtl_list.subr
index 07d401b8..0ec53661 100644
--- a/subr.rtl/rtl_list.subr
+++ b/subr.rtl/rtl_list.subr
@@ -1,177 +1,495 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
# N.B. Lists separated by SP, when passed to rtl_l*() w/ explicit IFS,
# must specify "<SP><VT>" as IFS.
#
-rtl_lassign() {
- local _vnames="${1}" _sep="${2}" _vname="" _vval=""\
- IFS RTL_LFIRST_HEAD="" RTL_LFIRST_TAIL="";
- IFS="${_sep}"; shift 2;
- for _vval in ${@}; do
- if ! rtl_lfirst "${_vnames}" " "; then
+#
+# rtl_lassignV() - assigns list of variables to list of values w/ separator
+# @_vnames: list of variable names
+# @_sep: single non-zero, possibly multi-character, separator
+# @...: list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lassignV() {
+ local _rla_vnames="${1}" _rla_sep="${2}" \
+ _rla_head="" _rla_tail="" _rla_vname="" _rla_vval="" IFS;
+ IFS="${_rla_sep}"; shift 2;
+
+ for _rla_vval in ${@}; do
+ if ! rtl_lfirst \$_rla_head \$_rla_tail "${_rla_vnames}" " "; then
return 1;
else
- _vname="${RTL_LFIRST_HEAD}"; _vnames="${RTL_LFIRST_TAIL}";
- rtl_set_var_unsafe "${_vname}" "${_vval}";
+ _rla_vname="${_rla_head}"; _rla_vnames="${_rla_tail}";
+ rtl_set_var_unsafe "${_rla_vname}" "${_rla_vval}";
fi;
done;
+ return 0;
};
+#
+# rtl_lconcat() - concatenate list with item(s)
+# @_rlist: inout reference to list
+# @_litem_new: list item(s) to concatenate with
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+# N.B.: If @_litem_new is a list of multiple items, the separator of that list
+# must be the same as @[_sep]
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lconcat() {
- local _list="${1}" _litem_new="${2}" _sep="${3:- }" IFS="${3:-${IFS:- }}";
- if [ -n "${_list}" ]; then
- printf "%s%s%s" "${_list}" "${_sep}" "${_litem_new}";
+ rtl_lconcat2 "${1}" "${1}" "${2}" "${3:-}";
+};
+
+#
+# rtl_lconcat2() - concatenate list with item(s)
+# @_rlist_new: out reference to new list
+# @_rlist: in reference to list
+# @_litem_new: list item(s) to concatenate with
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: If @_litem_new is a list of multiple items, the separator of that list
+# must be the same as @[_sep]
+#
+rtl_lconcat2() {
+ local _rlc2_rlist_new="${1#\$}" _rlc2_rlist="${2#\$}" _rlc2_litem_new="${3}" \
+ _rlc2_sep="${4:- }" IFS="${4:-${IFS:- }}";
+
+ if eval [ \"'${'${_rlc2_rlist}':+1}'\" = 1 ]; then
+ eval ${_rlc2_rlist_new}='${'"${_rlc2_rlist}"'}${_rlc2_sep}${_rlc2_litem_new}';
else
- printf "%s" "${_litem_new}";
+ eval ${_rlc2_rlist_new}='${_rlc2_litem_new}';
fi;
+ return 0;
};
+#
+# rtl_lfilter() - remove item(s) from list
+# @_rlist: inout reference to list
+# @_filter: item(s) to remove
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lfilter() {
- local _list="${1}" _filter="${2}" _sep="${3:- }" IFS="${3:-${IFS:- }}"\
- _filterfl="" _litem="" _litem_filter="" _lnew="";
- if [ -z "${_filter}" ]; then
- printf "%s" "${_list}"; return 0;
- else for _litem in ${_list}; do
- _filterfl=0;
- for _litem_filter in ${_filter}; do
- if [ "${_litem_filter}" = "${_litem}" ]; then
- _filterfl=1; break;
- fi;
- done;
- if [ "${_filterfl:-0}" -eq 0 ]; then
- _lnew="${_lnew:+${_lnew}${_sep}}${_litem}";
- fi;
- done; fi;
- printf "%s" "${_lnew}";
+ rtl_lfilter2 "${1}" "${1}" "${2}" "${3:-}";
};
+#
+# rtl_lfilter2() - remove item(s) from list
+# @_rlist: in reference to list
+# @_rlist_new: out reference to new list
+# @_filter: item(s) to remove
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lfilter2() {
- local _rlist="${1#\$}" _rlist_new="${2#\$}" _filter="${3}" _sep="${4:- }" IFS="${4:-${IFS:- }}"\
- _filterfl="" _litem="" _litem_filter="" _lnew="";
-
- if [ "${_filter:+1}" != 1 ]; then
- eval ${_rlist_new}=; return 0;
- else eval set -- '${'"${_rlist}"'}'\; ${_rlist_new}=;
- while [ "${#}" -gt 0 ]; do
- _litem="${1}"; shift; _filterfl=0;
- for _litem_filter in ${_filter}; do
- if [ "${_litem_filter}" = "${_litem}" ]; then
- _filterfl=1; break;
+ local _rlf2_rlist="${1#\$}" _rlf2_rlist_new="${2#\$}" _rlf2_filter="${3}" _rlf2_sep="${4:-}"\
+ _rlf2_filterfl="" _rlf2_list="" _rlf2_litem="" _rlf2_litem_filter="" _rlf2_lnew="";
+
+ if [ "${_rlf2_sep:+1}" = 1 ]; then
+ local IFS="${_rlf2_sep}";
+ else
+ local _rlf2_sep=" " IFS="${RTL_IFS_ORIG}";
+ fi;
+
+ if [ "${_rlf2_filter:+1}" != 1 ]; then
+ eval ${_rlf2_rlist_new}="\${${_rlf2_rlist}}";
+ else
+ eval _rlf2_list='${'"${_rlf2_rlist}"'}';
+ eval ${_rlf2_rlist_new}=;
+ for _rlf2_litem in ${_rlf2_list}; do
+ _rlf2_filterfl=0;
+ for _rlf2_litem_filter in ${_rlf2_filter}; do
+ if [ "${_rlf2_litem_filter}" = "${_rlf2_litem}" ]; then
+ _rlf2_filterfl=1; break;
fi;
done;
- if [ "${_filterfl:-0}" -eq 0 ]; then
- eval ${_rlist_new}='${'"${_rlist_new}"':+${'"${_rlist_new}"'}${_sep}}${_litem}';
+ if [ "${_rlf2_filterfl:-0}" -eq 0 ]; then
+ eval ${_rlf2_rlist_new}='${'"${_rlf2_rlist_new}"':+${'"${_rlf2_rlist_new}"'}${_rlf2_sep}}${_rlf2_litem}';
fi;
done;
fi;
+ return 0;
};
-rtl_lfilter3() {
- rtl_lfilter2 "${1}" "${1}" "${2}" "${3:-}";
-};
-
+#
+# rtl_lfirst() - obtain first (head) and remaining (tail) item(s) in list
+# @_rhead: out reference to first item (head) in list, if any
+# @_rtail: out reference to remaining items (tail) in list, if any
+# @_list: list
+# @_sep: single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lfirst() {
- local _list="${1}" _sep="${2}" IFS; IFS="${_sep}";
- set -- ${_list}; RTL_LFIRST_HEAD="${1}";
+ local _rlf_rhead="${1#\$}" _rlf_rtail="${2#\$}" _rlf_list="${3}" _rlf_sep="${4}" IFS="${4}";
+
+ set -- ${_rlf_list}; eval ${_rlf_rhead}='${1}';
if [ "${#}" -ge 0 ]; then
- shift; RTL_LFIRST_TAIL="${*}";
+ shift; eval ${_rlf_rtail}=\"'${*}'\";
else
- RTL_LFIRST_TAIL="";
+ eval ${_rlf_rtail}=;
fi;
+ return 0;
};
-rtl_llength() {
- local _list="${1}" _sep="${2:- }" IFS="${2:-${IFS:- }}" _litem="" _llength=0;
- for _litem in ${_list}; do
- : $((_llength+=1));
- done;
- printf "%s" "${_llength}";
+#
+# rtl_lindexV() - retrieve item from list
+# @_rlout: out reference to list item
+# @_idx: zero-based (from start of list) or negative (from end of list) index of list item
+# @...: list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lindexV() {
+ local _rliV_rlout="${1#\$}" _rliV_idx="${2}" \
+ _rliV_limit=0; shift 2;
+
+ if [ "${_rliV_idx#-}" != "${_rliV_idx}" ]; then
+ _rliV_idx="${_rliV_idx#-}";
+ while [ "${#}" -gt "${_rliV_idx}" ]; do
+ shift;
+ done;
+ _rliV_limit=$((${#} + 1));
+ else
+ _rliV_limit="${#}";
+ shift "${_rliV_idx}";
+ fi;
+
+ if [ "${#}" -ge 1 ]\
+ && [ "${_rliV_idx}" -lt "${_rliV_limit}" ]; then
+ eval ${_rliV_rlout}='${1}';
+ else
+ eval ${_rliV_rlout}=;
+ fi;
+ return 0;
};
-rtl_llength2() {
- local _rlist="${1#\$}" _rlen="${2#\$}" _sep="${3:- }" IFS="${3:-${IFS:- }}";
- eval set -- '${'"${_rlist}"'}'\; ${_rlen}='${#}';
+#
+# rtl_llength() - obtain count of items in list
+# @_rlen: out reference to count of items in list
+# @_rlist: in reference to list
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_llength() {
+ local _rll_rlen="${1#\$}" _rll_rlist="${2#\$}" _rll_sep="${3:- }" IFS="${3:-${IFS:- }}";
+
+ eval set -- '${'"${_rll_rlist}"'}'\; ${_rll_rlen}='${#}';
+ return 0;
};
+#
+# rtl_llift() - convert list w/ separator to new list w/ new separator
+# @_rlist: inout reference to list
+# @_sep: single non-zero, possibly multi-character, separator
+# @_sep_new: single non-zero, possibly multi-character, separator of new list
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_llift() {
- local _list="${1}" _sep="${2}" _sep_new="${3}" IFS; IFS="${_sep}";
- set -- ${_list}; IFS="${_sep_new}";
- printf "%s" "${*}";
+ rtl_llift2 "${1}" "${1}" "${2}" "${3}";
};
+#
+# rtl_llift2() - convert list w/ separator to new list w/ new separator
+# @_rlist: in reference to list
+# @_rlist_new: out reference to new list
+# @_sep: single non-zero, possibly multi-character, separator
+# @_sep_new: single non-zero, possibly multi-character, separator of new list
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_llift2() {
- local _rlist="${1#\$}" _rlist_new="${2#\$}" _sep="${3}" \
- _sep_new="${4}" IFS; IFS="${_sep}";
+ local _rl2_rlist="${1#\$}" _rl2_rlist_new="${2#\$}" _rl2_sep="${3:-}" \
+ _rl2_sep_new="${4}";
- eval set -- '${'"${_rlist}"'}'; IFS="${_sep_new}";
- eval ${_rlist_new}='"${*}"';
+ if [ "${_rl2_sep:+1}" = 1 ]; then
+ local IFS="${_rl2_sep}";
+ else
+ local _rl2_sep=" " IFS="${RTL_IFS_ORIG}";
+ fi;
+
+ eval set -- '${'"${_rl2_rlist}"'}'; IFS="${_rl2_sep_new}";
+ eval ${_rl2_rlist_new}='"${*}"';
+ return 0;
};
-rtl_llift3() {
- rtl_llift2 "${1}" "${1}" "${2}" "${3}";
+#
+# rtl_llift_set() - convert list w/ separator to set
+# @_rlist: in reference to list
+# @_rset_new: out reference to new set
+# @_sep: single non-zero, possibly multi-character, separator
+#
+# Notate bene: all list items in @_rlist must form valid shell parameter name substrings;
+# no list item must be named "__000000__"
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_llift_set() {
+ local _rls3_rlist="${1#\$}" _rls3_rset_new="${2#\$}" _rls3_sep="${3:-}" \
+ _rls3_litem="";
+
+ if [ "${_rls3_sep:+1}" = 1 ]; then
+ local IFS="${_rls3_sep}";
+ else
+ local _rls3_sep=" " IFS="${RTL_IFS_ORIG}";
+ fi;
+
+ eval set -- '${'"${_rls3_rlist}"'}';
+ eval "${_rls3_rset_new}___000000__=\${${_rls3_rlist}}";
+ for _rls3_litem in "${@}"; do
+ eval "${_rls3_rset_new}_${_rls3_litem}=1";
+ done;
+ return 0;
};
+#
+# rtl_llift_unset() - unset set previously created w/ rtl_llift_set()
+# @_rset: in reference to set
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_llift_unset() {
+ local _rlu_rset="${1#\$}" \
+ _rlu_index="" _rlu_item="";
+
+ if rtl_get_var_unsafe \$_rlu_index "${_rlu_rset}___000000__"; then
+ for _rlu_item in ${_rlu_index}; do
+ unset "${_rlu_rset}_${_rlu_item}";
+ done;
+ unset "${_rlu_rset}___000000__";
+ fi;
+
+ return 0;
+};
+
+#
+# rtl_lmatch() - check if item(s) in list
+# @_rlist: in reference to list
+# @_item: item(s) to search for
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lmatch() {
- local _list="${1}" _item="${2}" _sep="${3:- }";
- [ -n "$(rtl_lsearch "${_list}" "${_item}" "${_sep}")" ];
+ local _rlm_rlist="${1#\$}" _rlm_item="${2}" _rlm_sep="${3:-}" \
+ _rlm_list_="";
+
+ rtl_lsearch2 "${_rlm_rlist}" \$_rlm_list_ "${_rlm_item}" "${_rlm_sep}";
+ [ "${_rlm_list_:+1}" = 1 ];
};
+#
+# rtl_lmax() - obtain maximum length of items in list
+# @_rlist: in reference to list
+# @_rmax: out reference to maximum length of items variable
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lmax() {
- local _len=0 _len_max=0;
+ local _rlm2_rlist="${1#\$}" _rlm2_rmax="${2#\$}" \
+ _rlm2_len=0 _rlm2_len_max=0;
+
+ eval set -- '${'"${_rlm2_rlist}"'}';
while [ "${#}" -gt 0 ]; do
- _len="${#1}";
- if [ "${_len}" -gt "${_len_max}" ]; then
- _len_max="${_len}";
+ _rlm2_len="${#1}";
+ if [ "${_rlm2_len}" -gt "${_rlm2_len_max}" ]; then
+ _rlm2_len_max="${_rlm2_len}";
fi; shift;
- done; printf "%s" "${_len_max}";
+ done;
+ eval ${_rlm2_rmax}='${_rlm2_len_max}';
+ return 0;
+};
+
+#
+# rtl_lrangeV() - retrieve item(s) from list w/ range
+# @_rlout: out reference to list item
+# @_idx0: zero-based (from start of list) or negative (from end of list) start index of list item
+# @_idx1: zero-based (from start of list) or negative (from end of list) end index of list item
+# @_sep: single non-zero, possibly multi-character, separator
+# @...: list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lrangeV() {
+ local _rlrV_rlout="${1#\$}" _rlrV_idx0="${2}" _rlrV_idx1="${3}" _rlrV_sep="${4}" \
+ _rlrV_limit=0; shift 4;
+
+ if [ "${_rlrV_idx0#-}" != "${_rlrV_idx0}" ]; then
+ eval ${_rlrV_rlout}=;
+
+ return 1;
+ elif [ "${_rlrV_idx1#-}" != "${_rlrV_idx1}" ]; then
+ _rlrV_idx1="${_rlrV_idx1#-}";
+
+ _rlrV_limit="${#}";
+ shift "${_rlrV_idx0}";
+
+ eval ${_rlrV_rlout}=;
+ while [ "${#}" -gt 0 ]\
+ && [ "${_rlrV_idx1}" -lt "${#}" ];
+ do
+ eval ${_rlrV_rlout}='${'"${_rlrV_rlout}"':+${'"${_rlrV_rlout}"'}${_rlrV_sep}}${1}';
+ shift;
+ done;
+
+ return 0;
+ elif [ "${_rlrV_idx1}" -ge "${_rlrV_idx0}" ]; then
+ _rlrV_limit="${#}";
+ shift "${_rlrV_idx0}";
+ : $((_rlrV_idx1 -= ${_rlrV_idx0}));
+ : $((_rlrV_idx1 += 1));
+
+ eval ${_rlrV_rlout}=;
+ while [ "${_rlrV_idx1}" -gt 0 ]\
+ && [ "${#}" -gt 0 ];
+ do
+ eval ${_rlrV_rlout}='${'"${_rlrV_rlout}"':+${'"${_rlrV_rlout}"'}${_rlrV_sep}}${1}';
+ : $((_rlrV_idx1 -= 1));
+ shift;
+ done;
+
+ return 0;
+ fi;
};
+#
+# rtl_lsearch() - obtains item(s) from list
+# @_rlist: inout reference to list
+# @_filter: item(s) to search for and include in new list
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lsearch() {
- local _list="${1}" _filter="${2}" _sep="${3:- }" IFS="${3:-${IFS:- }}"\
- _litem="" _litem_filter="" _lnew="";
- if [ -z "${_filter}" ]; then
- printf "%s" "${_list}"; return 0;
- else for _litem in ${_list}; do
- for _litem_filter in ${_filter}; do
- if [ "${_litem_filter}" = "${_litem}" ]; then
- _lnew="${_lnew:+${_lnew}${_sep}}${_litem}";
- break;
- fi;
+ rtl_lsearch2 "${1}" "${1}" "${2}" "${3:-}";
+}
+
+#
+# rtl_lsearch2() - obtains item(s) from list
+# @_rlist: in reference to list
+# @_rlist_new: out reference to new list
+# @_filter: item(s) to search for and include in new list
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lsearch2() {
+ local _rls2_rlist="${1#\$}" _rls2_rlist_new="${2#\$}" \
+ _rls2_filter="${3}" _rls2_sep="${4:-}" \
+ _rls2_list="" _rls2_litem="" _rls2_litem_filter="" \
+ _rls2_lnew="";
+
+ if [ "${_rls2_sep:+1}" = 1 ]; then
+ local IFS="${_rls2_sep}";
+ else
+ local _rls2_sep=" " IFS="${RTL_IFS_ORIG}";
+ fi;
+ if [ "${_rls2_filter:+1}" != 1 ]; then
+ eval ${_rls2_rlist_new}='${_rls2_list}'; return 0;
+ else
+ eval _rls2_list='${'"${_rls2_rlist}"'}';
+ for _rls2_litem in ${_rls2_list}; do
+ for _rls2_litem_filter in ${_rls2_filter}; do
+ if [ "${_rls2_litem_filter}" = "${_rls2_litem}" ]; then
+ _rls2_lnew="${_rls2_lnew:+${_rls2_lnew}${_rls2_sep}}${_rls2_litem}";
+ break;
+ fi;
+ done;
done;
- done; fi;
- printf "%s" "${_lnew}";
+ fi;
+
+ eval ${_rls2_rlist_new}='${_rls2_lnew}';
+ return 0;
};
+#
+# rtl_lsearch_patternl() - obtain item(s) from list matching pattern
+# @_rlist: inout reference to list
+# @_pattern: pattern of item(s) to search for and include in list
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_lsearch_patternl() {
- local _list="${1}" _pattern="${2}" _sep="${3:- }" IFS="${3:-${IFS:- }}"\
- _litem="" _lnew="";
- if [ -n "${_pattern}" ]; then
- for _litem in ${_list}; do
- if [ "${_litem#${_pattern}}" != "${_litem}" ]; then
- _lnew="${_lnew:+${_lnew}${_sep}}${_litem}";
+ rtl_lsearch_patternl2 "${1}" "${1}" "${2}" "${3:-}";
+};
+
+#
+# rtl_lsearch_patternl2() - obtain item(s) from list matching pattern
+# @_rlist: in reference to list
+# @_rlist_new: out reference to new list
+# @_pattern: pattern of item(s) to search for and include in new list
+# @[_sep]: optional single non-zero, possibly multi-character, separator
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lsearch_patternl2() {
+ local _rlsp2_rlist="${1#\$}" _rlsp2_rlist_new="${2#\$}" \
+ _rlsp2_pattern="${3}" _rlsp2_sep="${4:- }" \
+ IFS="${4:-${IFS:- }}" \
+ _rlsp2_litem="" _rlsp2_lnew="";
+
+ if [ "${_rlsp2_pattern:+1}" = 1 ]; then
+ eval _rlsp2_list='${'"${_rlsp2_rlist}"'}';
+ for _rlsp2_litem in ${_rlsp2_list}; do
+ if [ "${_rlsp2_litem#${_rlsp2_pattern}}" != "${_rlsp2_litem}" ]; then
+ _rlsp2_lnew="${_rlsp2_lnew:+${_rlsp2_lnew}${_rlsp2_sep}}${_rlsp2_litem}";
fi;
done;
fi;
- printf "%s" "${_lnew}";
+ eval ${_rlsp2_rlist_new}='${_rlsp2_lnew}';
+ return 0;
};
-rtl_lsort() {
- local _list="${1}" _sep="${2:- }";
- printf "%s" "${_list}" | tr "${_sep}" "\n" | sort | paste -s -d "${_sep}";
+#
+# rtl_lsortV() - sort list w/ sort(1)
+# @...: list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_lsortV() {
+ printf "%s" "${*}" | tr " " "\n" | sort | paste -s -d " ";
+ return 0;
};
-rtl_lunfold_depends() {
- local _vname_template="${1}" _depends="" _name="" _names=""; shift;
- for _name in "${@}"; do
- if _depends="$(rtl_get_var_unsafe -u "$(eval printf \"%s\" \""${_vname_template}"\")")"\
- && [ -n "${_depends}" ]; then
- _depends="$(rtl_lunfold_depends "${_vname_template}" ${_depends})";
- _names="$(rtl_lconcat "${_names}" "${_depends}")";
+#
+# rtl_lunfold_dependsV() - expand list into list w/ unfolded dependencies for each list item
+# @_vname_template: template of variable names containing dependencies for each list item
+# @_rlist: out reference to list w/ unfolded dependencies
+# @...: list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+RTL_LUNFOLD_DEPENDSV_LEVEL=0;
+rtl_lunfold_dependsV() {
+ local _rld_vname_template="${1}" _rld_rlist="${2#\$}" \
+ _rld_depends="" _rld_list="" _rld_name="" _rld_names="" \
+ _rld_vname_template_="";
+ shift 2;
+
+ for _rld_name in "${@}"; do
+ eval _rld_vname_template_=\"${_rld_vname_template}\";
+ if rtl_get_var_unsafe \$_rld_depends -u "${_rld_vname_template_}"\
+ && [ "${_rld_depends:+1}" = 1 ]; then
+ : $((RTL_LUNFOLD_DEPENDSV_LEVEL+=1));
+ eval _rld_depends${RTL_LUNFOLD_DEPENDSV_LEVEL}='${_rld_depends}';
+ rtl_lunfold_dependsV "${_rld_vname_template}" \$_rld_depends${RTL_LUNFOLD_DEPENDSV_LEVEL} ${_rld_depends};
+ eval _rld_depends='${_rld_depends'"${RTL_LUNFOLD_DEPENDSV_LEVEL}"'}';
+ unset '_rld_depends'"${RTL_LUNFOLD_DEPENDSV_LEVEL}";
+ : $((RTL_LUNFOLD_DEPENDSV_LEVEL-=1));
+ rtl_lconcat \$_rld_names "${_rld_depends}";
fi;
- _names="$(rtl_lconcat "${_names}" "${_name}")";
+ rtl_lconcat \$_rld_names "${_rld_name}";
done;
- printf "%s" "${_names}";
+ eval ${_rld_rlist}='${_rld_names}';
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_log.subr b/subr.rtl/rtl_log.subr
index 3a7560a5..69e620bf 100644
--- a/subr.rtl/rtl_log.subr
+++ b/subr.rtl/rtl_log.subr
@@ -1,88 +1,214 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
#
-# Private globals and subroutines
+# Private globals
#
RTLP_LOG_FNAME="";
RTLP_LOG_NO_ATTR=0;
RTLP_LOG_TAGS="";
+RTLP_LOG_TERMINAL_COLOURS="$(tput colors 2>/dev/null)";
-rtlp_log_printf() {
- local _attr="${1}" _fmt_pfx="${2}" _fmt="${3#*;}" _fmt_argc="${3%%;*}"; shift 3;
- if [ "${#}" -ne "${_fmt_argc}" ]; then
- if [ "${_fmt_argc}" -eq 0 ]; then
+#
+# Private subroutines
+#
+
+#
+# rtlp_log_msg_get_attr() - get attributes e.g. ANSI escape sequences for single log tag
+# @_rattr: out reference to attributes e.g. ANSI escape sequences
+# @_tag: tag to log message at
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtlp_log_msg_get_attr() {
+ local _rplmga_rattr="${1#\$}" _rplmga_tag="${2}" \
+ _rplmga_attr="" _rplmga_attr_state="" \
+ _rplmga_term_colour=0;
+
+ if [ "${RTLP_LOG_TERMINAL_COLOURS}" = 256 ]; then
+ set -- 256 "";
+ else
+ set -- "";
+ fi;
+
+ for _rplmga_term_colour in "${@}"; do
+ eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}';
+
+ if [ "${_rplmga_attr:+1}" = 1 ]; then
+ break;
+ else
+ eval _rplmga_attr_state='${RTLP_ATTR_STATE_'"${_rplmga_tag}"':-}';
+ if [ "${_rplmga_attr_state:+1}" != 1 ]; then
+ _rplmga_attr_state=0;
+ else
+ : $((_rplmga_attr_state += 1));
+ fi;
+ eval "RTLP_ATTR_STATE_${_rplmga_tag}=${_rplmga_attr_state}";
+
+ if [ "$((${_rplmga_attr_state} % 2))" -eq 0 ]; then
+ eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}"'_even'"${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}';
+ else
+ eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}"'_odd'"${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}';
+ fi;
+
+ if [ "${_rplmga_attr:+1}" = 1 ]; then
+ break;
+ fi;
+ fi;
+ done;
+
+ eval ${_rplmga_rattr}='${_rplmga_attr}';
+ return 0;
+};
+
+#
+# rtlp_log_printfV() - print single message to log file
+# @_attr: attributes e.g. ANSI escape sequences to log message with
+# @_fmt_pfx: printf(1) format string prefix
+# @_fmt: printf(1) format string
+# @...: parameters to printf(1) w/ @_fmt
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtlp_log_printfV() {
+ local _rplp_attr="${1}" _rplp_fmt_pfx="${2}" \
+ _rplp_fmt="${3#*;}" _rplp_fmt_argc="${3%%;*}";
+ shift 3;
+
+ if [ "${#}" -ne "${_rplp_fmt_argc}" ]; then
+ if [ "${_rplp_fmt_argc}" -eq 0 ]; then
shift "${#}";
else
- rtlp_log_printf "" "" "0;==> FIXME TODO XXX MESSAGE STRING ARGUMENT COUNT MISMATCH\n";
+ rtlp_log_printfV "" "" "0;==> FIXME TODO XXX MESSAGE STRING ARGUMENT COUNT MISMATCH\n";
fi;
fi;
- _msg="$(printf "${_fmt_pfx}${_fmt}" "${@}")";
+ _rplp_msg="$(printf "${_rplp_fmt_pfx}${_rplp_fmt}" "${@}")";
- if [ -n "${RTLP_LOG_FNAME}" ]; then
- printf "%s\n" "${_msg}" >> "${RTLP_LOG_FNAME}";
+ if [ "${RTLP_LOG_FNAME:+1}" = 1 ]; then
+ printf "%s\n" "${_rplp_msg}" >> "${RTLP_LOG_FNAME}";
fi;
if [ "${RTLP_LOG_NO_ATTR:-0}" -eq 0 ]; then
- printf "\033[0m\033[${_attr}m%s\033[0m\n" "${_msg}";
+ printf "\033[0m\033[${_rplp_attr}m%s\033[0m\n" "${_rplp_msg}";
else
- printf "%s\n" "${_msg}";
- fi; return 0;
+ printf "%s\n" "${_rplp_msg}";
+ fi;
+ return 0;
};
#
# Public subroutines
#
+#
+# rtl_log_clear_tags() - clear all log tags
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_log_clear_tags() {
- RTLP_LOG_TAGS=""; return 0;
+ RTLP_LOG_TAGS="";
+ return 0;
};
-rtl_log_enable_tags() {
+#
+# rtl_log_enable_tagsV() - enable log tags
+# @...: list of tags to enable as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_log_enable_tagsV() {
local IFS=","; set -- ${*};
+
while [ "${#}" -gt 0 ]; do
- if ! rtl_lmatch "${RTLP_LOG_TAGS}" "${1}" ","; then
+ if ! rtl_lmatch \$RTLP_LOG_TAGS "${1}" ","; then
RTLP_LOG_TAGS="${RTLP_LOG_TAGS:+${RTLP_LOG_TAGS},}${1}";
fi; shift;
- done; return 0;
+ done;
+ return 0;
};
+#
+# rtl_log_env_vars() - log all environment variables to log file
+# @_tag: tag to log environment variables at
+# @_type: type string printed in log message header
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_log_env_vars() {
- local _tag="${1}" _type="${2}" _arg_len_max=0; shift 2;
+ local _rlev_tag="${1}" _rlev_type="${2}" \
+ _rlev_arg_len_max=0 _rlev_list="" _rlev_msg="" _rlev_msg_="";
+ shift 2;
- rtl_log_msg "${_tag}" "${MSG_rtl_log_vars_header}" "${_type}";
- _arg_len_max="$(rtl_lmax "${@}")";
+ rtl_log_msgV "${_rlev_tag}" "${MSG_rtl_log_vars_header}" "${_rlev_type}";
+ _rlev_list="${@}"; rtl_lmax \$_rlev_list \$_rlev_arg_len_max;
while [ "${#}" -gt 0 ]; do
- rtl_log_msg "${_tag}" \
- "2;%${_arg_len_max}.${_arg_len_max}s=%s" \
- "${1%%=*}" "$(rtl_get_var_unsafe "${1#*=}")";
+ rtl_get_var_unsafe \$_rlev_msg "${1#*=}";
+ rtl_llift2 \$_rlev_msg \$_rlev_msg_ "" " ";
+ rtl_log_msgV "${_rlev_tag}" \
+ "2;%${_rlev_arg_len_max}.${_rlev_arg_len_max}s=%s" \
+ "${1%%=*}" "${_rlev_msg_}";
shift;
- done; return 0;
+ done;
+ return 0;
};
-rtl_log_msg() {
- local _tag="${1}" _fmt="${2}" _attr="" _exitfl=0; shift 2;
+#
+# rtl_log_msgV() - log message to log file
+# @_tag: tag to log message at
+# @_fmt: printf(1) format string
+# @...: parameters to printf(1) w/ @_fmt
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: Optional attributes e.g. ANSI escape sequences w/ which the the log message is to
+# be printed are taken from the variable corresponding to @_tag named "LOG_TAG_<@_tag>",
+# if present/set.
+#
+# @_tag must have previously been enabled w/ rtl_log_enable_tagsV() to be logged at all.
+#
+rtl_log_msgV() {
+ local _rlm3_tag="${1}" _rlm3_fmt="${2}" \
+ _rlm3_attr="" _rlm3_date_now=0 _rlm3_exitfl=0
+ shift 2;
- [ "x${_tag}" = "xfatalexit" ] && { _tag="fatal"; _exitfl=1; };
- if rtl_lmatch "${RTLP_LOG_TAGS}" "${_tag}" ","; then
- eval _attr='${LOG_TAG_'"${_tag}"':-}';
- if [ "${#_attr}" -eq 0 ]; then
- rtlp_log_printf "" "" "0;==> FIXME TODO XXX UNKNOWN TAG \`${_tag}' PASSED TO rtl_log_msg()\n";
- fi;
- rtlp_log_printf "${_attr}" "==> $(rtl_date) " "${_fmt}" "${@}";
- if [ "${_exitfl}" -eq 1 ]; then
+ if [ "x${_rlm3_tag}" = "xfatalexit" ]; then
+ _rlm3_tag="fatal"; _rlm3_exitfl=1;
+ fi;
+
+ if [ "${_rlm3_tag}" = "fatal" ]\
+ || rtl_lmatch \$RTLP_LOG_TAGS "${_rlm3_tag}" ",";
+ then
+ rtlp_log_msg_get_attr \$_rlm3_attr "${_rlm3_tag}";
+ rtl_date \$_rlm3_date_now;
+ rtlp_log_printfV "${_rlm3_attr}" "==> ${_rlm3_date_now} " "${_rlm3_fmt}" "${@}";
+ if [ "${_rlm3_exitfl}" -eq 1 ]; then
exit 1;
fi;
- fi; return 0;
+ fi;
+ return 0;
};
+#
+# rtl_log_set_fname() - set log file pathname
+# @_fname: pathname to new log file
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_log_set_fname() {
- RTLP_LOG_FNAME="${1}"; return 0;
+ RTLP_LOG_FNAME="${1}";
+ return 0;
};
+#
+# rtl_log_set_no_attr() - set or clear no ANSI escape sequences in log file flag
+# @_flag: either 0 to set or 1 to clear no ANSI escape sequences in log file flag
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_log_set_no_attr() {
- RTLP_LOG_NO_ATTR="${1}"; return 0;
+ RTLP_LOG_NO_ATTR="${1}";
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_platform.subr b/subr.rtl/rtl_platform.subr
index dd50852b..a58b71a3 100644
--- a/subr.rtl/rtl_platform.subr
+++ b/subr.rtl/rtl_platform.subr
@@ -1,124 +1,237 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
-rtl_check_prereqs() {
- local _cmd="" _cmds_missing="" _rc=0; _status="";
- for _cmd in "${@}"; do
- if ! which "${_cmd}" >/dev/null 2>&1; then
- _cmds_missing="${_cmds_missing:+${_cmds_missing} }${_cmd}";
+#
+# rtl_check_prereqsV() - check for existence of list of commands
+# @_rstatus: out reference to status string
+# @...: commands list as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_check_prereqsV() {
+ local _rcp_rstatus="${1#\$}" \
+ _rcp_cmd="" _rcp_cmds_missing="" _rcp_rc=0;
+ shift;
+
+ for _rcp_cmd in "${@}"; do
+ if ! which "${_rcp_cmd}" >/dev/null 2>&1; then
+ _rcp_cmds_missing="${_rcp_cmds_missing:+${_rcp_cmds_missing} }${_rcp_cmd}";
fi;
done;
- if [ -n "${_cmds_missing}" ]; then
- _rc=1; _status="Error: missing prerequisite package(s): ${_cmds_missing}";
+ if [ "${_rcp_cmds_missing:+1}" = 1 ]; then
+ _rcp_rc=1;
+ rtl_setrstatus "${_rcp_rstatus}" 'Error: missing prerequisite package(s): '"${_rcp_cmds_missing}";
fi;
- return "${_rc}";
+ return "${_rcp_rc}";
};
+#
+# rtl_clean_env() - unset environment variables w/ exceptions
+# @_env_vars_except: list of environment variables to keep
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_clean_env() {
- local _env_vars_except="${1}" _env_var="" _env_vars="";
- _env_vars="$(export | sed -ne '/^export/{s/^export //;s/=.*$//p}')";
- for _env_var in ${_env_vars}; do
- if [ "${_env_var#DEFAULT_}" != "${_env_var}" ]\
- || [ "${_env_var#PKG_}" != "${_env_var}" ]; then
- _env_vars_except="$(rtl_lconcat "${_env_vars_except}" "${_env_var}")";
+ local _rce_env_vars_except="${1}" \
+ _rce_env_var="" _rce_env_vars="" _rce_env_vars_unset="";
+
+ _rce_env_vars="$(export | sed -ne '/^export/{s/^export //;s/=.*$//p}')";
+
+ for _rce_env_var in ${_rce_env_vars}; do
+ if [ "${_rce_env_var#DEFAULT_}" != "${_rce_env_var}" ]\
+ || [ "${_rce_env_var#PKG_}" != "${_rce_env_var}" ]; then
+ rtl_lconcat \$_rce_env_vars_except "${_rce_env_var}";
fi;
done;
- rtl_unset_vars $(rtl_lfilter "${_env_vars}" "${_env_vars_except}");
+ rtl_lfilter2 \$_rce_env_vars \$_rce_env_vars_unset "${_rce_env_vars_except}";
+ rtl_unset_vars ${_rce_env_vars_unset};
+
+ return 0;
};
+#
+# rtl_get_cpu_count() - obtain CPU count
+# @_rstatus: out reference to status string
+# @_rcount: out reference to CPU count
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_get_cpu_count() {
- local _line="" _ncpus=0 _rc=0 _sname="$(uname -s 2>/dev/null)"; _status="";
- case "${_sname}" in
+ local _rgcc_rstatus="${1#\$}" _rgcc_rcount="${2#\$}" \
+ _rgcc_line="" _rgcc_ncpus=0 _rgcc_rc=0 _rgcc_sname="";
+
+ _rgcc_sname="$(uname -s 2>/dev/null)" || return 1;
+ case "${_rgcc_sname}" in
+
Linux) if [ ! -e "/proc/cpuinfo" ]; then
- _rc=1; _status="Error: /proc/cpuinfo non-existent.";
- else while read -r _line; do
- if rtl_match "${_line}" "processor*:"; then
- : $((_ncpus+=1));
+ _rgcc_rc=1;
+ rtl_setrstatus "${_rgcc_rstatus}" 'Error: /proc/cpuinfo non-existent.';
+ else while read -r _rgcc_line; do
+ if rtl_match "${_rgcc_line}" "processor*:"; then
+ : $((_rgcc_ncpus+=1));
fi;
- done < /proc/cpuinfo; printf "%s" "${_ncpus}";
+ done < /proc/cpuinfo;
+ _rgcc_rc=0;
+ rtl_setrstatus "${_rgcc_rstatus}" "";
fi; ;;
- *) _rc=1; _status="Error: unknown platform \`${_sname}'."; ;;
- esac; return "${_rc}";
+
+ *) _rgcc_rc=1;
+ rtl_setrstatus "${_rgcc_rstatus}" 'Error: unknown platform \`'"${_rgcc_sname}"''\''.';
+ ;;
+
+ esac;
+ eval ${_rgcc_rcount}='${_rgcc_ncpus}';
+ return "${_rgcc_rc}";
};
+#
+# rtl_get_var_unsafe() - get value of variable
+# @_rvval: out reference to variable value
+# @[-u]: optionally convert variable name to upper case
+# @_vname: variable name
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: This function is *unsafe* and impossible to implement otherwise w/o filtering @_vname
+# and implicitly allows for code execution and other undefined behaviour via @_vname.
+# Do *not* pass untrusted input through @_vname.
+#
rtl_get_var_unsafe() {
- local _vname="";
+ local _rgvu_rvval="${1#\$}" \
+ _rgvu_vname="";
+ shift;
+
if [ "x${1}" = "x-u" ]; then
- shift; _vname="$(rtl_toupper "${1}")";
+ shift; _rgvu_vname="${1}"; rtl_toupper \$_rgvu_vname;
else
- _vname="${1}";
+ _rgvu_vname="${1}";
fi;
- eval echo \${${_vname}} 2>/dev/null;
-};
-
-rtl_get_vars_fast() {
- local _pattern="${1}";
- set | awk -F= '/'"${_pattern}"'/{print $1}' | sort;
+ eval ${_rgvu_rvval}="\${${_rgvu_vname}:-}";
+ return 0;
};
+#
+# rtl_kill_tree() - kill tree of processes
+# @_rpids: inout reference to list of PIDs
+# @_pid: top-level PID
+# @_signal: signal(7) to kill with
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_kill_tree() {
- local _pid="${1}" _signal="${2:-TERM}" _pid_child="" _pids="";
- if _pids="$(pgrep -P "${_pid}")"\
- && [ -n "${_pids}" ]; then
- for _pid_child in ${_pids}; do
- rtl_kill_tree "${_pid_child}" "${_signal}";
+ local _rkt_rpids="${1#\$}" _rkt_pid="${2}" _rkt_signal="${3:-TERM}" \
+ _rkt_pid_child="" _rkt_pids="";
+
+ if _rkt_pids="$(pgrep -P "${_rkt_pid}")"\
+ && [ "${_rkt_pids:+1}" = 1 ]; then
+ for _rkt_pid_child in ${_rkt_pids}; do
+ rtl_kill_tree "${_rkt_rpids}" "${_rkt_pid_child}" "${_rkt_signal}";
done;
fi;
- if [ "${_pid:-0}" -ne "${$}" ]\
- && kill "-${_signal}" "${_pid}" 2>/dev/null; then
- RTL_KILL_TREE_PIDS="$(rtl_lconcat "${RTL_KILL_TREE_PIDS}" "${_pid}")";
+ if [ "${_rkt_pid:-0}" -ne "${$}" ]\
+ && kill "-${_rkt_signal}" "${_rkt_pid}" 2>/dev/null; then
+ rtl_lconcat "${_rkt_rpids}" "${_rkt_pid}";
fi;
+ return 0;
};
-rtl_prompt() {
- local _fmt="${1}" _choice=""; shift;
- printf "${_fmt}? (y|N) " "${@}";
- read -r _choice;
- case "${_choice}" in
- [yY]) _choice=1; ;;
- *) _choice=0; ;;
- esac;
- return "${_choice}";
-};
-
-rtl_rc() {
- local _nflag="${1}" _cmd="${2}"; shift 2;
- case "${_nflag}" in
- 1) if [ "${#}" -gt 0 ]; then
- rtl_log_msg "verbose" "${MSG_rtl_platform_rc1}" "${_cmd}" "${*}";
- else
- rtl_log_msg "verbose" "${MSG_rtl_platform_rc2}" "${_cmd}";
- fi; ;;
- *) "${_cmd}" "${@}";
- esac;
-};
+#
+# rtl_run_cmdlineV() - run command line w/ field splitting applied
+# @_sep: single non-zero, possibly multi-character, separator
+# @_cmd: command name
+# @...: command arguments as positional parameters
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: This is required in situations where any of the command arguments 1) are passed from
+# and as a single, expanded parameter (e.g. "${MAKEFLAGS:-}") 2) the value of the parameter
+# contains multiple parameters separated by @_sep that must be passed as separate arguments
+# to @_cmd.
+#
+rtl_run_cmdlineV() {
+ local _rrc_sep="${1}" _rrc_cmd="${2}" \
+ _rrc_cmdline="" _rrc_rc="" IFS;
+ shift 2;
-rtl_run_cmd_unsplit() {
- local _cmd="${1}" _cmdline="" _rc="" IFS; shift;
while [ ${#} -gt 0 ]; do
- [ -n "${1}" ] &&\
- _cmdline="${_cmdline:+${_cmdline}:}${1}";
+ [ "${1:+1}" = 1 ] &&\
+ _rrc_cmdline="${_rrc_cmdline:+${_rrc_cmdline}${_rrc_sep}}${1}";
shift;
done;
- IFS=:; ${_cmd} ${_cmdline}; _rc=$?;
- return ${_rc};
+ IFS="${_rrc_sep}"; ${_rrc_cmd} ${_rrc_cmdline}; _rrc_rc=$?;
+ return ${_rrc_rc};
};
-rtl_set_vars() {
- local _vars_set_vname="${1}" _vname_dst="${2}" _vname_src_tmpls="${3}" \
- _vars_set_old="" _vars_set_tmp="" _vname_src="";
+#
+# rtl_set_var_from_spec() - set variable from name-value specification
+# @_rstatus: out reference to status string
+# @_arg: variable name-value specification separated by single "=" (e.g. name=value)
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_set_var_from_spec() {
+ local _rsvfs_rstatus="${1#\$}" _rsvfs_arg="${2}" \
+ _rsvfs_rc=0 _rsvfs_vname="" _rsvfs_vval="";
+
+ _rsvfs_vname="${_rsvfs_arg%%=*}";
+ _rsvfs_vval="${_rsvfs_arg#*=}";
- for _vname_src in $(rtl_toupper "${_vname_src_tmpls}"); do
- _vname_src="${_vname_src}_${_vname_dst}";
- eval _vval_src='${'"${_vname_src}"':-}';
- if [ "${_vval_src:+1}" = 1 ]; then
- eval PKG_${_vname_dst}='${_vval_src}';
- _vars_set_tmp="${_vars_set_tmp:+${_vars_set_tmp} }PKG_${_vname_dst}";
+ if [ "${_rsvfs_vval:+1}" != 1 ]; then
+ _rsvfs_rc=1;
+ rtl_setrstatus "${_rsvfs_rstatus}" 'empty value specified for \${'"${_rsvfs_vname}"'}.';
+ else
+ rtl_set_var_unsafe "${_rsvfs_vname}" "${_rsvfs_vval}";
+ fi;
+ return "${_rsvfs_rc}";
+};
+
+#
+# rtl_set_var() - set variable from variables w/ template
+# @_vars_set_vname: list of variable names
+# @_vname_dst: variable name to set
+# @_vname_src_tmpls: variable name template (e.g. "DEFAULT PKG_")
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_set_var() {
+ local _rsv_vars_set_vname="${1}" _rsv_vname_dst="${2}" _rsv_vname_src_tmpls="${3}" \
+ _rsv_vars_set_old="" _rsv_vars_set_tmp="" _rsv_vname_src="" _rsv_vnames_src="";
+
+ rtl_toupper2 \$_rsv_vname_src_tmpls \$_rsv_vnames_src;
+ for _rsv_vname_src in ${_rsv_vnames_src}; do
+ _rsv_vname_src="${_rsv_vname_src}_${_rsv_vname_dst}";
+ eval _rsv_vval_src="\${${_rsv_vname_src}:-}";
+ if [ "${_rsv_vval_src:+1}" = 1 ]; then
+ eval PKG_${_rsv_vname_dst}='${_rsv_vval_src}';
+ _rsv_vars_set_tmp="${_rsv_vars_set_tmp:+${_rsv_vars_set_tmp} }PKG_${_rsv_vname_dst}";
fi;
done;
- eval _vars_set_old='${'"${_vars_set_vname}"'}';
- rtl_set_var_unsafe "${_vars_set_vname}" "${_vars_set_old:+${_vars_set_old} }${_vars_set_tmp}";
+ eval _rsv_vars_set_old="\${${_rsv_vars_set_vname}}";
+ rtl_set_var_unsafe "${_rsv_vars_set_vname}" "${_rsv_vars_set_old:+${_rsv_vars_set_old} }${_rsv_vars_set_tmp}";
+
+ return 0;
+};
+
+#
+# rtl_set_var_unsafe() - set value of variable
+# @[-u]: optionally convert variable name to upper case
+# @_vname: variable name
+# @_vval: variable value
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+# N.B.: This function is *unsafe* and impossible to implement otherwise w/o filtering @_vname
+# and implicitly allows for code execution and other undefined behaviour via @_vname.
+# Do *not* pass untrusted input through @_vname.
+#
+rtl_set_var_unsafe() {
+ local _rsvu_vname="" _rsvu_vval="";
+ if [ "x${1}" = "x-u" ]; then
+ shift; _rsvu_vname="${1}"; _rsvu_vval="${2}"; rtl_toupper \$_rsvu_vname;
+ else
+ _rsvu_vname="${1}"; _rsvu_vval="${2}";
+ fi;
+ eval ${_rsvu_vname}='${_rsvu_vval}';
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_state.subr b/subr.rtl/rtl_state.subr
index da091e9c..3deec599 100644
--- a/subr.rtl/rtl_state.subr
+++ b/subr.rtl/rtl_state.subr
@@ -1,44 +1,87 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtl_state_clear() - clear state for item
+# @_workdir: pathname to directory containing state files
+# @_item_name: name of item to clear state for
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_state_clear() {
- local _workdir="${1}" _pkg_name="${2}" _pkg_fname="";
- for _pkg_fname in $(find "${_workdir}" \
- -maxdepth 1 -mindepth 1 -name .${_pkg_name}.\* -type f); do
- rtl_fileop rm "${_pkg_fname}";
+ local _rsc_workdir="${1}" _rsc_item_name="${2}" \
+ _rsc_item_fname="";
+
+ for _rsc_item_fname in $(
+ find "${_rsc_workdir}" \
+ -maxdepth 1 \
+ -mindepth 1 \
+ -name .${_rsc_item_name}.\* \
+ -type f);
+ do
+ rtl_fileop rm "${_rsc_item_fname}";
done;
+ return 0;
};
+#
+# rtl_state_set() - set state for item
+# @_workdir: pathname to directory containing state files
+# @_item_name: name of item to set state for
+# @_state: state to set
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_state_set() {
- local _workdir="${1}" _pkg_fname="${2}" _build_step="${3}" \
- _done_fname_pfx="${1}/.${2}"; shift 3;
+ local _rss_workdir="${1}" _rss_item_name="${2}" _rss_state="${3}" \
+ _rss_done_name_pfx="${1}/.${2}";
+ shift 3;
- rtl_fileop touch "${_done_fname_pfx}.${_build_step}";
+ rtl_fileop touch "${_rss_done_name_pfx}.${_rss_state}";
while [ ${#} -ge 1 ]; do
if [ "${#1}" -gt 0 ]; then
- rtl_fileop rm "${_done_fname_pfx}.${1}";
+ rtl_fileop rm "${_rss_done_name_pfx}.${1}";
fi; shift;
done;
+ return 0;
};
+#
+# rtl_state_test() - test state(s) for item
+# @_workdir: pathname to directory containing state files
+# @_item_name: name of item to set state for
+# @_states: state(s) to test for
+# @[_lforce]: one of "ALL" (force all states to test as set,) "LAST" or "" (test all states,)
+# or exclusive list of states to force to test as set
+#
+# Returns: zero (0) if any of state(s) set, non-zero (>0) if none of state(s) set
+#
rtl_state_test() {
- local _workdir="${1}" _pkg_name="${2}" _build_steps="${3}" \
- _restart_at="${4:-}" _build_step="" _done_fname="" \
- IFS="," _rc=0;
-
- for _build_step in ${_build_steps}; do
- _done_fname="${_workdir}/.${_pkg_name}.${_build_step}";
- if [ "${_restart_at:+1}" != 1 ]\
- || [ "${_restart_at}" = "LAST" ]; then
- rtl_fileop test "${_done_fname}"; _rc="${?}";
- elif [ "${_restart_at}" = "ALL" ]; then
- _rc=1;
- else
- rtl_lmatch "${_restart_at}" "${_build_step}" ",";
- _rc=$((${?} ? 0 : 1));
- fi; [ "${_rc}" -eq 0 ] && break;
- done; return "${_rc}";
+ local _rst_workdir="${1}" _rst_item_name="${2}" \
+ _rst_states="${3}" _rst_lforce="${4:-}" \
+ _rst_state="" _rst_done_fname="" IFS="," _rst_rc=0;
+
+ for _rst_state in ${_rst_states}; do
+ _rst_done_fname="${_rst_workdir}/.${_rst_item_name}.${_rst_state}";
+
+ case "${_rst_lforce}" in
+ ALL)
+ _rst_rc=1; ;;
+ ""|LAST)
+ rtl_fileop test "${_rst_done_fname}"; _rst_rc="${?}"; ;;
+ *)
+ rtl_lmatch \$_rst_lforce "${_rst_state}" ",";
+ _rst_rc=$((${?} ? 0 : 1));
+ ;;
+ esac;
+
+ if [ "${_rst_rc}" -eq 0 ]; then
+ break;
+ fi;
+ done;
+ return "${_rst_rc}";
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr.rtl/rtl_string.subr b/subr.rtl/rtl_string.subr
index e3e98601..107771f5 100644
--- a/subr.rtl/rtl_string.subr
+++ b/subr.rtl/rtl_string.subr
@@ -1,122 +1,256 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
+#
+# rtl_isnumber() - check if string is number
+# @_s: string to check
+#
+# Returns: zero (0) if string is number, non-zero (>0) if string is not number
+#
rtl_isnumber() {
- local _s="${1}" _rc=0;
- while [ -n "${_s}" ]; do
- case "${_s}" in
- [0-9]*) _s="${_s#[0-9]}"; ;;
- *) _rc=1; break; ;;
+ local _ri_s="${1}" \
+ _ri_rc=0;
+
+ while [ "${_ri_s:+1}" = 1 ]; do
+ case "${_ri_s}" in
+ [0-9]*) _ri_s="${_ri_s#[0-9]}"; ;;
+ *) _ri_rc=1; break; ;;
esac; done;
- return "${_rc}";
+
+ return "${_ri_rc}";
};
+#
+# rtl_match() - match pattern against string
+# @_s: input string
+# @_find: pattern to match against string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_match() {
- local _s="${1}" _find="${2}";
- if [ "${_s#${_find}}" != "${_s}" ]; then
+ local _rm_s="${1}" _rm_find="${2}";
+
+ if [ "${_rm_s#${_rm_find}}" != "${_rm_s}" ]; then
return 0;
else
return 1;
fi;
};
+#
+# rtl_matchr() - match pattern against string from right-hand side
+# @_s: input string
+# @_find: pattern to match against string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_matchr() {
- local _s="${1}" _find="${2}";
- if [ "${_s%${_find}}" != "${_s}" ]; then
+ local _rmr_s="${1}" _rmr_find="${2}";
+
+ if [ "${_rmr_s%${_rmr_find}}" != "${_rmr_s}" ]; then
return 0;
else
return 1;
fi;
};
+#
+# rtl_remove_postfix() - remove longest postfix from string w/ pattern
+# @_pattern: pattern to match against input string
+# @_s: input string
+# @_rs_out: out reference to output string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_remove_postfix() {
+ local _rh_pattern="${1}" _rh_s="${2}" _rh_rs_out="${3#\$}";
+
+ while true; do
+ if [ "${_rh_s%%${_rh_pattern}}" = "${_rh_s}" ]; then
+ break;
+ else
+ _rh_s="${_rh_s%%${_rh_pattern}}";
+ fi;
+ done;
+
+ eval ${_rh_rs_out}='${_rh_s}';
+ return 0;
+};
+
+#
+# rtl_setrstatus() - set status string
+# @_rstatus: out reference to status string
+# @_status: new status string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_setrstatus() {
+ local _rsrs_rstatus="${1#\$}" _rsrs_status="${2}";
+ eval ${_rsrs_rstatus}=\"${_rsrs_status}\";
+ return 0;
+};
+
+#
+# rtl_subst() - substitute in string
+# @_rs: inout reference to string
+# @_find: pattern to match against input string
+# @_replace: replacement string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_subst() {
- local _s="${1}" _find="${2}" _replace="${3}" _prefix="" _s_new="";
- while [ -n "${_s}" ]; do
- case "${_s}" in
- *${_find}*) _prefix="${_s%%${_find}*}"; _s="${_s#*${_find}}";
- _s_new="${_s_new:+${_s_new}}${_prefix}${_replace}"; ;;
- *) _s_new="${_s_new:+${_s_new}}${_s}"; _s=""; ;;
+ rtl_subst2 "${1}" "${1}" "${2}" "${3}";
+};
+
+#
+# rtl_subst2() - substitute in string
+# @_rs: in reference to string
+# @_rs_out: out reference to new string
+# @_find: pattern to match against input string
+# @_replace: replacement string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_subst2() {
+ local _rs2_rs="${1#\$}" _rs2_rs_out="${2#\$}" _rs2_find="${3}" _rs2_replace="${4}" \
+ _rs2_prefix="" _rs2_s="" _rs2_s_new="";
+
+ eval _rs2_s="\${${_rs2_rs}}";
+ while [ "${_rs2_s:+1}" = 1 ]; do
+ case "${_rs2_s}" in
+ *${_rs2_find}*) _rs2_prefix="${_rs2_s%%${_rs2_find}*}"; _rs2_s="${_rs2_s#*${_rs2_find}}";
+ _rs2_s_new="${_rs2_s_new:+${_rs2_s_new}}${_rs2_prefix}${_rs2_replace}"; ;;
+ *) _rs2_s_new="${_rs2_s_new:+${_rs2_s_new}}${_rs2_s}"; _rs2_s=""; ;;
esac; done;
- printf "%s" "${_s_new}";
+ eval ${_rs2_rs_out}='${_rs2_s_new}';
+ return 0;
};
+#
+# rtl_tolower() - convert string to lower case
+# @_rs: in reference to string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_tolower() {
- local _s="${1}" _s_new="";
- while [ -n "${_s}" ]; do
- case "${_s}" in
- A*) _s_new="${_s_new:+${_s_new}}a"; _s="${_s#A}"; ;;
- B*) _s_new="${_s_new:+${_s_new}}b"; _s="${_s#B}"; ;;
- C*) _s_new="${_s_new:+${_s_new}}c"; _s="${_s#C}"; ;;
- D*) _s_new="${_s_new:+${_s_new}}d"; _s="${_s#D}"; ;;
- E*) _s_new="${_s_new:+${_s_new}}e"; _s="${_s#E}"; ;;
- F*) _s_new="${_s_new:+${_s_new}}f"; _s="${_s#F}"; ;;
- G*) _s_new="${_s_new:+${_s_new}}g"; _s="${_s#G}"; ;;
- H*) _s_new="${_s_new:+${_s_new}}h"; _s="${_s#H}"; ;;
- I*) _s_new="${_s_new:+${_s_new}}i"; _s="${_s#I}"; ;;
- J*) _s_new="${_s_new:+${_s_new}}j"; _s="${_s#J}"; ;;
- K*) _s_new="${_s_new:+${_s_new}}k"; _s="${_s#K}"; ;;
- L*) _s_new="${_s_new:+${_s_new}}l"; _s="${_s#L}"; ;;
- M*) _s_new="${_s_new:+${_s_new}}m"; _s="${_s#M}"; ;;
- N*) _s_new="${_s_new:+${_s_new}}n"; _s="${_s#N}"; ;;
- O*) _s_new="${_s_new:+${_s_new}}o"; _s="${_s#O}"; ;;
- P*) _s_new="${_s_new:+${_s_new}}p"; _s="${_s#P}"; ;;
- Q*) _s_new="${_s_new:+${_s_new}}q"; _s="${_s#Q}"; ;;
- R*) _s_new="${_s_new:+${_s_new}}r"; _s="${_s#R}"; ;;
- S*) _s_new="${_s_new:+${_s_new}}s"; _s="${_s#S}"; ;;
- T*) _s_new="${_s_new:+${_s_new}}t"; _s="${_s#T}"; ;;
- U*) _s_new="${_s_new:+${_s_new}}u"; _s="${_s#U}"; ;;
- V*) _s_new="${_s_new:+${_s_new}}v"; _s="${_s#V}"; ;;
- W*) _s_new="${_s_new:+${_s_new}}w"; _s="${_s#W}"; ;;
- X*) _s_new="${_s_new:+${_s_new}}x"; _s="${_s#X}"; ;;
- Y*) _s_new="${_s_new:+${_s_new}}y"; _s="${_s#Y}"; ;;
- Z*) _s_new="${_s_new:+${_s_new}}z"; _s="${_s#Z}"; ;;
+ rtl_tolower2 "${1}" "${1}";
+};
+
+#
+# rtl_tolower2() - convert string to lower case
+# @_rs: in reference to string
+# @_rs_out: out reference to new string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_tolower2() {
+ local _rtl2_rs="${1#\$}" _rtl2_rs_out="${2#\$}" \
+ _rtl2_s="" _rtl2_s_new="";
+
+ eval _rtl2_s="\${${_rtl2_rs}}";
+
+ while [ "${_rtl2_s:+1}" = 1 ]; do
+ case "${_rtl2_s}" in
+ A*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}a"; _rtl2_s="${_rtl2_s#A}"; ;;
+ B*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}b"; _rtl2_s="${_rtl2_s#B}"; ;;
+ C*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}c"; _rtl2_s="${_rtl2_s#C}"; ;;
+ D*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}d"; _rtl2_s="${_rtl2_s#D}"; ;;
+ E*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}e"; _rtl2_s="${_rtl2_s#E}"; ;;
+ F*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}f"; _rtl2_s="${_rtl2_s#F}"; ;;
+ G*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}g"; _rtl2_s="${_rtl2_s#G}"; ;;
+ H*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}h"; _rtl2_s="${_rtl2_s#H}"; ;;
+ I*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}i"; _rtl2_s="${_rtl2_s#I}"; ;;
+ J*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}j"; _rtl2_s="${_rtl2_s#J}"; ;;
+ K*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}k"; _rtl2_s="${_rtl2_s#K}"; ;;
+ L*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}l"; _rtl2_s="${_rtl2_s#L}"; ;;
+ M*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}m"; _rtl2_s="${_rtl2_s#M}"; ;;
+ N*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}n"; _rtl2_s="${_rtl2_s#N}"; ;;
+ O*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}o"; _rtl2_s="${_rtl2_s#O}"; ;;
+ P*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}p"; _rtl2_s="${_rtl2_s#P}"; ;;
+ Q*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}q"; _rtl2_s="${_rtl2_s#Q}"; ;;
+ R*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}r"; _rtl2_s="${_rtl2_s#R}"; ;;
+ S*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}s"; _rtl2_s="${_rtl2_s#S}"; ;;
+ T*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}t"; _rtl2_s="${_rtl2_s#T}"; ;;
+ U*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}u"; _rtl2_s="${_rtl2_s#U}"; ;;
+ V*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}v"; _rtl2_s="${_rtl2_s#V}"; ;;
+ W*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}w"; _rtl2_s="${_rtl2_s#W}"; ;;
+ X*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}x"; _rtl2_s="${_rtl2_s#X}"; ;;
+ Y*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}y"; _rtl2_s="${_rtl2_s#Y}"; ;;
+ Z*) _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}z"; _rtl2_s="${_rtl2_s#Z}"; ;;
[!ABCDEFGHIJKLMNOPQRSTUVWXYZ]*)
- _s_new="${_s_new:+${_s_new}}${_s%%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*}";
- while [ "${_s#[!ABCDEFGHIJKLMNOPQRSTUVWXYZ]}" != "${_s}" ]; do
- _s="${_s#[!ABCDEFGHIJKLMNOPQRSTUVWXYZ]}";
+ _rtl2_s_new="${_rtl2_s_new:+${_rtl2_s_new}}${_rtl2_s%%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*}";
+ while [ "${_rtl2_s#[!ABCDEFGHIJKLMNOPQRSTUVWXYZ]}" != "${_rtl2_s}" ]; do
+ _rtl2_s="${_rtl2_s#[!ABCDEFGHIJKLMNOPQRSTUVWXYZ]}";
done; ;;
esac; done;
- printf "%s" "${_s_new}";
+ eval ${_rtl2_rs_out}='${_rtl2_s_new}';
+
+ return 0;
};
+#
+# rtl_toupper() - convert string to upper case
+# @_rs: in reference to string
+# @_rs_out: out reference to new string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
rtl_toupper() {
- local _s="${1}" _s_new="";
- while [ -n "${_s}" ]; do
- case "${_s}" in
- a*) _s_new="${_s_new:+${_s_new}}A"; _s="${_s#a}"; ;;
- b*) _s_new="${_s_new:+${_s_new}}B"; _s="${_s#b}"; ;;
- c*) _s_new="${_s_new:+${_s_new}}C"; _s="${_s#c}"; ;;
- d*) _s_new="${_s_new:+${_s_new}}D"; _s="${_s#d}"; ;;
- e*) _s_new="${_s_new:+${_s_new}}E"; _s="${_s#e}"; ;;
- f*) _s_new="${_s_new:+${_s_new}}F"; _s="${_s#f}"; ;;
- g*) _s_new="${_s_new:+${_s_new}}G"; _s="${_s#g}"; ;;
- h*) _s_new="${_s_new:+${_s_new}}H"; _s="${_s#h}"; ;;
- i*) _s_new="${_s_new:+${_s_new}}I"; _s="${_s#i}"; ;;
- j*) _s_new="${_s_new:+${_s_new}}J"; _s="${_s#j}"; ;;
- k*) _s_new="${_s_new:+${_s_new}}K"; _s="${_s#k}"; ;;
- l*) _s_new="${_s_new:+${_s_new}}L"; _s="${_s#l}"; ;;
- m*) _s_new="${_s_new:+${_s_new}}M"; _s="${_s#m}"; ;;
- n*) _s_new="${_s_new:+${_s_new}}N"; _s="${_s#n}"; ;;
- o*) _s_new="${_s_new:+${_s_new}}O"; _s="${_s#o}"; ;;
- p*) _s_new="${_s_new:+${_s_new}}P"; _s="${_s#p}"; ;;
- q*) _s_new="${_s_new:+${_s_new}}Q"; _s="${_s#q}"; ;;
- r*) _s_new="${_s_new:+${_s_new}}R"; _s="${_s#r}"; ;;
- s*) _s_new="${_s_new:+${_s_new}}S"; _s="${_s#s}"; ;;
- t*) _s_new="${_s_new:+${_s_new}}T"; _s="${_s#t}"; ;;
- u*) _s_new="${_s_new:+${_s_new}}U"; _s="${_s#u}"; ;;
- v*) _s_new="${_s_new:+${_s_new}}V"; _s="${_s#v}"; ;;
- w*) _s_new="${_s_new:+${_s_new}}W"; _s="${_s#w}"; ;;
- x*) _s_new="${_s_new:+${_s_new}}X"; _s="${_s#x}"; ;;
- y*) _s_new="${_s_new:+${_s_new}}Y"; _s="${_s#y}"; ;;
- z*) _s_new="${_s_new:+${_s_new}}Z"; _s="${_s#z}"; ;;
+ rtl_toupper2 "${1}" "${1}";
+};
+
+#
+# rtl_toupper2() - convert string to upper case
+# @_rs: in reference to string
+# @_rs_out: out reference to new string
+#
+# Returns: zero (0) on success, non-zero (>0) on failure
+#
+rtl_toupper2() {
+ local _rtu2_rs="${1#\$}" _rtu2_rs_out="${2#\$}" \
+ _rtu2_s="" _rtu2_s_new="";
+
+ eval _rtu2_s="\${${_rtu2_rs}}";
+
+ while [ "${_rtu2_s:+1}" = 1 ]; do
+ case "${_rtu2_s}" in
+ a*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}A"; _rtu2_s="${_rtu2_s#a}"; ;;
+ b*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}B"; _rtu2_s="${_rtu2_s#b}"; ;;
+ c*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}C"; _rtu2_s="${_rtu2_s#c}"; ;;
+ d*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}D"; _rtu2_s="${_rtu2_s#d}"; ;;
+ e*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}E"; _rtu2_s="${_rtu2_s#e}"; ;;
+ f*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}F"; _rtu2_s="${_rtu2_s#f}"; ;;
+ g*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}G"; _rtu2_s="${_rtu2_s#g}"; ;;
+ h*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}H"; _rtu2_s="${_rtu2_s#h}"; ;;
+ i*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}I"; _rtu2_s="${_rtu2_s#i}"; ;;
+ j*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}J"; _rtu2_s="${_rtu2_s#j}"; ;;
+ k*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}K"; _rtu2_s="${_rtu2_s#k}"; ;;
+ l*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}L"; _rtu2_s="${_rtu2_s#l}"; ;;
+ m*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}M"; _rtu2_s="${_rtu2_s#m}"; ;;
+ n*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}N"; _rtu2_s="${_rtu2_s#n}"; ;;
+ o*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}O"; _rtu2_s="${_rtu2_s#o}"; ;;
+ p*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}P"; _rtu2_s="${_rtu2_s#p}"; ;;
+ q*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}Q"; _rtu2_s="${_rtu2_s#q}"; ;;
+ r*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}R"; _rtu2_s="${_rtu2_s#r}"; ;;
+ s*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}S"; _rtu2_s="${_rtu2_s#s}"; ;;
+ t*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}T"; _rtu2_s="${_rtu2_s#t}"; ;;
+ u*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}U"; _rtu2_s="${_rtu2_s#u}"; ;;
+ v*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}V"; _rtu2_s="${_rtu2_s#v}"; ;;
+ w*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}W"; _rtu2_s="${_rtu2_s#w}"; ;;
+ x*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}X"; _rtu2_s="${_rtu2_s#x}"; ;;
+ y*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}Y"; _rtu2_s="${_rtu2_s#y}"; ;;
+ z*) _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}Z"; _rtu2_s="${_rtu2_s#z}"; ;;
[!abcdefghijklmnopqrstuvwxyz]*)
- _s_new="${_s_new:+${_s_new}}${_s%%[abcdefghijklmnopqrstuvwxyz]*}";
- while [ "${_s#[!abcdefghijklmnopqrstuvwxyz]}" != "${_s}" ]; do
- _s="${_s#[!abcdefghijklmnopqrstuvwxyz]}";
+ _rtu2_s_new="${_rtu2_s_new:+${_rtu2_s_new}}${_rtu2_s%%[abcdefghijklmnopqrstuvwxyz]*}";
+ while [ "${_rtu2_s#[!abcdefghijklmnopqrstuvwxyz]}" != "${_rtu2_s}" ]; do
+ _rtu2_s="${_rtu2_s#[!abcdefghijklmnopqrstuvwxyz]}";
done; ;;
esac; done;
- printf "%s" "${_s_new}";
+ eval ${_rtu2_rs_out}='${_rtu2_s_new}';
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr/build_init.subr b/subr/build_init.subr
deleted file mode 100644
index 335a80f9..00000000
--- a/subr/build_init.subr
+++ /dev/null
@@ -1,319 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-buildp_init_args() {
- local _foundfl=0 _group="" _pkg_names_unknown="" _rc=0 \
- EX_PKG_BUILD_GROUPS EX_PKG_BUILD_GROUPS_NOAUTO; _status="";
-
- case "${ARG_FETCH_FORCE}" in
- ipv4) DEFAULT_GIT_ARGS="$(rtl_lconcat "-4" "${DEFAULT_GIT_ARGS}")";
- DEFAULT_WGET_ARGS="$(rtl_lconcat "-4" "${DEFAULT_WGET_ARGS}")"; ;;
- ipv6) DEFAULT_GIT_ARGS="$(rtl_lconcat "-6" "${DEFAULT_GIT_ARGS}")";
- DEFAULT_WGET_ARGS="$(rtl_lconcat "-6" "${DEFAULT_WGET_ARGS}")"; ;;
- esac;
- if [ "${BUILD_HNAME:+1}" != 1 ]\
- && ! BUILD_HNAME="$(hostname)"; then
- _rc=1; _status="failed to obtain hostname.";
- elif [ "${ARG_DUMP_ON_ABORT:-0}" -eq 1 ]\
- && [ "${ARG_RELAXED:-0}" -eq 1 ]; then
- _rc=1; _status="--dump-on-abort excludes -R.";
- elif [ "${ARG_AS_NEEDED:-0}" -eq 1 ]\
- && [ -e "${PREFIX}/build.gitref" ]\
- && [ "$(git rev-parse HEAD)" = "$(cat "${PREFIX}/build.gitref")" ]; then
- _rc=0; _status="Git repository has not changed since last build and --as-needed was specified.";
- elif ! ex_pkg_process_restart_spec \$ARG_RESTART \$ARG_RESTART_AT \$ARG_RESTART_RECURSIVE; then
- _rc=1; _status="failed to process -r specification: ${_status}.";
- elif ! ex_pkg_load_groups; then
- _rc=1; _status="failed to load build groups.";
- else if ! rtl_lmatch "${ARG_DIST:-}" "rpm" ","\
- && [ "${ARG_DUMP_IN:+1}" != 1 ]\
- && [ "${ARG_DUMP_ON_ABORT:-0}" -eq 0 ]; then
- EX_PKG_BUILD_GROUPS="$(rtl_lfilter "${EX_PKG_BUILD_GROUPS}" "host_deps_rpm")";
- fi;
- if [ "${BUILD_GROUPS:+1}" != 1 ]; then
- BUILD_GROUPS="${EX_PKG_BUILD_GROUPS}";
- else _foundfl=0; for _group in ${BUILD_GROUPS}; do
- if rtl_lmatch "${EX_PKG_BUILD_GROUPS}" "${_group}"; then
- _foundfl=1; break;
- fi;
- done;
- if [ "${_foundfl}" -eq 0 ]; then
- _foundfl=0; for _group in ${BUILD_GROUPS}; do
- if rtl_lmatch "${EX_PKG_BUILD_GROUPS}" "${_group}"; then
- _rc=1; _status="unknown build group \`${_group}'."; break;
- fi;
- done;
- fi;
- fi;
- if [ "${_rc:-0}" -eq 0 ]; then
- if [ "${ARG_DIST:+1}" = 1 ]; then
- BUILD_GROUPS="$(rtl_lconcat "$(rtl_lfilter "${BUILD_GROUPS}" "dist")" "dist")";
- fi;
- if [ "${ARG_RESTART:+1}" = 1 ]\
- && ! rtl_lmatch "${ARG_RESTART}" "ALL LAST"; then
- for _pkg_name in ${ARG_RESTART}; do
- if ! ex_pkg_find_package "${BUILD_GROUPS}" "${_pkg_name}" >/dev/null; then
- _pkg_names_unknown="$(rtl_lconcat "${_pkg_names_unknown}" "${_pkg_name}")";
- fi;
- done;
- case "$(rtl_llength "${_pkg_names_unknown}")" in
- 0) ;;
- 1) _rc=1; _status="unknown package \`${_pkg_names_unknown}'."; ;;
- *) _rc=1; _status="unknown packages: $(rtl_subst "${_pkg_names_unknown}" " " ", ")"; ;;
- esac;
- fi;
- fi;
- fi; return "${_rc}";
-};
-
-buildp_init_env() {
- local _fname="" _lang="${LANG:-C}" _lang_="" _name="" _rc=0; _status=""; _lang="${_lang%%_*}";
-
- if ! cd "${0%/*}"; then
- printf "Error: failed to change working directory to \`${0%/*}'." >&2; exit 1;
- elif ! umask 022; then
- printf "Error: failed to set umask(2).\n" >&2; exit 1;
- elif ! BUILD_USER="$(id -nu)"; then
- printf "Error: failed to obtain username." >&2; exit 1;
- else for _fname in \
- $(find subr.rtl -name *.subr) \
- $(find subr -name *.subr) \
- etc/build.theme \
- ;
- do
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- done;
- if [ -e "etc/build.theme.local" ]; then
- if ! . "etc/build.theme.local"; then
- printf "Error: failed to source \`%s'.\n" "etc/build.theme.local" >&2; exit 1;
- fi;
- fi;
- for _name in build rtl; do
- for _lang_ in ${_lang} C; do
- _fname="etc/${_name}.msgs.${_lang_}";
- if [ -e "${_fname}" ]; then
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- if [ -e "${_fname}.local" ]; then
- if ! . "${_fname}.local"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}.local" >&2; exit 1;
- fi;
- fi; break;
- fi;
- done;
- done;
- fi; export LANG=C LC_ALL=C; return "${_rc}";
-};
-
-buildp_init_files() {
- local _log_last_fname="" _log_last_num=1 _rc=0; _status=""
-
- if ! rtl_fileop mkdir "${BUILD_DLCACHEDIR}" "${BUILD_WORKDIR}"\
- || rtl_lmatch "${ARG_DIST}" "rpm" ","\
- && ! rtl_fileop mkdir "${PREFIX_RPM}"; then
- _rc=1; _status="cannot create build directories.";
- elif [ -e "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}" ]; then
- _rc=1; _status="another build targeting this architecture and build type is currently in progress.";
- elif ! rtl_clean_env "${DEFAULT_CLEAR_ENV_VARS_EXCEPT}"; then
- _rc=1; _status="failed to clean environment.";
- elif ! rtl_check_path_vars "${DEFAULT_CHECK_PATH_VARS}"; then
- _rc=1; _status="${_status}";
- else export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
- touch "${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}";
- if [ -e "${DEFAULT_BUILD_LOG_FNAME}" ]; then
- while [ -e "${DEFAULT_BUILD_LOG_FNAME}.${_log_last_num}" ]; do
- : $((_log_last_num+=1));
- done;
- _log_last_fname="${DEFAULT_BUILD_LOG_FNAME}.${_log_last_num}";
- rtl_fileop mv "${DEFAULT_BUILD_LOG_FNAME}" "${_log_last_fname}";
- rtl_fileop ln_symbolic "${_log_last_fname}" "${DEFAULT_BUILD_LOG_LAST_FNAME}";
- fi;
- rtl_fileop touch "${DEFAULT_BUILD_LOG_FNAME}"; rtl_log_set_fname "${DEFAULT_BUILD_LOG_FNAME}";
- if rtl_lmatch "${ARG_CLEAN_BUILDS}" "prefix" ","; then
- trap "rm -f \"${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME}\" 2>/dev/null; rtl_log_msg \"fatalexit\" \"${MSG_build_aborted}\"" HUP INT TERM USR1 USR2;
- rtl_log_msg "info" "${MSG_build_clean_prefix}";
- for _pname in ${DEFAULT_CLEAR_PREFIX_PATHS}; do
- if ! rtl_fileop rm "${PREFIX}/${_pname}"; then
- _rc=1; _status="failed to remove \`${PREFIX}/${_pname}'."; break;
- fi;
- done;
- trap - HUP INT TERM USR1 USR2;
- fi;
- export PATH="${PREFIX}/bin${PATH:+:${PATH}}";
- fi;
- return "${_rc}";
-};
-
-buildp_init_getopts() {
- local _arg="" _opt="" _rc=0 _shiftfl=0 OPTIND=0; _status="";
-
- : ${ARCH:="nt64"}; : ${BUILD_KIND:="debug"};
- ARG_AS_NEEDED=0; ARG_CLEAN_BUILDS=""; ARG_DEBUG_MINIPIX=0; ARG_DIST=""; ARG_DUMP_IN="";
- ARG_DUMP_ON_ABORT=0; ARG_FETCH_FORCE=""; ARG_PARALLEL=1; ARG_RELAXED=0; ARG_RESET_PKG=0;
- ARG_RESTART=""; ARG_RESTART_AT=""; ARG_RESTART_RECURSIVE=""; ARG_VERBOSE=0; ARG_VERBOSE_TAGS="";
-
- while [ "${#}" -gt 0 ]; do
- case "${1}" in
- --as-needed) ARG_AS_NEEDED=1; _shiftfl=1; ;;
- --dump-in) if [ "${#}" -ge 2 ]; then
- ARG_DUMP_IN="${2}"; ARG_DUMP_ON_ABORT=1; _shiftfl=2;
- else
- _rc=1; _status="missing argument to option --dump-in.";
- fi; ;;
- --dump-on-abort)
- ARG_DUMP_ON_ABORT=1; _shiftfl=1; ;;
- --debug-minipx) ARG_DEBUG_MINIPIX=1; _shiftfl=1; ;;
- --help)
- if [ -t 1 ]; then
- cat etc/build.usage;
- else
- sed 's/\[[0-9]\+m//g' etc/build.usage;
- fi; exit 0; ;;
- --reset-state) ARG_RESET_PKG=1; _shiftfl=1; ;;
- -v*) _opt="${1#-}"; while [ -n "${_opt}" ]; do
- : $((ARG_VERBOSE+=1)); _opt="${_opt#?}";
- done; _shiftfl=1; ;;
- # {{{ --roar
- --roar) printf "%s\n" '
- ▃▃▃▃
- ▟ ▙
-▟▙▃▟▙  /\ /\  roar!
-▜▒▓▒▛  ▛ """ ▜  /
- ▜ ▛   ^ _ ^   /
- ▀   (__y_)  
- ▟▙ ▁▂▃▟▐▙▜`\_/▛▟▌
- ▟▙ ▟ ▓▓▓| |▍▓▓▓
- ▜\▙ ▟ ▓▓▓▓▓ |▓▓▓▓▓
- ▜\\ \ ▒▒▒| | ▒▒▒
- ▜\ ) ▒_| |▙ ▒
- ( / ))))))'; exit 0; ;;
- # }}}
- *) _shiftfl=0; ;;
- esac;
- if [ "${_rc}" -ne 0 ]; then
- break;
- elif [ "${_shiftfl}" -gt 0 ]; then
- shift "${_shiftfl}"; continue;
- elif getopts a:b:C:D:F:hp:Pr:RxV: _opt; then
- case "${_opt}" in
- a) ARCH="${OPTARG}"; ;;
- b) BUILD_KIND="${OPTARG}"; ;;
- C) ARG_CLEAN_BUILDS="${OPTARG}"; ;;
- D) ARG_DIST="${OPTARG}"; ;;
- F) ARG_FETCH_FORCE="${OPTARG}"; ;;
- h)
- if [ -t 1 ]; then
- cat etc/build.usage.short;
- else
- sed 's/\[[0-9]\+m//g' etc/build.usage.short;
- fi; exit 0; ;;
- p) ARG_PARALLEL="${OPTARG}"; ;;
- P) ARG_PARALLEL="auto";
- if [ -n "${2:-}" ]\
- && rtl_isnumber "${2}"; then
- _rc=1; _status="maximum parallelisation job count is set with the \`-p jobs' option."; break
- fi; ;;
- r) ARG_RESTART="${OPTARG}"; ;;
- R) ARG_RELAXED=1; ;;
- x) ARG_VERBOSE_TAGS="${ARG_VERBOSE_TAGS:+${ARG_VERBOSE_TAGS},}xtrace"; ;;
- V) ARG_VERBOSE_TAGS="${OPTARG}"; ;;
- *) cat etc/build.usage.short; exit 1; ;;
- esac; shift $((${OPTIND}-1)); OPTIND=1;
- else if rtl_match "${1}" "=*"; then
- BUILD_GROUPS_INHIBIT_DEPS=1; _arg="${1#=}";
- else
- _arg="${1}";
- fi;
- case "${_arg}" in
- *=*) rtl_set_var_unsafe "${_arg%%=*}" "${_arg#*=}"; ;;
- [!a-zA-Z]*) _rc=1; _status="build group names must start with [a-zA-Z] (in argument \`${_arg}'.)"; ;;
- *[!_a-zA-Z]*) _rc=1; _status="build group names must not contain [!_a-zA-Z] (in argument \`${_arg}'.)"; ;;
- *) BUILD_GROUPS="$(rtl_lconcat "${BUILD_GROUPS}" "${_arg}")"; ;;
- esac; shift;
- fi;
- done;
- if [ "${_rc:-0}" -eq 0 ]; then
- case "${ARG_PARALLEL}" in
- auto) if ! ARG_PARALLEL="$(rtl_get_cpu_count)"; then
- _rc=1; _status="failed to get CPU count.";
- else
- ARG_PARALLEL=$((${ARG_PARALLEL}/2));
- fi; ;;
- max) if ! ARG_PARALLEL="$(rtl_get_cpu_count)"; then
- _rc=1; _status="failed to get CPU count.";
- fi; ;;
- "") ARG_PARALLEL=1; ;;
- *) if ! rtl_isnumber "${ARG_PARALLEL}"; then
- _rc=1; _status="invalid jobs count \`${ARG_PARALLEL}'.";
- fi; ;;
- esac;
- if [ "${_rc:-0}" -eq 0 ]; then
- DEFAULT_BUILD_CPUS="${ARG_PARALLEL}";
- fi;
- fi;
- return "${_rc}";
-};
-
-buildp_init_logging() {
- local _tag="" _tags="" _rc=0; _status="";
-
- rtl_log_clear_tags;
- case "${ARG_VERBOSE}" in
- 0) [ "${#ARG_VERBOSE_TAGS}" -eq 0 ] && rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- 1) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *) _rc=1; _status="invalid verbosity level (max. -v)"; ;;
- esac;
- if [ "${_rc}" -eq 0 ]; then
- case "${ARG_VERBOSE_TAGS}" in
- +*) rtl_log_enable_tags "${LOG_TAGS_normal}";
- ARG_VERBOSE_TAGS="${ARG_VERBOSE_TAGS#+}"; ;;
- *) ;;
- esac;
- for _tag in $(rtl_llift "${ARG_VERBOSE_TAGS}" "," " "); do
- case "${_tag}" in
- all) rtl_log_enable_tags "${LOG_TAGS_all}"; ;;
- clear|none) rtl_log_clear_tags; ;;
- normal) rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- verbose) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *)
- _tags="$(rtl_lsearch_patternl "${LOG_TAGS_all}" "${_tag}" ",")";
- if [ "${#_tags}" -gt 0 ]; then
- rtl_log_enable_tags "${_tags}";
- else
- _rc=1; _status="invalid log tag or tag pattern \`${_tag}'"; break;
- fi; ;;
- esac;
- done;
- fi;
- return "${_rc}";
-};
-
-buildp_init_prereqs() {
- if ! rtl_check_prereqs ${DEFAULT_PREREQS}; then
- printf "%s\n" "${_status}" >&2; exit 1;
- elif ! awk -V 2>/dev/null | grep -q "^GNU Awk "; then
- printf "Error: awk(1) in \$PATH must be GNU Awk." >&2; exit 1;
- elif ! (FNAME="$(mktemp)" && { trap "rm -f \"\${FNAME}\"" EXIT; \
- sed -i'' -e '' "${FNAME}" >/dev/null 2>&1; }); then
- printf "Error: sed(1) in \${PATH} does not support the \`-i' option.\n" >&2; exit 1;
- fi;
-};
-
-build_init() {
- local _rc=0; _status="";
- if ! buildp_init_env \
- || ! buildp_init_getopts "${@}" \
- || ! buildp_init_logging \
- || ! ex_pkg_load_vars \
- || ! buildp_init_prereqs \
- || ! buildp_init_args \
- || ! buildp_init_files; then
- _rc=1; _status="${_status}";
- fi; return "${_rc}";
-};
-
-# vim:filetype=sh foldmethod=marker
diff --git a/subr/ex_pkg.subr b/subr/ex_pkg.subr
deleted file mode 100644
index ac03670c..00000000
--- a/subr/ex_pkg.subr
+++ /dev/null
@@ -1,287 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# ex_pkg_check_depends() - check single named package for unsatisfied dependencies
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-# @_pkg_name: single package name
-# @_pkg_names: list of package names
-#
-# Return: zero (0) given no outstanding dependencies, non-zero (>0) otherwise
-#
-ex_pkg_check_depends() {
- local _checkfl="${1}" _pkg_disabled="${2}" _pkg_finished="${3}" _pkg_name="${4}" _pkg_names="${5}"\
- _dependfl=0 _pkg_depends="" _pkg_name_depend="";
- if [ "${_checkfl:-0}" -eq 1 ]\
- && _pkg_depends="$(rtl_uniq $(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS")))"; then
- for _pkg_name_depend in $(rtl_uniq ${_pkg_depends}); do
- if ! rtl_lmatch "${_pkg_disabled}" "${_pkg_name_depend}"\
- && ! rtl_lmatch "${_pkg_finished}" "${_pkg_name_depend}"\
- && ! ex_pkg_state_test "${_pkg_name_depend}" finish; then
- if ! rtl_lmatch "${_pkg_names}" "${_pkg_name_depend}"; then
- rtl_log_msg "fatalexit" "${MSG_build_unknown_dep}" "${_pkg_name_depend}" "${_pkg_name}";
- else
- _dependfl=1; break;
- fi;
- fi;
- done;
- fi;
- return "${_dependfl}";
-};
-
-#
-# ex_pkg_find_package() - find build group a single named package belongs to
-# @_group_names: build group names
-# @_pkg_name: single named package
-#
-# Return: zero (0) on success, non-zero (>0) if package not found, group name on stdout if package was found.
-#
-ex_pkg_find_package() {
- local _group_names="${1}" _pkg_name="${2}" _foundfl=0 _group_name="" _pkg_names="";
- for _group_name in ${_group_names}; do
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]\
- && rtl_lmatch "${_pkg_names}" "${_pkg_name}"; then
- _foundfl=1; break;
- fi;
- done;
- case "${_foundfl:-0}" in
- 0) return 1; ;;
- 1) printf "%s" "${_group_name}"; return 0; ;;
- esac;
-};
-
-#
-# ex_pkg_get_packages() - get list of packages belonging to single named build group
-# @_group_name: build group name
-#
-# Return: zero (0) on success, non-zero (>0) on failure, list of package names on stdout on success.
-#
-ex_pkg_get_packages() {
- local _group_name="${1}" _pkg_names="";
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]; then
- printf "%s" "${_pkg_names}"; return 0;
- else
- return 1;
- fi;
-};
-
-#
-# ex_pkg_load_dump() - load package dump
-# @_pkg_name: package name
-#
-# Return: zero (0) on success, non-zero (>0) on failure, package dump post-return on success.
-#
-ex_pkg_load_dump() {
- local _pkg_name="${1}" _workdir="${2}" _rc=0; _status="";
- if [ ! -e "${_workdir}/${_pkg_name}.dump" ]; then
- rtl_log_msg "warning" "${MSG_pkgtool_no_env_dump}" "${_pkg_name}" "${_workdir}";
- rtl_log_msg "info" "${MSG_pkgtool_rebuilding_pkg}" "${_pkg_name}";
- (export ARCH BUILD_KIND BUILD_DLCACHEDIR BUILD_WORKDIR \
- PREFIX PREFIX_CROSS PREFIX_MINGW32 PREFIX_MINIPIX \
- PREFIX_NATIVE PREFIX_ROOT PREFIX_RPM;
- ./build.sh --dump-in _build -P -r "${_pkg_name}" -v);
- if [ ! -e "${_workdir}/${_pkg_name}.dump" ]; then
- _rc=1; _status="Error: failed to locate environment dump for package \`${_pkg_name}' in \`${_workdir}'.";
- fi;
- else
- _rc=0;
- fi;
- if [ "${_rc:-0}" -eq 0 ]\
- && ! . "${_workdir}/${_pkg_name}.dump"; then
- _rc=1; _status="Error: failed to source environment dump for package \`${_pkg_name}' from \`${_workdir}'.";
- elif [ "${_rc:-0}" -eq 0 ]\
- && ! rtl_fileop cd "${PKG_BUILD_DIR}"; then
- _rc=1; _status="Error: failed to change working directory to \`${PKG_BUILD_DIR}'.";
- fi; return "${_rc}";
-};
-
-#
-# ex_pkg_load_vars() - load build variables
-#
-# Return: zero (0) on success, non-zero (>0) on failure, build variables post-return on success.
-#
-ex_pkg_load_vars() {
- local _rc=0 _fname=""; _status="";
- if ! rtl_lmatch "${ARCH}" "nt32 nt64"; then
- _rc=1; _status="Error: invalid architecture \`${ARCH}'.";
- elif ! rtl_lmatch "${BUILD_KIND}" "debug release"; then
- _rc=1; _status="Error: unknown build type \`${BUILD_KIND}'.";
- else case "${ARCH}" in
- nt32) DEFAULT_TARGET="i686-nt32-midipix"; ;;
- nt64) DEFAULT_TARGET="x86_64-nt64-midipix"; ;;
- esac;
- for _fname in \
- "${HOME}/midipix_build.vars" \
- "${HOME}/.midipix_build.vars" \
- ../midipix_build.vars \
- ./midipix.env; do
- if [ -r "${_fname}" ]; then
- rtl_fileop source "${_fname}";
- fi;
- done;
- if [ -z "${PREFIX}" ]; then
- _rc=1; _status="Error: \${PREFIX} empty or unset.";
- fi;
- fi; return "${_rc}";
-};
-
-#
-# ex_pkg_load_groups() - load all available build groups
-#
-# Return: zero (0) on success, non-zero (>0) on failure, build groups loaded and ${EX_PKG_BUILD_GROUPS} and ${EX_PKG_BUILD_GROUPS_NOAUTO} set post-return.
-#
-ex_pkg_load_groups() {
- local _build_groups="" _build_groups_noauto="" _fname="" _group="" _groups="";
- for _fname in $(find ./groups -name *.group | sort); do
- rtl_fileop source_opt "${_fname}";
- if [ -n "${GROUP_TARGET:-}" ]; then
- _group="${GROUP_TARGET}"; unset GROUP_TARGET;
- else
- _group="${_fname##*/}"; _group="${_group%.group}"; _group="${_group#*.}";
- fi;
- if ! rtl_lmatch "${_groups}" "${_group}"; then
- _groups="$(rtl_lconcat "${_groups}" "${_group}")";
- if [ -n "${GROUP_AUTO:-}" ]; then
- if [ "${GROUP_AUTO:-0}" -ne 0 ]; then
- _build_groups="$(rtl_lconcat "${_build_groups}" "${_group}")";
- else
- _build_groups_noauto="$(rtl_lconcat "${_build_groups_noauto}" "${_group}")";
- fi;
- unset GROUP_AUTO;
- else
- _build_groups="$(rtl_lconcat "${_build_groups}" "${_group}")";
- fi;
- fi;
- done;
- EX_PKG_BUILD_GROUPS="$(rtl_uniq "${_build_groups}")";
- EX_PKG_BUILD_GROUPS_NOAUTO="$(rtl_uniq "${_build_groups_noauto}")";
-};
-
-#
-# ex_pkg_unfold_depends() - unfold list of package names into dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_test_finished: only exclude disabled packages from ${EX_PKG_NAMES} (0,) split finished packages into ${EX_PKG_FINISHED}
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-ex_pkg_unfold_depends() {
- local _checkfl="${1}" _forcefl="${2}" _group_name="${3}" _pkg_names="${4}" _restart="${5}" _test_finished="${6}"\
- _pkg_name="" _restartfl=0;
- if [ -n "${_restart}" ] && ! rtl_lmatch "${_restart}" "ALL LAST"; then
- _pkg_names="$(rtl_lsearch "${_pkg_names}" "${_restart}")";
- fi;
- if [ -n "${_restart}" ] && [ "${_checkfl:-0}" -eq 1 ]; then
- _pkg_names="$(rtl_uniq $(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' ${_pkg_names}))";
- fi;
- for _pkg_name in ${_pkg_names}; do
- if [ "${_restart}" = "ALL" ]\
- || rtl_lmatch "${_restart}" "${_pkg_name}"; then
- _restartfl=1;
- else
- _restartfl=0;
- fi;
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" = "x1" ]; then
- EX_PKG_DISABLED="$(rtl_lconcat "${EX_PKG_DISABLED}" "${_pkg_name}")";
- _pkg_names="$(rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- elif [ "${_test_finished:-1}" -eq 1 ]\
- && ex_pkg_state_test "${_pkg_name}" finish\
- && [ "${_restartfl:-0}" -eq 0 ]\
- && [ "${_forcefl:-0}" -ne 1 ]\
- && [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" != "x1" ]; then
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name}")";
- _pkg_names="$(rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- fi;
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${EX_PKG_DISABLED})";
- EX_PKG_FINISHED="$(rtl_uniq ${EX_PKG_FINISHED})";
- EX_PKG_NAMES="$(rtl_uniq ${_pkg_names})";
-};
-
-#
-# ex_pkg_unfold_rdepends() - unfold list of package names into reverse dependency-expanded set of complete, disabled, finished, and outstanding package names
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_test_finished: only exclude disabled packages from ${EX_PKG_NAMES} (0,) split finished packages into ${EX_PKG_FINISHED}
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-ex_pkg_unfold_rdepends() {
- local _group_name="${1}" _pkg_names="${2}" _restart="${3}" _test_finished="${4}"\
- _pkg_depends="" _pkg_name="" _pkg_name_depend="" _pkg_rdepends="";
- for _pkg_name_depend in ${_restart}; do
- for _pkg_name in ${_pkg_names}; do
- if [ "${_pkg_name}" != "${_pkg_name_depend}" ]\
- && [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" != "x1" ]\
- && _pkg_depends="$(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS"))"\
- && [ -n "${_pkg_depends}" ]\
- && rtl_lmatch "${_pkg_depends}" "${_pkg_name_depend}"; then
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_name}")";
- fi;
- done;
- done;
- _pkg_names="";
- for _pkg_name in ${_pkg_rdepends}; do
- if _pkg_depends="$(rtl_lunfold_depends 'PKG_${_name}_DEPENDS' $(rtl_get_var_unsafe -u "PKG_"${_pkg_name}"_DEPENDS"))"\
- && [ -n "${_pkg_depends}" ]; then
- for _pkg_name_depend in ${_pkg_depends}; do
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name_depend}_DISABLED")" = "x1" ]; then
- EX_PKG_DISABLED="$(rtl_lconcat "${EX_PKG_DISABLED}" "${_pkg_name_depend}")";
- elif [ "${_test_finished:-1}" -eq 1 ]\
- && ex_pkg_state_test "${_pkg_name_depend}" finish\
- && [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" != "x1" ]\
- && ! rtl_lmatch "${_pkg_rdepends}" "${_pkg_name_depend}"; then
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name_depend}")";
- elif [ "${_test_finished:-1}" -eq 0 ]\
- || ! ex_pkg_state_test "${_pkg_name_depend}" finish\
- || [ "x$(rtl_get_var_unsafe -u "${_group_name}_FORCE")" = "x1" ]; then
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${_pkg_name_depend}")";
- fi;
- done;
- fi;
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${_pkg_name}")";
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${EX_PKG_DISABLED})";
- EX_PKG_FINISHED="$(rtl_uniq ${EX_PKG_FINISHED})";
- EX_PKG_NAMES="$(rtl_uniq ${_pkg_names})";
-};
-
-#
-# ex_pkg_unfold_rdepends_direct() - unfold list of package names into direct reverse dependency-expanded set of disabled and outstanding package names
-# @_group_name: build group name
-# @_pkg_names: list of package names
-# @_restart: optional whitespace-separated list of package names to rebuild
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED} and ${EX_PKG_RDEPENDS_DIRECT} set post-return.
-#
-ex_pkg_unfold_rdepends_direct() {
- local _group_name="${1}" _pkg_names="${2}" _restart="${3}"\
- _pkg_depends="" _pkg_disabled="" _pkg_name="" _pkg_name_depend="" _pkg_rdepends="";
- for _pkg_name_depend in ${_restart}; do
- for _pkg_name in ${_pkg_names}; do
- if [ "${_pkg_name}" != "${_pkg_name_depend}" ]\
- && _pkg_depends="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DEPENDS")"\
- && [ -n "${_pkg_depends}" ]\
- && rtl_lmatch "${_pkg_depends}" "${_pkg_name_depend}"; then
- if [ "x$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_DISABLED")" != "x1" ]; then
- _pkg_rdepends="$(rtl_lconcat "${_pkg_rdepends}" "${_pkg_name}")";
- else
- _pkg_disabled="$(rtl_lconcat "${_pkg_disabled}" "${_pkg_name}")";
- fi;
- fi;
- done;
- done;
- EX_PKG_DISABLED="$(rtl_uniq ${_pkg_disabled})";
- EX_PKG_RDEPENDS_DIRECT="$(rtl_uniq ${_pkg_rdepends})";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
deleted file mode 100644
index 139cf94e..00000000
--- a/subr/ex_pkg_dispatch.subr
+++ /dev/null
@@ -1,255 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# exp_pkg_dispatch_complete() - XXX
-# @_dispatch_fn: top-level dispatch function name
-# @_group_names: build group name(s)
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-#
-# Return: zero (0) on success, non-zero (>0) on failure.
-#
-exp_pkg_dispatch_complete() {
- local _dispatch_fn="${1}" _group_name="${2}" _pkg_disabled="${3}" _pkg_finished="${4}" _pkg_name="";
- for _pkg_name in ${_pkg_disabled}; do
- "${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}";
- done;
- for _pkg_name in ${_pkg_finished}; do
- "${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}";
- done;
-};
-
-#
-# exp_pkg_dispatch_expand_packages() - expand build group name to list of packages ordered and filtered according to dependency and restart constraints
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_forcefl: enable (1) or inhibit (0) forcibly rebuilding finished packages
-# @_group_name: build group name
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_reversefl: unfold reverse dependencies (1) or dependencies (0)
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISABLED}, ${EX_PKG_FINISHED}, and ${EX_PKG_NAMES} set post-return.
-#
-exp_pkg_dispatch_expand_packages() {
- local _checkfl="${1}" _forcefl="${2}" _group_name="${3}" _restart="${4}" _reversefl="${5}"\
- _pkg_names=""; EX_PKG_DISABLED=""; EX_PKG_FINISHED=""; EX_PKG_NAMES="";
- if _pkg_names="$(rtl_get_var_unsafe -u "${_group_name}_PACKAGES")"\
- && [ -n "${_pkg_names}" ]; then
- if [ "${_reversefl:-0}" -eq 0 ]; then
- ex_pkg_unfold_depends "${_checkfl}" "${_forcefl}" "${_group_name}" "${_pkg_names}" "${_restart}" 1;
- else ex_pkg_unfold_rdepends "${_group_name}" "${_pkg_names}" "${_restart}" 1;
- fi;
- fi;
- return 0;
-};
-
-#
-# exp_pkg_dispatch_group() - dispatch a single build group
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to build FIFO
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_COUNT_CUR} may be mutated post-return.
-#
-exp_pkg_dispatch_group() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _checkfl="${3}"\
- _dispatch_fn="${4}" _group_name="${5}" _njobs_max="${6}" _pipe_path="${7}"\
- _restart_at="${8}" _workdir="${9}" _perc_group=0 _perc_pkg=0 _pipe_msg=""\
- _pkg_name="" _rc=0;
- rtl_fileop mkfifo "${_pipe_path}";
- while true; do
- while [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -gt 0 ] && read _pipe_msg; do
- case "${_pipe_msg%% *}" in
- done) _pkg_name="${_pipe_msg#done * }"; : $((EXP_PKG_DISPATCH_COUNT_CUR+=1)); : $((EXP_PKG_DISPATCH_NJOBS-=1));
- EX_PKG_FINISHED="$(rtl_lconcat "${EX_PKG_FINISHED}" "${_pkg_name}")";
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- _perc_pkg="$(rtl_percentage "${EXP_PKG_DISPATCH_COUNT_CUR}" "${EXP_PKG_DISPATCH_COUNT_MAX}")";
- "${_dispatch_fn}" finish_pkg ${_pipe_msg#done } "${EXP_PKG_DISPATCH_COUNT_MAX}" "${_perc_group}" "${_perc_pkg}";
- EX_PKG_NAMES="$(rtl_lfilter "${EX_PKG_NAMES}" "${_pkg_name}")";
- EX_PKG_DISPATCH_WAIT="$(rtl_lfilter "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}")";
- if [ -n "${EX_PKG_NAMES}" ] && [ "${_rc}" -eq 0 ]; then
- if [ "${EXP_PKG_DISPATCH_NJOBS}" -ne "${_njobs_max}" ]; then
- exp_pkg_dispatch_packages "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" \
- "${_dispatch_fn}" "${_group_name}" \
- "${_njobs_max}" "${_pipe_path}" \
- "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}" \
- "${_restart_at}" "${_workdir}";
- fi;
- elif [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -eq 0 ]; then
- break;
- fi; ;;
- fail) : $((EXP_PKG_DISPATCH_NJOBS-=1)); _rc=1;
- "${_dispatch_fn}" fail_pkg ${_pipe_msg#fail } "${EXP_PKG_DISPATCH_COUNT_MAX}"; ;;
- msg_pkg)
- "${_dispatch_fn}" msg_pkg ${_pipe_msg#msg_pkg }; ;;
- step) "${_dispatch_fn}" step_pkg ${_pipe_msg#step }; ;;
- esac; done <>"${_pipe_path}";
- if [ -n "${EX_PKG_NAMES}" ] && [ "${_rc}" -eq 0 ]; then
- if [ "${EXP_PKG_DISPATCH_NJOBS}" -ne "${_njobs_max}" ]; then
- exp_pkg_dispatch_packages "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" \
- "${_dispatch_fn}" "${_group_name}" \
- "${_njobs_max}" "${_pipe_path}" \
- "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}" \
- "${_restart_at}" "${_workdir}";
- fi;
- elif [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -eq 0 ]; then
- break;
- fi;
- done;
- rtl_fileop rm "${_pipe_path}";
- return "${_rc}";
-};
-
-#
-# exp_pkg_dispatch_package() - dispatch single named packages
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_NJOBS}, ${EXP_PKG_DISPATCH_COUNT}, ${EX_PKG_NAMES}, and ${EX_PKG_DISPATCH_WAIT} may be mutated post-return.
-#
-exp_pkg_dispatch_package() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _dispatch_fn="${3}"\
- _group_name="${4}" _pkg_name="${5}" _restart_at="${6}" _workdir="${7}"\
- _perc_group=0 _perc_pkg=0;
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- _perc_pkg="$(rtl_percentage "${EXP_PKG_DISPATCH_COUNT_CUR}" "${EXP_PKG_DISPATCH_COUNT_MAX}")";
- if "${_dispatch_fn}" start_pkg "${_group_name}" "${_pkg_name}" "$((${EXP_PKG_DISPATCH_COUNT}+1))" "${EXP_PKG_DISPATCH_COUNT_MAX}" "${_perc_group}" "${_perc_pkg}"; then
- : $((EXP_PKG_DISPATCH_NJOBS+=1)); : $((EXP_PKG_DISPATCH_COUNT+=1)); EX_PKG_DISPATCH_WAIT="$(rtl_lconcat "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}")";
- (trap "if [ \${?} -eq 0 ]; then \
- printf \"done %s %s %d\n\" \"${_group_name}\" \"${_pkg_name}\" \"${EXP_PKG_DISPATCH_COUNT}\" >&3; \
- else \
- printf \"fail %s %s %d\n\" \"${_group_name}\" \"${_pkg_name}\" \"${EXP_PKG_DISPATCH_COUNT}\" >&3; \
- pkill -U "${$}"; \
- fi;" EXIT HUP INT TERM USR1 USR2;
- set +o errexit -o noglob -o nounset; BUILD_IS_PARENT=0; rtl_log_set_fname ""; rtl_log_set_no_attr 1;
- if ex_pkg_env "${_build_steps_default}" "${_build_vars_default}" \
- "${_group_name}" 0 "${_pkg_name}" "${_restart_at}" "${_workdir}"; then
- ex_pkg_exec "${_dispatch_fn}" "${_group_name}" "${_pkg_name}" "${_restart_at}";
- else
- return 1;
- fi;) 1>"${_workdir}/${_pkg_name}_stderrout.log" 2>&1 3>"${_pipe_path}" &
- else
- return 1;
- fi;
-};
-
-#
-# exp_pkg_dispatch_packages() - dispatch set of packages
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_checkfl: enable (1) or inhibit (0) dependency expansion
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to parent-child process FIFO
-# @_pkg_disabled: list of disabled packages
-# @_pkg_finished: list of finished packages
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EXP_PKG_DISPATCH_NJOBS}, ${EXP_PKG_DISPATCH_COUNT}, ${EX_PKG_NAMES}, and ${EX_PKG_DISPATCH_WAIT} may be mutated post-return.
-#
-exp_pkg_dispatch_packages() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _checkfl="${3}"\
- _dispatch_fn="${4}" _group_name="${5}" _njobs_max="${6}" _pipe_path="${7}"\
- _pkg_disabled="${8}" _pkg_finished="${9}" _restart_at="${10}" _workdir="${11}"\
- _foundfl=0 _njob=0 _pkg_depends="" _pkg_name="";
- while [ "${EXP_PKG_DISPATCH_NJOBS:-0}" -lt "${_njobs_max}" ]; do
- _foundfl=0;
- for _pkg_name in ${EX_PKG_NAMES}; do
- if ! rtl_lmatch "${_pkg_disabled}" "${_pkg_name}"\
- && ! rtl_lmatch "${_pkg_finished}" "${_pkg_name}"\
- && ! rtl_lmatch "${EX_PKG_DISPATCH_WAIT}" "${_pkg_name}"\
- && ex_pkg_check_depends "${_checkfl}" "${_pkg_disabled}" "${_pkg_finished}" \
- "${_pkg_name}" "${EX_PKG_NAMES}"; then
- exp_pkg_dispatch_package "${_build_steps_default}" \
- "${_build_vars_default}" "${_dispatch_fn}" \
- "${_group_name}" "${_pkg_name}" "${_restart_at}" \
- "${_workdir}"; _foundfl=1; break;
- fi;
- done;
- if [ "${_foundfl:-0}" -eq 0 ]; then
- break;
- fi;
- done;
-};
-
-#
-# ex_pkg_dispatch() - dispatch a set of build group
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_dispatch_fn: top-level dispatch function name
-# @_group_names: build group name(s)
-# @_groups_inhibit_deps: inhibit group-group dependency expansion
-# @_njobs_max: maximum count of simultaneous jobs
-# @_pipe_path: pathname to build FIFO
-# @_restart: optional whitespace-separated list of package names to rebuild
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_restart_recursive: optional flag specifiying either no dependency expansion (0,) dependency expansion (1,) dependency expansion and forcibly rebuild (2,) forcibly rebuild reverse dependencies (3.)
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure, ${EX_PKG_DISPATCH_WAIT} mutated post-return.
-#
-ex_pkg_dispatch() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _dispatch_fn="${3}" \
- _group_names="${4}" _groups_inhibit_deps="${5}" _njobs_max="${6}" _pipe_path="${7}" \
- _restart="${8}" _restart_at="${9}" _restart_recursive="${10}" _workdir="${11}" \
- _checkfl=1 _forcefl=0 _perc_group=0 _pkg_name="" _pkg_names="" _rc=0 _reversefl=0 \
- EX_PKG_DISABLED EX_PKG_FINISHED EX_PKG_NAMES EXP_PKG_DISPATCH_COUNT \
- EXP_PKG_DISPATCH_COUNT_CUR EXP_PKG_DISPATCH_COUNT_MAX EXP_PKG_DISPATCH_GROUP_CUR \
- EXP_PKG_DISPATCH_GROUP_MAX EXP_PKG_DISPATCH_NJOBS; EX_PKG_DISPATCH_WAIT="";
- case "${_groups_inhibit_deps:-0}" in
- 0) _group_names="$(rtl_uniq $(rtl_lunfold_depends '${_name}_GROUP_DEPENDS' ${_group_names}))";
- esac;
- if [ -n "${_restart}" ]; then
- case "${_restart_recursive:-0}" in
- 0) _checkfl=0; _forcefl=0; _reversefl=0; ;;
- 1) _checkfl=1; _forcefl=0; _reversefl=0; ;;
- 2) _checkfl=1; _forcefl=1; _reversefl=0; ;;
- 3) _checkfl=1; _forcefl=1; _reversefl=1; ;;
- esac;
- fi;
- EXP_PKG_DISPATCH_GROUP_CUR=0; EXP_PKG_DISPATCH_GROUP_MAX="$(rtl_llength "${_group_names}")";
- for _group_name in ${_group_names}; do
- EX_PKG_DISABLED=""; EX_PKG_DISPATCH_WAIT=""; EX_PKG_FINISHED=""; EX_PKG_NAMES="";
- EXP_PKG_DISPATCH_COUNT=0; EXP_PKG_DISPATCH_COUNT_CUR=0; EXP_PKG_DISPATCH_COUNT_MAX=0; EXP_PKG_DISPATCH_NJOBS=0;
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- if "${_dispatch_fn}" start_group "${_group_name}" "" "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}" "${_perc_group}"; then
- if rtl_fileop mkdir "${_workdir}"\
- && rtl_log_msg "verbose" "${MSG_build_resolving_deps}" "${_group_name}"\
- && exp_pkg_dispatch_expand_packages "${_checkfl}" "${_forcefl}" "${_group_name}" "${_restart}" "${_reversefl}"\
- && exp_pkg_dispatch_complete "${_dispatch_fn}" "${_group_name}" "${EX_PKG_DISABLED}" "${EX_PKG_FINISHED}"\
- && rtl_log_msg "verbose" "${MSG_build_resolved_deps}" "${_group_name}"\
- && EXP_PKG_DISPATCH_COUNT_MAX="$(rtl_llength "${EX_PKG_NAMES}")"\
- && [ "${EXP_PKG_DISPATCH_COUNT_MAX}" -gt 0 ]; then
- _pkg_names="$(rtl_lconcat "${_pkg_names}" "${EX_PKG_NAMES}")";
- exp_pkg_dispatch_group "${_build_steps_default}" \
- "${_build_vars_default}" "${_checkfl}" "${_dispatch_fn}" \
- "${_group_name}" "${_njobs_max}" "${_pipe_path}" \
- "${_restart_at}" "${_workdir}"; _rc="${?}";
- fi;
- : $((EXP_PKG_DISPATCH_GROUP_CUR+=1));
- _perc_group="$(rtl_percentage "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}")";
- "${_dispatch_fn}" finish_group "${_group_name}" "" "${EXP_PKG_DISPATCH_GROUP_CUR}" "${EXP_PKG_DISPATCH_GROUP_MAX}" "${_perc_group}";
- if [ "${_rc}" -ne 0 ]; then
- break;
- fi;
- fi;
- done; return "${_rc}";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_env.subr b/subr/ex_pkg_env.subr
deleted file mode 100644
index c13cfdfc..00000000
--- a/subr/ex_pkg_env.subr
+++ /dev/null
@@ -1,157 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-#
-# exp_pkg_env_defaults() - set package variable defaults for single named package
-# @_build_steps_default: list of default build steps
-# @_pkg_name: single package name
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_env_defaults() {
- local _build_steps_default="${1}" _pkg_name="${2}" _workdir="${3}";
- : ${PKG_NAME:="${_pkg_name}"};
- : ${MIDIPIX_BUILD_PWD:="$(pwd)"};
- : ${PKG_BASE_DIR:="${_workdir}/${_pkg_name}-${PKG_BUILD_TYPE}-${PKG_TARGET}"};
- if [ -n "${PKG_BUILD_STEPS_DISABLE:-}" ]; then
- : ${PKG_BUILD_STEPS:="$(rtl_lfilter "${_build_steps_default}" "${PKG_BUILD_STEPS_DISABLE:-}")"};
- else
- : ${PKG_BUILD_STEPS:="${_build_steps_default}"};
- fi;
- if [ -n "${PKG_URL:-}" ]; then
- : ${PKG_FNAME:="${PKG_URL##*/}"};
- fi;
- if [ -z "${PKG_SUBDIR:-}" ]; then
- if [ -n "${PKG_URLS_GIT:-}" ]\
- && [ -n "${PKG_FNAME:-}" ]; then
- rtl_log_msg "fatalexit" "${MSG_pkg_fail_missing_vars}";
- elif [ -n "${PKG_URLS_GIT:-}" ]; then
- PKG_SUBDIR="${PKG_URLS_GIT%%=*}";
- else case "${PKG_FNAME:-}" in
- *.t*) PKG_SUBDIR="${PKG_FNAME%%.t*}"; ;;
- *) PKG_SUBDIR="${_pkg_name}"; ;;
- esac; fi;
- fi;
- if [ -z "${PKG_BUILD_DIR:-}" ]; then
- case "${PKG_IN_TREE:-0}" in
- 0) PKG_BUILD_DIR="obj"; ;;
- 1) PKG_BUILD_DIR="${PKG_SUBDIR}"; ;;
- esac;
- fi;
- PKG_BUILD_DIR="${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
- PKG_CONFIGURE="${PKG_BASE_DIR}/${PKG_CONFIGURE:-${PKG_SUBDIR}/configure}";
- PKG_DESTDIR="${PKG_BASE_DIR}/${PKG_DESTDIR:-destdir}";
- PKG_DESTDIR_HOST="${PKG_BASE_DIR}/${PKG_DESTDIR_HOST:-destdir_host}";
-};
-
-#
-# exp_pkg_env_set() - set package variables for single named package
-# @_build_vars_default: list of default build variables
-# @_group_name: build group name
-# @_nounset: don't clear package variable namespace
-# @_pkg_name: single package name
-#
-# Sets package variables from either defaults, defaults specific to build type,
-# build group, package to inherit from if any, or package for a single named
-# package, exports variables optionally named in ${PKG_ENV_VARS_EXTRA}, and
-# clears the package variable namespace.
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_env_set() {
- local _build_vars_default="${1}" _group_name="${2}" _nounset="${3}" \
- _pkg_name="${4}" _cmd_name="" _var_prefixes="" _vars_set="" \
- _vname="" IFS IFS0;
-
- rtl_set_vars _vars_set BUILD_TYPE "DEFAULT ${_group_name} PKG_${_pkg_name}";
- rtl_set_vars _vars_set INHERIT_FROM "PKG_${_pkg_name}";
- _var_prefixes="$(rtl_toupper "DEFAULT DEFAULT_${PKG_BUILD_TYPE} ${_group_name}")";
- for _vname in $(rtl_lfilter "${_build_vars_default}" BUILD_TYPE); do
- if [ -n "${PKG_INHERIT_FROM:-}" ]; then
- rtl_set_vars _vars_set "${_vname}" \
- "$(rtl_lconcat "${_var_prefixes}" \
- "$(rtl_toupper "PKG_${PKG_INHERIT_FROM} PKG_${PKG_INHERIT_FROM}_${BUILD_KIND} PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")";
- else
- rtl_set_vars _vars_set "${_vname}" \
- "$(rtl_lconcat "${_var_prefixes}" \
- "$(rtl_toupper "PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")";
- fi;
- done;
- IFS0="${IFS:- }"; IFS=":"; for _vname in ${PKG_ENV_VARS_EXTRA:-}; do
- export "${_vname}";
- done; IFS="${IFS0}";
- if [ "${_nounset:-0}" -eq 0 ]; then
- rtl_unset_vars $(rtl_lfilter \
- "$(set | sed -ne '/^PKG_[^=]*=/s/=.*$//p' | paste -s -d " ")" \
- "${_vars_set}");
- fi;
-
- for _vname in AR CC CXX PKG_CONFIG RANLIB; do
- if eval [ '"${PKG_'"${_vname}"':+1}"' = 1 ]\
- && eval [ '"${PKG_'"${_vname}"'#/}"' = '"${_cmd_name:=${PKG_'"${_vname}"'}}"' ]; then
- eval PKG_${_vname}='$(which "${_cmd_name}")';
- fi; _cmd_name="";
- done;
-};
-
-#
-# ex_pkg_env() - set package variables for single named package
-# @_build_steps_default: list of default build steps
-# @_build_vars_default: list of default build variables
-# @_group_name: build group name
-# @_nounset: don't clear package variable namespace
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_workdir: pathname to build-specific temporary directory
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_env() {
- local _build_steps_default="${1}" _build_vars_default="${2}" _group_name="${3}" \
- _nounset="${4}" _pkg_name="${5}" _restart_at="${6}" _workdir="${7}" \
- _inherit_from="" _vars_file="" _vname="";
-
- if _inherit_from="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_INHERIT_FROM")"\
- && [ "${#_inherit_from}" -gt 0 ]; then
- _vars_file="$(rtl_get_var_unsafe -u "PKG_${_inherit_from}_VARS_FILE")";
- else
- _vars_file="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_VARS_FILE")";
- fi;
- if [ "${#_vars_file}" -eq 0 ]; then
- _vars_file="vars/${_pkg_name}.vars";
- fi;
-
- rtl_fileop source_opt "${_vars_file}" "${_group_name}/${_pkg_name}.${_group_name}";
- if ! exp_pkg_env_set "${_build_vars_default}" "${_group_name}" "${_nounset}" "${_pkg_name}"\
- || ! exp_pkg_env_defaults "${_build_steps_default}" "${_pkg_name}" "${_workdir}"; then
- return 1;
- fi;
-};
-
-#
-# ex_pkg_state_set() - update build step status for single named package
-# @_pkg_name: single package name
-# @_build_step: build step set status of
-# [@${@}]: optional list of build steps to invalidate status of
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_state_set() {
- rtl_state_set "${_workdir}" "${@}";
-};
-
-#
-# ex_pkg_state_test() - test build step status of single named package
-# @_pkg_name: single package name
-# @_build_step: build step to test status of
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_state_test() {
- rtl_state_test "${_workdir}" "${@}";
-};
-
-# vim:filetype=sh
diff --git a/subr/ex_pkg_exec.subr b/subr/ex_pkg_exec.subr
deleted file mode 100644
index cd82756c..00000000
--- a/subr/ex_pkg_exec.subr
+++ /dev/null
@@ -1,136 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-exp_pkg_exec_filter_vars_fn() {
- local _vname="${1}";
- case "${_vname}" in
- DEFAULT|PKG_*)
- return 0; ;;
- BUILD_DLCACHEDIR|BUILD_WORKDIR|MIDIPIX_BUILD_PWD)
- return 0; ;;
- CONFIG_CACHE_GNULIB)
- return 0; ;;
- PREFIX|PREFIX_CROSS|PREFIX_MINGW32|PREFIX_MINIPIX|PREFIX_NATIVE|PREFIX_RPM)
- return 0; ;;
- *) return 1; ;;
- esac;
-};
-
-#
-# exp_pkg_exec_pre() - XXX
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_exec_pre() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}";
- if [ -z "${PKG_URL:-}" ]\
- && [ -z "${PKG_URLS_GIT:-}" ]\
- && [ -z "${PKG_VERSION:-}" ]\
- && [ -z "${PKG_INSTALL_FILES:-}" ]\
- && [ -z "${PKG_INSTALL_FILES_V2:-}" ]\
- && ! rtl_test_cmd "pkg_${_pkg_name}_all"; then
- "${_dispatch_fn}" missing_pkg "${_group_name}" "${_pkg_name}";
- return 1;
- elif ! ex_pkg_state_test "${_pkg_name}" "start" "${_restart_at}"; then
- if [ "${PKG_NO_CLEAN_BASE_DIR:-0}" -eq 0 ]\
- && ! rtl_fileop rm "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
- || ! rtl_fileop mkdir "${PKG_BASE_DIR}"; then
- return 1;
- fi;
- if ! rtl_fileop mkdir "${PKG_BUILD_DIR}" "${PKG_DESTDIR}"\
- || ! ex_pkg_state_set "${_pkg_name}" "start"; then
- return 1;
- fi;
- elif ! rtl_exists_any "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"\
- && ! rtl_fileop mkdir "${PKG_BASE_DIR}" "${PKG_BUILD_DIR}" "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; then
- return 1
- fi;
- rtl_fileop cd "${PKG_BUILD_DIR}";
-};
-
-#
-# exp_pkg_exec_step() - XXX
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-# @_step: build step to execute
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-exp_pkg_exec_step() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" _step="${4}" \
- _fn_name="" _pkg_step_fn="" _rc=0;
- if rtl_test_cmd "pkg_${_pkg_name}_${_step}"; then
- _pkg_step_fn="pkg_${_pkg_name}_${_step}";
- else
- _pkg_step_fn="pkg_${_step}";
- fi;
- for _fn_name in \
- "pkg_${_pkg_name}_${_step}_pre" \
- "${_pkg_step_fn}" \
- "pkg_${_pkg_name}_${_step}_post"; do
- if rtl_test_cmd "${_fn_name}"\
- && ! "${_fn_name}" "${_group_name}" "${_pkg_name}" "${_restart_at}"; then
- _rc=1; break;
- fi;
- done;
- return "${_rc}";
-};
-
-#
-# exp_pkg_exec() - XXX
-# @_dispatch_fn: top-level dispatch function name
-# @_group_name: build group name
-# @_pkg_name: single package name
-# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST
-#
-# Return: zero (0) on success, non-zero (>0) on failure
-#
-ex_pkg_exec() {
- local _dispatch_fn="${1}" _group_name="${2}" _pkg_name="${3}" _restart_at="${4}" \
- _build_step_last="" _rc=0 _step="";
-
- if ! exp_pkg_exec_pre "${_group_name}" "${_pkg_name}" "${_restart_at}"\
- || ! "${_dispatch_fn}" start_pkg_child "${_group_name}" "${_pkg_name}"; then
- _rc=1;
- elif rtl_test_cmd "pkg_${_pkg_name}_all"; then
- "pkg_${_pkg_name}_all" "${_restart_at}"; _rc="${?}";
- else set -- ${PKG_BUILD_STEPS};
- while [ ${#} -gt 0 ]; do
- _step="${1}"; shift;
- if [ "${#_restart_at}" -gt 0 ]\
- && [ "${_restart_at}" != "ALL" ]\
- && [ "${_restart_at}" != "LAST" ]\
- && ! rtl_lmatch "${_restart_at}" "${_step}" ","; then
- continue;
- fi;
- if [ "${_step}" = "${ARG_DUMP_IN}" ]; then
- printf "" > "${BUILD_WORKDIR}/${_pkg_name}.dump";
- rtl_filter_vars exp_pkg_exec_filter_vars_fn >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- export >> "${BUILD_WORKDIR}/${_pkg_name}.dump"; exit 1;
- elif [ "${_step}" = "finish" ]; then
- ex_pkg_state_set "${_pkg_name}" finish; break;
- elif [ "${PKG_FORCE:-0}" -eq 0 ]\
- && ex_pkg_state_test "${_pkg_name}" "${_step}" "${_restart_at}"; then
- continue;
- elif ! exp_pkg_exec_step "${_group_name}" "${_pkg_name}" "${_restart_at}" "${_step}"; then
- _rc=1; break;
- else printf "step %s %s %s\n" "${_group_name}" "${_pkg_name}" "${_step}" >&3;
- ex_pkg_state_set "${_pkg_name}" "${_step}" "${@}";
- fi;
- done;
- fi;
- if [ "${_rc:-0}" -ne 0 ]\
- && [ "${ARG_DUMP_ON_ABORT:-0}" -eq 1 ]; then
- printf "" > "${BUILD_WORKDIR}/${_pkg_name}.dump";
- rtl_filter_vars exp_pkg_exec_filter_vars_fn >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- export >> "${BUILD_WORKDIR}/${_pkg_name}.dump";
- fi;
- return "${_rc}";
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_build.subr b/subr/pkg_build.subr
deleted file mode 100644
index 1c6712f7..00000000
--- a/subr/pkg_build.subr
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_build() {
- local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-none}" _no_autoconf="" _rc=0 _subdir="";
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- if [ "${_makeflags_verbosity}" = "none" ]; then
- _makeflags_verbosity="";
- fi;
- if [ ! -x "${PKG_CONFIGURE:-}" ]; then
- _no_autoconf=1;
- fi;
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- if [ "${_subdir}" = ":" ]; then
- _subdir="";
- fi;
- if [ "${#_libtool}" -gt 0 ]; then
- export MAKE="make LIBTOOL=${_libtool}";
- fi;
- # N.B. We only specify CC= here if the current package does not use GNU
- # autoconf as it often abuses it by appending -std={gnu99,...} to it
- # instead of amending CFLAGS.
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- "AR=${PKG_AR}" "${_no_autoconf:+CC=${PKG_CC}}" "RANLIB=${PKG_RANLIB}" \
- "${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}" \
- "${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}" \
- "${PKG_CPPFLAGS_BUILD:+CPPFLAGS=${PKG_CPPFLAGS_BUILD}}" \
- "${PKG_CPPFLAGS_BUILD_EXTRA:+CPPFLAGS+=${PKG_CPPFLAGS_BUILD_EXTRA}}" \
- "${PKG_CXXFLAGS_BUILD:+CXXFLAGS=${PKG_CXXFLAGS_BUILD}}" \
- "${PKG_CXXFLAGS_BUILD_EXTRA:+CXXFLAGS+=${PKG_CXXFLAGS_BUILD_EXTRA}}" \
- "${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}" \
- "${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}" \
- "${PKG_PKG_CONFIG:+PKG_CONFIG=${PKG_PKG_CONFIG}}" \
- "${PKG_PKG_CONFIG_LIBDIR:+PKG_CONFIG_LIBDIR=${PKG_PKG_CONFIG_LIBDIR}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- ${_makeflags_verbosity} \
- ${_subdir:+-C "${_subdir}"}; _rc="${?}";
- if [ "${#_libtool}" -gt 0 ]; then
- unset MAKE;
- fi;
- if [ "${_rc}" -ne 0 ]; then
- return 1;
- fi;
- done;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_build_clean.subr b/subr/pkg_build_clean.subr
deleted file mode 100644
index 55dc19c5..00000000
--- a/subr/pkg_build_clean.subr
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_build_clean() {
- local _libtool="" _makeflags_verbosity="${PKG_MAKEFLAGS_VERBOSITY:-}" \
- _no_autoconf="" _rc=0 _subdir="";
-
- if ex_pkg_state_test "${_pkg_name}" "build" "${_restart_at}"; then
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- [ ! -x "${PKG_CONFIGURE:-}" ] && _no_autoconf=1;
-
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- [ "${_subdir}" = ":" ] && _subdir="";
- [ "${#_libtool}" -gt 0 ] && export MAKE="make LIBTOOL=${_libtool}";
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- ${_makeflags_verbosity} \
- ${_subdir:+-C "${_subdir}"} \
- clean; _rc="${?}";
- [ "${#_libtool}" -gt 0 ] && unset MAKE;
- [ "${_rc}" -ne 0 ] && return 1;
- done; return 0;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure.subr b/subr/pkg_configure.subr
deleted file mode 100644
index ea265076..00000000
--- a/subr/pkg_configure.subr
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_configure_autotools() {
- local _libtool="" _rc=0;
-
- if ! [ -x "${PKG_CONFIGURE:-}" ]; then
- return 2;
- elif [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
- || [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ]; then
- return 2;
- else
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
-
- rtl_export_vars \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}" \
- ${_libtool:+MAKE} ${_libtool:+"make LIBTOOL=${_libtool}"};
-
- AR="${PKG_AR}" \
- CC="${PKG_CC}" \
- RANLIB="${PKG_RANLIB}" \
- CFLAGS="${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}" \
- CPPFLAGS="${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}" \
- CXXFLAGS="${PKG_CXXFLAGS_CONFIGURE:-}${PKG_CXXFLAGS_CONFIGURE_EXTRA:+ ${PKG_CXXFLAGS_CONFIGURE_EXTRA}}" \
- LDFLAGS="${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}" \
- "${PKG_CONFIGURE}" ${PKG_CONFIGURE_ARGS:-} ${PKG_CONFIGURE_ARGS_EXTRA:-} ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG:-};
- _rc=$((${?} ? 1 : ${_rc}));
-
- rtl_export_vars -u \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}" \
- ${_libtool:+MAKE} ${_libtool:+"make LIBTOOL=${_libtool}"};
- return "${_rc}";
- fi;
-};
-
-pkgp_configure_cmake() {
- local _cmake_args_auto"" _build_type="" _IFS0="${IFS:- }" _rc=0 IFS;
-
- if [ "${PKG_CMAKE_LISTFILE:+1}" != 1 ]\
- || ! [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/${PKG_CMAKE_LISTFILE}" ]; then
- _rc=2;
- else
- rtl_fileop rm config.cache || return 1;
- rtl_export_vars \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}";
-
- case "${BUILD_KIND}" in
- debug) _build_type="debug"; ;;
- release|*) _build_type="release"; ;;
- esac;
-
- _cmake_args_auto="
- -DCMAKE_AR=${PKG_AR}
- -DCMAKE_BUILD_TYPE=${_build_type}
- -DCMAKE_C_COMPILER=${PKG_CC}
- -DCMAKE_C_FLAGS=${PKG_CFLAGS_CONFIGURE:-}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_CPP_FLAGS=${PKG_CPPFLAGS_CONFIGURE:-}${PKG_CPPFLAGS_CONFIGURE_EXTRA:+ ${PKG_CPPFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_CXX_COMPILER=${PKG_CXX}
- -DCMAKE_CXX_FLAGS=${PKG_CXXFLAGS_CONFIGURE:-}${PKG_CXXFLAGS_CONFIGURE_EXTRA:+ ${PKG_CXXFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_EXE_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_FIND_ROOT_PATH=${PKG_PREFIX}
- -DCMAKE_INSTALL_PREFIX=
- -DCMAKE_LINKER=$(which "ld")
- -DCMAKE_MODULE_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DCMAKE_RANLIB=${PKG_RANLIB}
- -DCMAKE_SHARED_LINKER_FLAGS=${PKG_LDFLAGS_CONFIGURE:-}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}
- -DPKG_CONFIG_EXECUTABLE=${PKG_PKG_CONFIG}" || return 1;
-
- case "${PKG_BUILD_TYPE}" in
- host|cross)
- ;;
- native)
- _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_LINKER=$(which "${PKG_TARGET}-ld")
- -DCMAKE_SYSROOT=${PKG_PREFIX}
- -DCMAKE_SYSTEM_NAME=Midipix" || return 1;
-
- case "${ARCH}" in
- nt32) _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_SYSTEM_PROCESSOR=i686"; ;;
- nt64) _cmake_args_auto="${_cmake_args_auto:+${_cmake_args_auto}}
- -DCMAKE_SYSTEM_PROCESSOR=x86_64"; ;;
- esac; ;;
- esac;
-
- IFS="
- "; "${PKG_CMAKE}" \
- ${_cmake_args_auto} \
- ${PKG_CMAKE_ARGS:-} \
- ${PKG_CMAKE_ARGS_EXTRA:-} \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}";
- _rc=$((${?} ? ${?} : ${_rc})); IFS="${_IFS0}";
-
- rtl_export_vars -u \
- PKG_CONFIG "${PKG_PKG_CONFIG:-}" \
- PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}" \
- PYTHON "${PKG_PYTHON:-}";
- fi;
- return "${_rc}";
-};
-
-pkgp_configure_sofort() {
- local _rc=0 _vname="" _vnames="" _vval="";
-
- if ! [ -x "${PKG_CONFIGURE:-}" ]; then
- return 2;
- elif ! [ -d "${PKG_BASE_DIR}/${PKG_SUBDIR}/sofort" ]\
- && ! [ "${PKG_CONFIGURE_TYPE:-}" = "sofort" ]; then
- return 2;
- else
- for _vname in AR CC CXX LD RANLIB; do
- if eval [ '"${PKG_'"${_vname}"':+1}"' = 1 ]; then
- _vnames="${_vnames:+${_vnames} }${_vname}";
- eval ${_vname}='${PKG_'"${_vname}"'}'; export ${_vname};
- fi;
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"':+1}"' = 1 ]; then
- _vnames="${_vnames:+${_vnames} }NATIVE_${_vname}";
- eval NATIVE_${_vname}='${PKG_SOFORT_NATIVE_'"${_vname}"'}'; export NATIVE_${_vname};
- fi;
- done;
- for _vname in CFLAGS CPPFLAGS CXXFLAGS LDFLAGS; do
- if eval [ '"${PKG_'"${_vname}"'_CONFIGURE:+1}"' = 1 ]; then
- eval _vval='${PKG_'"${_vname}"'_CONFIGURE}';
- if eval [ '"${PKG_'"${_vname}"'_CONFIGURE_EXTRA:+1}"' = 1 ]; then
- eval _vval='${_vval:+${_vval} }${PKG_'"${_vname}"'_CONFIGURE_EXTRA}';
- fi;
- _vnames="${_vnames:+${_vnames} }${_vname} ${_vname}_SHARED ${_vname}_STATIC";
- eval ${_vname}='${_vval}'\; ${_vname}_SHARED='${_vval}'\; ${_vname}_STATIC='${_vval}';
- export ${_vname} ${_vname}_SHARED ${_vname}_STATIC;
- fi;
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"':+1}"' = 1 ]; then
- eval _vval='${PKG_SOFORT_NATIVE_'"${_vname}"'}';
- if eval [ '"${PKG_SOFORT_NATIVE_'"${_vname}"'_EXTRA:+1}"' = 1 ]; then
- eval _vval='${_vval:+${_vval} }${PKG_SOFORT_NATIVE_'"${_vname}"'_EXTRA}';
- fi;
- _vnames="${_vnames:+${_vnames} }NATIVE_${_vname}";
- eval NATIVE_${_vname}='${_vval}'; export NATIVE_${_vname};
- fi;
- done;
-
- RANLIB="${PKG_RANLIB}" \
- "${PKG_CONFIGURE}" \
- ${PKG_CONFIGURE_ARGS:-} \
- ${PKG_CONFIGURE_ARGS_EXTRA:-} \
- ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG:-};
- _rc=$((${?} ? 1 : ${_rc}));
-
- for _vname in ${_vnames}; do
- unset "${_vname}";
- done;
- return "${_rc}";
- fi;
-};
-
-pkg_configure() {
- local _rc=0 _type="";
-
- for _type in autotools sofort cmake; do
- if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
- && [ "${PKG_CONFIGURE_TYPE}" != "${_type}" ]; then
- continue;
- else
- pkgp_configure_${_type} "${@}"; _rc="${?}";
- case "${_rc}" in
- 0|1) return "${_rc}"; ;;
- 2) _rc=0; continue; ;;
- esac;
- fi;
- done;
- return "${_rc}";
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/subr/pkg_configure_autotools.subr b/subr/pkg_configure_autotools.subr
deleted file mode 100644
index 15d76566..00000000
--- a/subr/pkg_configure_autotools.subr
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_autotools() {
- local _config_cache="" _config_guest_fname="" _fname="" _subdir_tgt="";
-
- if [ "${PKG_CONFIGURE_TYPE:+1}" = 1 ]\
- && [ "${PKG_CONFIGURE_TYPE}" != "autotools" ]; then
- return 0;
- fi;
-
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- _config_guest_fname="config.guess";
- else
- _config_guest_fname="";
- fi;
-
- if rtl_exists_any "${PKG_BASE_DIR}/${PKG_SUBDIR}" \
- ${_config_guest_fname:+"${_config_guest_fname}"} \
- "configure.ac" "configure.in" "configure";
- then rtl_export_vars PKG_CONFIG "${PKG_PKG_CONFIG:-}" PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}";
- if [ "${PKG_FORCE_AUTORECONF:-0}" -eq 1 ]\
- && ! (cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && autoreconf -fiv); then
- return 1;
- fi;
- if [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/configure.ac" ]\
- && [ ! -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/configure" ]; then
- for _fname in bootstrap bootstrap.sh autogen.sh; do
- if [ -e "${PKG_BASE_DIR}/${PKG_SUBDIR}/${_fname}" ]; then
- for _subdir_tgt in \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}/build-aux" \
- "${PKG_BASE_DIR}/${PKG_SUBDIR}";
- do if [ -e "${_subdir_tgt}" ]; then
- if ! rtl_fileop install -m 0700 \
- "${MIDIPIX_BUILD_PWD}/etc/config.sub" \
- "${_subdir_tgt}/config.sub"; then
- return 1;
- fi;
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- if ! rtl_fileop install -m 0700 \
- "${MIDIPIX_BUILD_PWD}/etc/config.guess"\
- "${_subdir_tgt}/config.guess"; then
- return 1;
- else
- break;
- fi;
- fi;
- fi;
- done;
- if ! (rtl_fileop cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && \
- /bin/sh "${_fname}"); then
- return 1;
- else
- break;
- fi;
- fi;
- done;
- if ! (rtl_fileop cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && autoconf); then
- return 1;
- fi;
- fi;
- for _fname in $(find "${PKG_BASE_DIR}/${PKG_SUBDIR}" -name config.sub); do
- if ! rtl_fileop mv "${_fname}" "${_fname}.orig"\
- || ! rtl_fileop install -m 0700 "${MIDIPIX_BUILD_PWD}/etc/config.sub" "${_fname}"; then
- return 1;
- fi;
- done;
- if [ "${PKG_AUTOCONF_CONFIG_GUESS:-midipix}" = "midipix" ]; then
- for _fname in $(find "${PKG_BASE_DIR}/${PKG_SUBDIR}" -name config.guess); do
- if ! rtl_fileop mv "${_fname}" "${_fname}.orig"\
- || ! rtl_fileop install -m 0700 "${MIDIPIX_BUILD_PWD}/etc/config.guess" "${_fname}"; then
- return 1;
- fi;
- done;
- fi;
- if [ "${PKG_BUILD_TYPE}" != host ]; then
- if ! rtl_fileop touch "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- else for _config_cache in \
- "${PKG_CONFIG_CACHE:-}" \
- "${PKG_CONFIG_CACHE_LOCAL:-}" \
- "${PKG_CONFIG_CACHE_EXTRA:-}";
- do if [ -n "${_config_cache}" ]\
- && ! printf "%s\n" "${_config_cache}" |\
- tr " " "\n" >> "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- fi;
- done;
- if ! sed -i"" "s,%PREFIX%,${PKG_PREFIX},g" "${PKG_BUILD_DIR}/config.cache"; then
- return 1;
- fi;
- fi;
- fi;
- rtl_export_vars -u PKG_CONFIG "${PKG_PKG_CONFIG:-}" PKG_CONFIG_LIBDIR "${PKG_PKG_CONFIG_LIBDIR:-}";
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_clean.subr b/subr/pkg_configure_clean.subr
deleted file mode 100644
index 48549a90..00000000
--- a/subr/pkg_configure_clean.subr
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_clean() {
- local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}";
-
- if ex_pkg_state_test \
- "${_pkg_name}" \
- "configure_patch_pre,configure_autotools,configure_patch,configure" \
- "${_restart_at}"; then
- if [ "${PKG_BUILD_DIR:-}" != "${PKG_SUBDIR:-}" ]; then
- rtl_fileop rm "${PKG_BUILD_DIR}" || return 1;
- rtl_fileop mkdir "${PKG_BUILD_DIR}" || return 1;
- rtl_fileop cd "${PKG_BUILD_DIR}" || return 1;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_patch.subr b/subr/pkg_configure_patch.subr
deleted file mode 100644
index d7c84011..00000000
--- a/subr/pkg_configure_patch.subr
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_configure_patch() {
- local _patch_cwd="" _patch_dir="${MIDIPIX_BUILD_PWD}/patches" _patch_fname=""\
- _patches_done="" _pkg_name_full="${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}"\
- _strip_count=0;
-
- if [ -n "${PKG_FNAME:-}" ]\
- && [ -n "${PKG_URLS_GIT:-}" ]; then
- _patch_cwd="${PKG_BASE_DIR}"; _strip_count=0;
- else
- _patch_cwd="${PKG_BASE_DIR}/${PKG_SUBDIR}"; _strip_count=1;
- fi;
- set +o noglob;
- for _patch_fname in \
- "${_patch_dir}/${_pkg_name}/"*.patch \
- "${_patch_dir}/${_pkg_name_full}.local.patch" \
- "${_patch_dir}/${_pkg_name_full}.local@${BUILD_HNAME}.patch" \
- ${PKG_PATCHES_EXTRA:-}; do
- if [ -r "${_patch_fname}" ]\
- && ! rtl_lmatch "${_patches_done}" "${_patch_fname}"; then
- if ! patch -b -d "${_patch_cwd}" "-p${_strip_count}" < "${_patch_fname}"; then
- set -o noglob; return 1;
- else
- _patches_done="$(rtl_lconcat "${_patches_done}" "${_patch_fname}")";
- fi;
- fi;
- done; set -o noglob;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_configure_patch_pre.subr b/subr/pkg_configure_patch_pre.subr
deleted file mode 100644
index c78b65b2..00000000
--- a/subr/pkg_configure_patch_pre.subr
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_configure_patch_pre() {
- local _patch_path="";
- for _patch_path in \
- "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local.patch" \
- "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local@${BUILD_HNAME}.patch"; do
- if [ -r "${_patch_path}" ]\
- && ! patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_configure_patch_pre_chainport() {
- local _chainport_patch_dname="" _chainport_patch_fname="" _oldpwd="";
- _chainport_patch_dname="${PKG_BASE_DIR}/${PKG_SUBDIR}/patches/${PKG_NAME%%_*}";
- if [ -n "${PKG_VERSION:-}" ]; then
- _chainport_patch_fname="${BUILD_WORKDIR}/chainport/patches/${PKG_NAME%%_*}/${PKG_NAME%%_*}-${PKG_VERSION}.midipix.patch";
- fi;
- if [ -e "${_chainport_patch_fname}" ]; then
- if ! rtl_fileop mkdir "${_chainport_patch_dname}"\
- || ! rtl_fileop cp "${_chainport_patch_fname}" "${_chainport_patch_dname}"; then
- return 1;
- fi;
- fi;
-};
-
-pkg_configure_patch_pre() {
- if ! pkgp_configure_patch_pre_chainport\
- || ! pkgp_configure_patch_pre; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_fetch_clean.subr b/subr/pkg_fetch_clean.subr
deleted file mode 100644
index 52797068..00000000
--- a/subr/pkg_fetch_clean.subr
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_fetch_clean() {
- local _dname="";
-
- if [ -n "${PKG_URLS_GIT:-}" ]; then
- if [ -n "${PKG_SUBDIR:-}" ]\
- && [ "${PKG_SUBDIR}" != "${PKG_URLS_GIT%%=*}" ]; then
- rtl_fileop rm "${PKG_SUBDIR}";
- fi;
- for _dname in ${PKG_URLS_GIT}; do
- _dname="${_dname%%=*}"; rtl_fileop rm "${_dname}";
- done;
- elif [ -n "${PKG_SUBDIR}" ]; then
- rtl_fileop rm "${PKG_SUBDIR}";
- fi; return 0;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_fetch_download.subr b/subr/pkg_fetch_download.subr
deleted file mode 100644
index 7a333947..00000000
--- a/subr/pkg_fetch_download.subr
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_fetch_download_clean_dlcache() {
- local _dlcachedir="${1}" _pkg_name="${2}" _pkg_fname="${3}" _pkg_urls_git="${4}"\
- _fname="" _skipfl=0 _url_spec="" _url_subdir="";
-
- for _fname in $(cd "${_dlcachedir}/${_pkg_name}" 2>/dev/null && find \
- -maxdepth 1 \
- -mindepth 1 \
- ${_pkg_fname:+-not -name "${_pkg_fname}"} \
- ${_pkg_fname:+-not -name "${_pkg_fname}.fetched"}); do
- _fname="${_fname#./}"; _skipfl=0;
- for _url_spec in ${_pkg_urls_git}; do
- _url_subdir="${_url_spec%%=*}"; _url_subdir="${_url_subdir##*/}";
- if [ "${_fname%.git}" = "${_url_subdir}" ]; then
- _skipfl=1; break;
- fi;
- done;
- if [ "${_skipfl}" -eq 0 ]; then
- _fname="${_dlcachedir}/${_pkg_name}/${_fname}";
- rtl_log_msg "verbose" "${MSG_rtl_fetch_rm_redundant}" "${_fname}" "${_pkg_name}";
- rtl_fileop rm "${_fname}";
- fi;
- done;
-};
-
-pkg_fetch_download_dlcache_subdir() {
- if [ -n "${PKG_INHERIT_FROM:-}" ]\
- && ! [ -e "${BUILD_DLCACHEDIR}/${PKG_NAME}" ]\
- && ! rtl_fileop ln_symbolic "${PKG_INHERIT_FROM}" "${BUILD_DLCACHEDIR}/${PKG_NAME}"; then
- return 1;
- elif [ -z "${PKG_INHERIT_FROM:-}" ]\
- && ! [ -e "${BUILD_DLCACHEDIR}/${PKG_NAME}" ]\
- && ! rtl_fileop mkdir "${BUILD_DLCACHEDIR}/${PKG_NAME}"; then
- return 1;
- else
- return 0;
- fi;
-};
-
-pkg_fetch_download() {
- if [ "${ARG_FETCH_FORCE:-}" != "offline" ]; then
- if [ -n "${PKG_URL:-}" ]; then
- if ! pkg_fetch_download_dlcache_subdir; then
- return 1;
- elif ! rtl_fetch_url_wget \
- "${PKG_URL}" "${PKG_SHA256SUM}" "${BUILD_DLCACHEDIR}/${PKG_NAME}"\
- "${PKG_FNAME}" "${PKG_NAME}" "${PKG_MIRRORS:-}"; then
- return 1;
- fi;
- fi;
- if [ -n "${PKG_URLS_GIT:-}" ]; then
- if ! pkg_fetch_download_dlcache_subdir; then
- return 1;
- elif ! rtl_fetch_urls_git \
- "${BUILD_DLCACHEDIR}/${PKG_NAME}" "${DEFAULT_GIT_ARGS}" "${PKG_BASE_DIR}"\
- "${PKG_NAME}" "${PKG_MIRRORS_GIT:-}" ${PKG_URLS_GIT}; then
- return 1;
- fi;
- fi;
- pkg_fetch_download_clean_dlcache "${BUILD_DLCACHEDIR}" "${PKG_NAME}" "${PKG_FNAME:-}" "${PKG_URLS_GIT:-}";
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_clean.subr b/subr/pkg_install_clean.subr
deleted file mode 100644
index 3d99f321..00000000
--- a/subr/pkg_install_clean.subr
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_clean() {
- if [ -n "${PKG_DESTDIR:-}" ]; then
- rtl_fileop rm "${PKG_DESTDIR}" || return 1;
- rtl_fileop mkdir "${PKG_DESTDIR}" || return 1;
- fi; return 0;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_files.subr b/subr/pkg_install_files.subr
deleted file mode 100644
index 0cd03e43..00000000
--- a/subr/pkg_install_files.subr
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_install_files() {
- if [ -n "${PKG_INSTALL_FILES:-}" ]; then
- if ! rtl_install -v "${PKG_DESTDIR}" ${PKG_INSTALL_FILES}; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_files_v2() {
- local _vflag=""; _status="";
-
- if [ -n "${PKG_INSTALL_FILES_V2:-}" ]; then
- if rtl_lmatch "${ARG_VERBOSE_TAGS}" "install" ","; then
- _vflag="-v";
- fi;
- if ! rtl_install_v2 \
- -p "_builddir=${PKG_BUILD_DIR}" \
- -p "_destdir=${PKG_BASE_DIR}/${PKG_DESTDIR}" \
- -p "_destdir_host=${PKG_BASE_DIR}/${PKG_DESTDIR_HOST}" \
- -p "_files=${MIDIPIX_BUILD_PWD}/files/${PKG_NAME}" \
- -p "_name=${PKG_NAME}" \
- -p "_prefix=${PKG_PREFIX}" \
- -p "_prefix_host=${PREFIX}" \
- -p "_prefix_native=${PREFIX_NATIVE}" \
- -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \
- -p "_target=${PKG_TARGET}" \
- -p "_version=${PKG_VERSION:-}" \
- -p "_workdir=${BUILD_WORKDIR}" \
- ${_vflag} -- "${PKG_DESTDIR}" \
- "${PKG_INSTALL_FILES_V2}"; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_files_perms() {
- local _destdir="" _fname="" IFS;
- for _destdir in "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; do
- if [ -e "${_destdir}" ]; then
- rtl_set_IFS_nl;
- for _fname in $(find "${_destdir}" -type d); do
- if ! rtl_fileop chmod 0755 "${_fname}"; then
- return 1;
- fi;
- done;
- for _fname in $(find "${_destdir}" \( -not -perm /0111 \) -type f); do
- if ! rtl_fileop chmod 0644 "${_fname}"; then
- return 1;
- fi;
- done;
- for _fname in $(find "${_destdir}" -perm /0111 -type f); do
- if ! rtl_fileop chmod 0755 "${_fname}"; then
- return 1;
- fi;
- done;
- fi;
- done;
-};
-
-pkgp_install_files_pkgconfig() {
- local _pc_path="";
- for _pc_path in $(find "${PKG_DESTDIR}" -name \*.pc); do
- if [ -n "$(sed -ne '/^libdir=[^$]*$/p' "${_pc_path}")" ] \
- && ! sed -i"" -e '/^libdir=[^$]*$/s/^libdir=\(.*\)$/libdir=${exec_prefix}\1/' \
- -e '/^exec_prefix=$/s/^.*$/exec_prefix=${prefix}/' \
- "${_pc_path}"; then
- return 1;
- fi;
- if [ -n "$(sed -ne '/^includedir=[^$]*$/p' "${_pc_path}")" ] \
- && ! sed -i"" -e '/^includedir=[^$]*$/s/^includedir=\(.*\)$/includedir=${prefix}\1/' \
- "${_pc_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_install_files_strip() {
- local _bin_path="" _stripfl=0 _tree_root="${PKG_DESTDIR}";
- if [ -e "${_tree_root}" ]; then
- if rtl_match "${PKG_NAME}" "*_minipix"; then
- : $((_stripfl=(${ARG_DEBUG_MINIPIX:-0} ? 0 : 1)));
- elif [ "${BUILD_KIND}" = release ]\
- && [ "${PKG_BUILD_TYPE}" = native ]; then
- _stripfl=1;
- else
- _stripfl=0;
- fi;
- if [ "${_stripfl:-0}" -eq 1 ]; then
- for _bin_path in $(find "${_tree_root}" -perm /a=x -type f); do
- if objdump -sj .debug_frame -j .debug_info "${_bin_path}" >/dev/null 2>&1; then
- rtl_log_msg "pkg_strip" "${MSG_pkg_strip}" "${_bin_path}";
- if ! "${PKG_TARGET}-strip" "${_bin_path}"; then
- return 1;
- fi;
- fi;
- done;
- fi;
- fi;
-};
-
-pkg_install_files() {
- if ! pkgp_install_files\
- || ! pkgp_install_files_v2\
- || ! pkgp_install_files_perms\
- || ! pkgp_install_files_pkgconfig\
- || ! pkgp_install_files_strip; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_libs.subr b/subr/pkg_install_libs.subr
deleted file mode 100644
index 3dcc0ac2..00000000
--- a/subr/pkg_install_libs.subr
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgp_install_libs_purge_la() {
- local _la_path="";
- for _la_path in $(find "${PKG_DESTDIR}" -type f -name \*.la); do
- if ! rtl_fileop rm "${_la_path}"; then
- return 1;
- fi;
- done;
-};
-
-pkgp_install_libs_shared_link() {
- local _lib_name="${1}" _so_dir="${2}" _so_path="${3}" _lib_link_path="${3%.so*}.lib.a" _lib_link_tgt="";
- if _lib_link_tgt="$(find "${_so_dir}" -name "${_lib_name%%.*}.*.lib.a" | sort | tail -1)"\
- && [ -n "${_lib_link_tgt}" ]\
- && [ "${_lib_link_tgt}" != "${_lib_link_path}" ]; then
- if ! rtl_fileop rm "${_lib_link_path}"\
- || ! rtl_fileop ln_symbolic "$(rtl_basename "${_lib_link_tgt}")" "${_lib_link_path}"; then
- return 1;
- fi;
- fi;
-};
-
-pkgp_install_libs_shared() {
- local _lib_dst_path="" _lib_name="" _lib_src_path="" _so_dst_dir="" _so_src_path="";
- if [ "${PKG_BUILD_TYPE}" != "host" ]; then
- for _so_src_path in \
- $(find "${PKG_DESTDIR}" \
- \( -name "*.so" -or -name "*.so.*" \) -print);
- do if [ "$(readlink -f "${_so_src_path}")" != "/dev/null" ]\
- && [ -z "$(rtl_head "[0-9.]" "${_so_src_path##*.so}")" ]; then
- case "${_so_src_path}" in
- *.so) _lib_src_path="${_so_src_path%%.so}.lib.a"; ;;
- *.so.*) _lib_src_path="${_so_src_path%%.so.*}.${_so_src_path##*.so.}.lib.a"; ;;
- esac;
- _so_dst_dir="${_so_src_path%/*}";
- _lib_name="$(rtl_basename "${_lib_src_path}")";
- _lib_dst_path="${_so_dst_dir}/${_lib_name}";
- if [ ! -L "${_lib_src_path}" ]\
- && [ ! -e "${_lib_dst_path}" ]; then
- if ! (rtl_fileop cd "$(rtl_dirname "${_so_src_path}")" && \
- perk -e "$(rtl_basename "${_so_src_path}")" |\
- "${PKG_TARGET}-mdso" \
- -i "$(rtl_basename "${_lib_dst_path}")" \
- -n "$(rtl_basename "${_so_src_path}")" -); then
- return 1;
- fi;
- fi;
- if ! pkgp_install_libs_shared_link "${_lib_name}" "${_so_dst_dir}" "${_so_src_path}"; then
- return 1;
- fi;
- fi;
- done;
- fi;
-};
-
-pkg_install_libs() {
- if ! pkgp_install_libs_purge_la\
- || ! pkgp_install_libs_shared; then
- return 1;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_make.subr b/subr/pkg_install_make.subr
deleted file mode 100644
index f7ac4640..00000000
--- a/subr/pkg_install_make.subr
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_make() {
- local _libtool="" _rc=0 _subdir="";
- case "${PKG_LIBTOOL:-}" in
- "") _libtool=""; ;;
- none) _libtool=""; ;;
- *) _libtool="${PKG_LIBTOOL}"; ;;
- esac;
- for _subdir in ${PKG_MAKE_SUBDIRS:-:}; do
- if [ "${_subdir}" = ":" ]; then
- _subdir="";
- fi;
- if [ "${#_libtool}" -gt 0 ]; then
- export MAKE="make LIBTOOL=${_libtool}";
- fi;
- rtl_run_cmd_unsplit "${PKG_MAKE}" \
- ${PKG_MAKEFLAGS_INSTALL:-} \
- ${PKG_MAKEFLAGS_INSTALL_EXTRA:-} \
- AR="${PKG_AR}" CC="${PKG_CC}" RANLIB="${PKG_RANLIB}" \
- "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \
- ${_libtool:+"LIBTOOL=${_libtool}"} \
- "${PKG_MAKE_INSTALL_VNAME:-DESTDIR}=${PKG_DESTDIR}/" \
- ${PKG_INSTALL_TARGET:-install} \
- ${_subdir:+-C "${_subdir}"}; _rc="${?}";
- if [ "${#_libtool}" -gt 0 ]; then
- unset MAKE;
- fi;
- if [ "${_rc}" -ne 0 ]; then
- return 1;
- fi;
- done;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkg_install_rpm.subr b/subr/pkg_install_rpm.subr
deleted file mode 100644
index 776034b2..00000000
--- a/subr/pkg_install_rpm.subr
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_install_rpm() {
- local _pkg_url="" _pkg_version_full="" _pkg_version_rpm="" _rc=0;
- if rtl_lmatch "${ARG_DIST}" "rpm" ","\
- && [ "${PKG_RPM_DISABLE:-0}" -eq 0 ]\
- && [ -x "$(which rpmbuild 2>/dev/null)" ]; then
- if [ -n "${PKG_URL:-}" ]; then
- _pkg_url="${PKG_URL%% *}"; _pkg_version_full="${PKG_VERSION}"; _pkg_version_rpm="${PKG_VERSION%%-*}";
- elif [ -n "${PKG_URLS_GIT:-}" ]; then
- _pkg_version_rpm="$(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse HEAD)";
- _pkg_version_full="${_pkg_version_rpm} ($(cd "${PKG_BASE_DIR}/${PKG_SUBDIR}" && git rev-parse --abbrev-ref HEAD))";
- _pkg_url="${PKG_URLS_GIT%% *}"; _pkg_url="${_pkg_url##*=}"; _pkg_url="${_pkg_url%%@*}";
- if [ "${_pkg_url#${DEFAULT_GITROOT_HEAD}}" != "${_pkg_url}" ]; then
- _pkg_url="Unknown";
- fi;
- fi;
- if ! rtl_fileop cp "${MIDIPIX_BUILD_PWD}/etc/package.spec" \
- "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec"; then
- return 1;
- else while true; do
- rpmbuild \
- -bb \
- --define="_tmppath ${BUILD_WORKDIR}" \
- --define="_topdir ${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}" \
- --define="pkg_destdir ${PKG_DESTDIR}" \
- --define="pkg_name ${PKG_NAME}" \
- --define="pkg_url ${_pkg_url}" \
- --define="pkg_version_full ${_pkg_version_full}" \
- --define="pkg_version_rpm ${_pkg_version_rpm}" \
- --nodeps "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec"; _rc="${?}";
- if [ "${_rc}" -eq 0 ]; then
- break;
- elif [ "${_rc}" -eq 141 ]; then
- continue;
- else
- return "${_rc}";
- fi;
- done;
- if ! find "${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}/RPMS" \
- -iname \*.rpm -exec cp -pP {} "${PREFIX_RPM}/" \; \
- || ! rtl_fileop rm "${PREFIX_RPM}/${PKG_NAME}-${_pkg_version_rpm}" \
- || ! rtl_fileop cp "${PKG_BASE_DIR}/${PKG_NAME}-${_pkg_version_rpm}.spec" "${PREFIX_RPM}/"; then
- return 1;
- fi;
- fi;
- fi;
-};
-
-# vim:filetype=sh
diff --git a/subr/pkgtool_init.subr b/subr/pkgtool_init.subr
deleted file mode 100644
index 9d77d8d9..00000000
--- a/subr/pkgtool_init.subr
+++ /dev/null
@@ -1,153 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkgtoolp_init_args() {
- local _rc=0; _status="";
- if [ "$((${ARG_INFO:-0} + ${ARG_MIRROR:-0} + ${ARG_RDEPENDS:-0} + ${ARG_SHELL:-0} + ${ARG_TARBALL:-0}))" -gt 1 ]; then
- cat etc/pkgtool.usage; _rc=1; _status="Error: only one of -i, -m and/or -M, -r, -s, or -t must be specified.";
- elif [ "$((${ARG_INFO:-0} + ${ARG_MIRROR:-0} + ${ARG_RDEPENDS:-0} + ${ARG_SHELL:-0} + ${ARG_TARBALL:-0}))" -eq 0 ]\
- && [ -z "${ARG_RESTART_AT}" ]\
- && [ "${ARG_UPDATE_DIFF:-0}" -eq 0 ]; then
- cat etc/pkgtool.usage; _rc=1; _status="Error: one of -i, -m and/or -M, -r, -s, or -t must be specified.";
- elif [ "${BUILD_HNAME:+1}" != 1 ]\
- && ! BUILD_HNAME="$(hostname)"; then
- _rc=1; _status="failed to obtain hostname.";
- else _rc=0; export TMP="${BUILD_WORKDIR}" TMPDIR="${BUILD_WORKDIR}";
- fi; return "${_rc}";
-};
-
-pkgtoolp_init_env() {
- local _fname="" _lang="${LANG:-C}" _name="" _rc=0; _status=""; _lang="${_lang%%_*}";
-
- if ! cd "${0%/*}"; then
- printf "Error: failed to change working directory to \`${0%/*}'." >&2; exit 1;
- elif ! umask 022; then
- printf "Error: failed to set umask(2).\n" >&2; exit 1;
- else for _fname in \
- $(find subr.rtl -name *.subr) \
- $(find subr -name *.subr) \
- etc/pkgtool.theme \
- ;
- do
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- done;
- if [ -e "etc/pkgtool.theme.local" ]; then
- if ! . "etc/pkgtool.theme.local"; then
- printf "Error: failed to source \`%s'.\n" "etc/pkgtool.theme.local" >&2; exit 1;
- fi;
- fi;
- for _name in pkgtool rtl; do
- for _lang_ in ${_lang} C; do
- _fname="etc/${_name}.msgs.${_lang_}";
- if [ -e "${_fname}" ]; then
- if ! . "${_fname}"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}" >&2; exit 1;
- fi;
- if [ -e "${_fname}.local" ]; then
- if ! . "${_fname}.local"; then
- printf "Error: failed to source \`%s'.\n" "${_fname}.local" >&2; exit 1;
- fi;
- fi; break;
- fi;
- done;
- done;
-
- fi; export LANG=C LC_ALL=C; return "${_rc}";
-};
-
-pkgtoolp_init_getopts() {
- local _opt="" _shiftfl=0 _rc=0 OPTIND=0; _status=""; : ${ARCH:="nt64"}; : ${BUILD_KIND:="debug"};
- ARG_INFO=0; ARG_MIRROR=0; ARG_MIRROR_DNAME=""; ARG_MIRROR_DNAME_GIT=""; ARG_RESTART_AT="";
- ARG_RDEPENDS=0; ARG_UPDATE_DIFF=0; ARG_SHELL=0; ARG_TARBALL=0; ARG_VERBOSE=0;
- while [ "${#}" -gt 0 ]; do
- case "${1}" in
- --update-diff)
- ARG_UPDATE_DIFF=1; _shiftfl=1; ;;
- --restart-at)
- if [ "${#}" -lt 2 ]\
- || [ -z "${2}" ]; then
- _rc=1; _status="Error: missing argument for option --restart-at.";
- else
- ARG_RESTART_AT="${2}"; _shiftfl=2;
- fi; ;;
- *) _shiftfl=0; ;;
- esac;
- if [ "${_rc:-0}" -ne 0 ]; then
- break;
- elif [ "${_shiftfl:-0}" -gt 0 ]; then
- shift "${_shiftfl}"; continue;
- elif getopts a:b:him:M:rstv _opt; then
- case "${_opt}" in
- a) ARCH="${OPTARG}"; ;;
- b) BUILD_KIND="${OPTARG}"; ;;
- h) cat etc/pkgtool.usage; exit 0; ;;
- i) ARG_INFO=1; ;;
- m) ARG_MIRROR=1; ARG_MIRROR_DNAME="${OPTARG}"; ;;
- M) ARG_MIRROR=1; ARG_MIRROR_DNAME_GIT="${OPTARG}"; ;;
- r) ARG_RDEPENDS=1; ;;
- s) ARG_SHELL=1; ;;
- t) ARG_TARBALL=1; ;;
- v) ARG_VERBOSE=1; ;;
- *) cat etc/pkgtool.usage; exit 1; ;;
- esac; shift $((${OPTIND}-1)); OPTIND=1;
- else case "${1}" in
- *=*) rtl_set_var_unsafe "${1%%=*}" "${1#*=}"; ;;
- *) PKGTOOL_PKG_NAME="${1}"; ;;
- esac; shift;
- fi;
- done;
- if [ "${_rc}" -eq 0 ]; then
- if [ -z "${PKGTOOL_PKG_NAME:-}" ]\
- && [ "${ARG_MIRROR:-0}" -eq 0 ]; then
- _rc=1; _status="Error: missing package name.";
- else export PKGTOOL_PKG_NAME;
- case "${ARG_VERBOSE:-0}" in
- 0) rtl_log_enable_tags "${LOG_TAGS_normal}"; ;;
- 1) rtl_log_enable_tags "${LOG_TAGS_verbose}"; ;;
- *) _rc=1; _status="Error: invalid verbosity level (max. -v)"; ;;
- esac;
- fi;
- fi; return "${_rc}";
-};
-
-pkgtoolp_init_getopts_help() {
- local _opt="";
- while getopts a:b:hirst _opt 2>/dev/null; do
- case "${_opt}" in
- h)
- if [ -t 1 ]; then
- cat etc/pkgtool.usage;
- else
- sed 's/\[[0-9]\+m//g' etc/pkgtool.usage;
- fi; exit 0; ;;
- esac; done; shift $((${OPTIND}-1));
-};
-
-pkgtoolp_init_prereqs() {
- if ! rtl_check_prereqs \
- awk bzip2 cat chmod cp date find grep hostname mkdir \
- mktemp mv paste printf readlink rm sed sort tar test \
- touch tr uniq; then
- printf "%s\n" "${_status}" >&2; exit 1;
- elif ! (FNAME="$(mktemp)" && { trap "rm -f \"\${FNAME}\"" EXIT; \
- sed -i'' -e '' "${FNAME}" >/dev/null 2>&1; }); then
- printf "Error: sed(1) in \${PATH} does not support the \`-i' option.\n" >&2; exit 1;
- fi;
-};
-
-pkgtool_init() {
- local _fname="" _rc=0; _status="";
- if ! pkgtoolp_init_env \
- || ! pkgtoolp_init_getopts_help "${@}" \
- || ! pkgtoolp_init_prereqs \
- || ! pkgtoolp_init_getopts "${@}" \
- || ! ex_pkg_load_vars \
- || ! pkgtoolp_init_args; then
- _rc=1; _status="${_status}";
- fi; return "${_rc}";
-};
-
-# vim:filetype=sh
diff --git a/vars.dist/dist_gitref.vars b/vars.dist/dist_gitref.vars
new file mode 100644
index 00000000..e1f2152c
--- /dev/null
+++ b/vars.dist/dist_gitref.vars
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_dist_gitref_all() {
+ local _pdga_group_name="${1}" _pdga_pkg_name="${2}" _pdga_restart_at="${3}";
+
+ (rtl_fileop cd "${MIDIPIX_BUILD_PWD}" &&\
+ git rev-parse HEAD > "${PREFIX}/build.gitref");
+ if [ "${?}" -eq 0 ]; then
+ ex_pkg_dispatch_send "step" "${_pdga_group_name}" "${_pdga_pkg_name}" "finish";
+ ex_pkg_state_set "${_pdga_pkg_name}" "finish";
+ return 0;
+ else
+ return 1;
+ fi;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/dist/dist_minipix.dist b/vars.dist/dist_minipix.vars
index 8ec48510..c889f82a 100644
--- a/dist/dist_minipix.dist
+++ b/vars.dist/dist_minipix.vars
@@ -1,4 +1,5 @@
#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
# set +o errexit -o noglob -o nounset is assumed.
#
@@ -17,7 +18,7 @@
\
+%[_native]/lib/libassuan.so.0=%[_minipix]/bin/libassuan.so.0 \
+%[_native]/lib/libbz2.so.1=%[_minipix]/bin/libbz2.so.1 \
- +%[_native]/lib/libcrypto.so.49=%[_minipix]/bin/libcrypto.so.49 \
+ +%[_native]/lib/libcrypto.so.53=%[_minipix]/bin/libcrypto.so.53 \
+%[_native]/lib/libc.so=%[_minipix]/bin/libc.so \
+%[_native]/lib/libcurl.so.4=%[_minipix]/bin/libcurl.so.4 \
+%[_native]/lib/libexpat.so.1=%[_minipix]/bin/libexpat.so.1 \
@@ -42,12 +43,13 @@
+%[_native]/lib/libpsxscl.so=%[_minipix]/bin/libpsxscl.so \
+%[_native]/lib/libpython2.7.so.1=%[_minipix]/bin/libpython2.7.so.1 \
+%[_native]/lib/libreadline.so.8=%[_minipix]/bin/libreadline.so.8 \
- +%[_native]/lib/libssl.so.52=%[_minipix]/bin/libssl.so.52 \
+ +%[_native]/lib/libssl.so.56=%[_minipix]/bin/libssl.so.56 \
+%[_native]/lib/libtasn1.so.6=%[_minipix]/bin/libtasn1.so.6 \
+%[_native]/lib/libtinfo.so.6=%[_minipix]/bin/libtinfo.so.6 \
+%[_native]/lib/libtinfow.so.6=%[_minipix]/bin/libtinfow.so.6 \
+ @libtinfow.so.6=%[_minipix]/bin/libtinfow.so \
+%[_native]/lib/libu16ports.so.0=%[_minipix]/bin/libu16ports.so.0 \
- +%[_native]/lib/libunistring.so.2=%[_minipix]/bin/libunistring.so.2 \
+ +%[_native]/lib/libunistring.so.5=%[_minipix]/bin/libunistring.so.5 \
+%[_native]/lib/libuuid.so.1=%[_minipix]/bin/libuuid.so.1 \
+%[_native]/lib/libz.so.1=%[_minipix]/bin/libz.so.1 \
\
@@ -75,20 +77,28 @@
"};
pkg_dist_minipix_all() {
- local _vflag="";
+ local _pdma_group_name="${1}" _pdma_pkg_name="${2}" _pdma_restart_at="${3}" \
+ _pdma_status="" _pdma_vflag="";
- if rtl_lmatch "${ARG_VERBOSE_TAGS}" "install" ","; then
- _vflag="-v";
+ if rtl_lmatch \$ARG_VERBOSE_TAGS "install" ","; then
+ _pdma_vflag="-v";
fi;
- if rtl_lmatch "${ARG_DIST}" "minipix" "," \
- && ! rtl_install_v2 \
- -p "_minipix=${PREFIX_MINIPIX##*/}" \
- -p "_minipix_dist=${PREFIX}/minipix_dist" \
- -p "_native=${PREFIX_NATIVE##*/}" \
- ${_vflag} -- "${PREFIX}" \
+
+ if rtl_lmatch \$ARG_DIST "minipix" "," \
+ && ! rtl_install_v2 \
+ \$_pdma_status \
+ -p "_minipix=${PREFIX_MINIPIX##*/}" \
+ -p "_minipix_dist=${PREFIX}/minipix_dist" \
+ -p "_native=${PREFIX_NATIVE##*/}" \
+ ${_pdma_vflag} -- "${PREFIX}" \
"${PKG_INSTALL_FILES_V2}"; then
return 1;
fi;
+
+ ex_pkg_dispatch_send "step" "${_pdma_group_name}" "${_pdma_pkg_name}" "finish";
+ ex_pkg_state_set "${_pdma_pkg_name}" "finish";
+
+ return 0;
};
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/vars.dist/dist_zipdist.vars b/vars.dist/dist_zipdist.vars
new file mode 100644
index 00000000..51e8dad0
--- /dev/null
+++ b/vars.dist/dist_zipdist.vars
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_dist_zipdist_all() {
+ local _pdza_group_name="${1}" _pdza_pkg_name="${2}" _pdza_restart_at="${3}" \
+ _pdza_dist_fname="" _pdza_pkg_name="" _pdza_pkglist_fname="${PREFIX}/pkglist.native";
+
+ if ! rtl_lmatch \$ARG_DIST "zipdist" ","; then
+ return 0;
+ fi;
+
+ ex_pkg_dispatch_send "msg_pkg" "dist" "dist_zipdist" "${MSG_zipdist_begin}";
+ rtl_log_msgV "zipdist" "${MSG_zipdist_begin}";
+
+ for _pdza_pkg_name in $(cat "${_pdza_pkglist_fname}"); do
+ if [ ! -e "${BUILD_WORKDIR}/${_pdza_pkg_name}-native-${DEFAULT_TARGET}" ]; then
+ rtl_log_msgV "fatalexit" "${MSG_zipdist_missing_pkg_build_dir}" "${_pdza_pkg_name}";
+ fi;
+ done;
+
+ _pdza_dist_fname="${DEFAULT_ZIPDIST_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.zip";
+
+ if [ -e "${BUILD_WORKDIR}/zipdist" ]\
+ && ! rtl_fileop rm "${BUILD_WORKDIR}/zipdist"; then
+ return 1;
+ elif ! rtl_fileop mkdir "${BUILD_WORKDIR}/zipdist"; then
+ return 1;
+ elif ! "${BUILD_WORKDIR}/mpackage/mpackage.sh" \
+ --defroot="${DEFAULT_ZIPDIST_DEFROOT}" \
+ --flysyms \
+ --minroot="${PREFIX_MINIPIX}" \
+ --objroot="${BUILD_WORKDIR}" \
+ --pkgroot="${BUILD_WORKDIR}/zipdist/pkgroot" \
+ --product=Midipix \
+ --subset="${_pdza_pkglist_fname}" \
+ --symbols \
+ --sysroot="${BUILD_WORKDIR}/zipdist/sysroot" \
+ --target="${DEFAULT_TARGET}" \
+ --tmproot="${BUILD_WORKDIR}/zipdist/tmproot" \
+ --zipfile="${PREFIX}/${_pdza_dist_fname}"; then
+ return 1;
+ fi;
+
+ ex_pkg_dispatch_send "msg_pkg" "dist" "dist_zipdist" "${MSG_zipdist_finished}";
+ rtl_log_msgV "zipdist" "${MSG_zipdist_finished}";
+
+ if [ "${DEFAULT_ZIPDIST_SIGN_GPG_KEY:+}" = 1 ]\
+ && command which gpg >/dev/null 2>&1\
+ && gpg --list-keys "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" >/dev/null 2>&1;
+ then
+ ex_pkg_dispatch_send "msg_pkg" "dist" "dist_zipdist" "${MSG_zipdist_signing}";
+ rtl_log_msgV "zipdist" "${MSG_zipdist_signing}";
+
+ if ! gpg --armor --passphrase-file /dev/null \
+ --local-user "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" \
+ --sign "${PREFIX}/${_pdza_dist_fname}"; then
+ return 1;
+ fi;
+
+ ex_pkg_dispatch_send "msg_pkg" "dist" "dist_zipdist" "${MSG_zipdist_signed}";
+ rtl_log_msgV "zipdist" "${MSG_zipdist_signed}";
+ fi;
+
+ ex_pkg_dispatch_send "step" "${_pdza_group_name}" "${_pdza_pkg_name}" "finish";
+ ex_pkg_state_set "${_pdza_pkg_name}" "finish";
+
+ return 0;
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/000.build.env b/vars.env.d/000.build.env
new file mode 100644
index 00000000..1c38d3da
--- /dev/null
+++ b/vars.env.d/000.build.env
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# Build steps
+DEFAULT_BUILD_STEPS=" \
+ fetch_clean fetch_download fetch_extract \
+ configure_clean configure_patch_pre configure_autotools configure_patch configure \
+ build_clean build \
+ install_clean install_subdirs install_make install_files install install_rpm \
+ clean \
+ finish";
+
+#
+# Build variables
+DEFAULT_BUILD_VARS=" \
+ AR AUTOCONF_CONFIG_GUESS BASE_DIR BUILD_DIR BUILD_STEPS_DISABLE BUILD_TYPE CC CCLD \
+ CFLAGS_BUILD CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA CMAKE \
+ CMAKE_ARGS CMAKE_ARGS_EXTRA CMAKE_LISTFILE CONFIG_CACHE CONFIG_CACHE_EXTRA \
+ CONFIG_CACHE_LOCAL CONFIGURE CONFIGURE_ARGS CONFIGURE_ARGS_EXTRA \
+ CONFIGURE_ARGS_EXTRA_LIST CONFIGURE_ARGS_LIST CONFIGURE_TYPE CPPFLAGS_CONFIGURE \
+ CXX CXXFLAGS_CONFIGURE CXXFLAGS_CONFIGURE_EXTRA DEPENDS DESTDIR DESTDIR_HOST \
+ DISABLED ENV_VARS_EXTRA FNAME FORCE_AUTORECONF GITROOT INHERIT_FROM INSTALL_FILES \
+ INSTALL_FILES_DESTDIR INSTALL_FILES_DESTDIR_EXTRA INSTALL_FILES_V2 INSTALL_TARGET \
+ INSTALL_TARGET_EXTRA IN_TREE LD LDFLAGS_BUILD LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE \
+ LDFLAGS_CONFIGURE_EXTRA LIBTOOL MAKE MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA \
+ MAKEFLAGS_BUILD_EXTRA_LIST MAKEFLAGS_BUILD_LIST MAKEFLAGS_INSTALL \
+ MAKEFLAGS_INSTALL_EXTRA MAKEFLAGS_INSTALL_EXTRA_LIST MAKEFLAGS_INSTALL_LIST \
+ MAKEFLAGS_LOADAVG MAKEFLAGS_PARALLELISE MAKEFLAGS_VERBOSITY MAKE_INSTALL_VNAME \
+ MAKE_SUBDIRS MIRRORS MIRRORS_GIT NO_CLEAN NO_CLEAN_BASE_DIR NO_CLEAN_BUILD_DIR \
+ NO_LOG_VARS NO_PURGE_LA_FILES PATCHES_EXTRA PKG_CONFIG PKG_CONFIG_LIBDIR PKGLIST_DISABLE PREFIX \
+ PYTHON RANLIB RPM_DISABLE SHA256SUM SOFORT_NATIVE_CC SOFORT_NATIVE_CFLAGS \
+ SOFORT_NATIVE_CFLAGS_EXTRA SOFORT_NATIVE_CXX SOFORT_NATIVE_CXXFLAGS \
+ SOFORT_NATIVE_CXXFLAGS_EXTRA SOFORT_NATIVE_LD SOFORT_NATIVE_LDFLAGS \
+ SOFORT_NATIVE_LDFLAGS_EXTRA SUBDIR TARGET URL URLS_GIT VARS_FILE VERSION";
+
+#
+# Prerequisite commands
+DEFAULT_PREREQS=" \
+ awk bunzip2 bzip2 cat chmod cmake cp date find flock \
+ g++ gcc git grep gunzip gzip hostname id install kill \
+ ln lzip make mkdir mkfifo mktemp mv paste patch perl \
+ pgrep pkill printf readlink rm sed sha256sum sort \
+ stat tail tar test touch tr uniq wget xz zip";
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/050.pathsvars.env b/vars.env.d/050.pathsvars.env
new file mode 100644
index 00000000..8f1bf2bb
--- /dev/null
+++ b/vars.env.d/050.pathsvars.env
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# Path names
+: ${PREFIX_ROOT:="${HOME}/midipix"};
+: ${PREFIX:="${PREFIX_ROOT}/${ARCH}/${BUILD_KIND}"};
+: ${PREFIX_LOCAL:="${PREFIX}/localcross"};
+: ${PREFIX_LOCAL_CROSS:="${PREFIX}/localcross/${DEFAULT_TARGET}"};
+: ${PREFIX_CROSS:="${PREFIX}/${DEFAULT_TARGET}"};
+: ${PREFIX_LOCAL_CROSS_MINGW32:="${PREFIX}/localcross/x86_64-w64-mingw32"};
+: ${PREFIX_MINGW32:="${PREFIX}/x86_64-w64-mingw32"};
+: ${PREFIX_MINIPIX:="${PREFIX}/minipix"};
+: ${PREFIX_NATIVE:="${PREFIX}/native"};
+: ${PREFIX_RPM:="${PREFIX}/rpm"};
+: ${BUILD_DLCACHEDIR:="${PREFIX_ROOT}/dlcache"};
+: ${BUILD_WORKDIR:="${PREFIX}/tmp"};
+: ${DEFAULT_INSTALL_FILES_DESTDIR:=" \
+ /=bin /=include /=lib /=lib/pkgconfig /=sbin \
+ /=share /=share/doc /=share/info /=share/man \
+ /=share/man/man1 /=share/man/man2 /=share/man/man3 /=share/man/man4 /=share/man/man5 \
+ /=share/man/man6 /=share/man/man7 /=share/man/man8 /=share/man/man9 \
+ @share/doc=doc \
+ @share/info=info \
+ @lib=lib64 \
+ @share/man=man \
+ @../lib/pkgconfig=share/pkgconfig \
+ @.=usr"};
+
+#
+# Build {log,status} & tarball names
+: ${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME:=${BUILD_WORKDIR}/last_failed_pkg};
+: ${DEFAULT_BUILD_LOG_FNAME:=${PREFIX}/build.log};
+: ${DEFAULT_BUILD_LOG_LAST_FNAME:=${PREFIX}/build.log.last};
+: ${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME:=${PREFIX}/BUILD_IN_PROGRESS};
+: ${DEFAULT_ZIPDIST_FNAME_PREFIX:=midipix-${ARCH}-${BUILD_KIND}.};
+
+#
+# Variable names
+: ${DEFAULT_CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_LOCAL PREFIX_LOCAL_CROSS PREFIX_CROSS \
+ BUILD_DLCACHEDIR BUILD_WORKDIR"};
+: ${DEFAULT_CLEAR_ENV_VARS_EXCEPT:=" \
+ HOME LC_ALL PATH TERM USER \
+ ARCH BUILD_KIND \
+ BUILD_DLCACHEDIR BUILD_HNAME BUILD_WORKDIR \
+ PREFIX PREFIX_LOCAL PREFIX_LOCAL_CROSS PREFIX_CROSS \
+ PREFIX_LOCAL PREFIX_LOCAL_CROSS_MINGW32 PREFIX_MINGW32 \
+ PREFIX_MINIPIX PREFIX_NATIVE PREFIX_ROOT PREFIX_RPM"};
+: ${DEFAULT_CLEAR_PREFIX_PATHS:="
+ bin i686-nt32-midipix doc include info lib lib64 libexec man minipix minipix_dist native
+ rpm sbin share tmp usr x86_64-nt64-midipix x86_64-w64-mingw32 pkglist.cross pkglist.host
+ pkglist.native SHA256SUMS SHA256SUMS.last"};
+: ${DEFAULT_LOG_ENV_VARS:=" \
+ ARCH BUILD_KIND BUILD_DLCACHEDIR BUILD_WORKDIR DEFAULT_GITROOT \
+ HOME PATH PREFIX PREFIX_LOCAL PREFIX_LOCAL_CROSS PREFIX_CROSS \
+ PREFIX_LOCAL PREFIX_LOCAL_CROSS_MINGW32 PREFIX_MINGW32 \
+ PREFIX_MINIPIX PREFIX_NATIVE PREFIX_RPM USER"};
+
+#
+# URLs
+: ${DEFAULT_MIRRORS:=" \
+https://midipix.org/mirror/ \
+https://midipix.luciaillanes.de/archives/ \
+"};
+: ${DEFAULT_MIRRORS_GIT:=" \
+https://midipix.luciaillanes.de/repos_git/ \
+"};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/100.toolchain.env b/vars.env.d/100.toolchain.env
new file mode 100644
index 00000000..36509404
--- /dev/null
+++ b/vars.env.d/100.toolchain.env
@@ -0,0 +1,70 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# Default toolchain flags & variables
+: ${DEFAULT_BUILD_CPUS:=};
+: ${DEFAULT_BUILD_TYPE:=native};
+
+#
+# Default C compiler flags & variables
+: ${DEFAULT_CFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
+: ${DEFAULT_CFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
+: ${DEFAULT_CFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
+: ${DEFAULT_CFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
+rtl_get_var_unsafe \$DEFAULT_CFLAGS -u "DEFAULT_CFLAGS_${BUILD_KIND}";
+: ${DEFAULT_CFLAGS_CONFIGURE:=${DEFAULT_CFLAGS}};
+rtl_get_var_unsafe \$DEFAULT_CFLAGS_HOST -u "DEFAULT_CFLAGS_${BUILD_KIND}_HOST";
+rtl_get_var_unsafe \$DEFAULT_CFLAGS_RUNTIME -u "DEFAULT_CFLAGS_${BUILD_KIND}_RUNTIME";
+
+#
+# Default C preprocessor flags & variables
+: ${DEFAULT_CPPFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
+: ${DEFAULT_CPPFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
+: ${DEFAULT_CPPFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
+: ${DEFAULT_CPPFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CPPFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CPPFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
+rtl_get_var_unsafe \$DEFAULT_CPPFLAGS -u "DEFAULT_CPPFLAGS_${BUILD_KIND}";
+: ${DEFAULT_CPPFLAGS_CONFIGURE:=${DEFAULT_CPPFLAGS}};
+rtl_get_var_unsafe \$DEFAULT_CPPFLAGS_HOST -u "DEFAULT_CPPFLAGS_${BUILD_KIND}_HOST";
+rtl_get_var_unsafe \$DEFAULT_CPPFLAGS_RUNTIME -u "DEFAULT_CPPFLAGS_${BUILD_KIND}_RUNTIME";
+
+#
+# Default C++ compiler flags & variables
+: ${DEFAULT_CXXFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"};
+: ${DEFAULT_CXXFLAGS_DEBUG_HOST:="-D_REDIR_TIME64=0 -g0 -O2"};
+: ${DEFAULT_CXXFLAGS_DEBUG_RUNTIME:="-D_REDIR_TIME64=0 -g3 -O0"};
+: ${DEFAULT_CXXFLAGS_RELEASE:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CXXFLAGS_RELEASE_HOST:="-D_REDIR_TIME64=0 -g0 -O0"};
+: ${DEFAULT_CXXFLAGS_RELEASE_RUNTIME:="-D_REDIR_TIME64=0 -g0 -O0"};
+rtl_get_var_unsafe \$DEFAULT_CXXFLAGS -u "DEFAULT_CXXFLAGS_${BUILD_KIND}";
+: ${DEFAULT_CXXFLAGS_CONFIGURE:=${DEFAULT_CXXFLAGS}};
+rtl_get_var_unsafe \$DEFAULT_CXXFLAGS_HOST -u "DEFAULT_CXXFLAGS_${BUILD_KIND}_HOST";
+rtl_get_var_unsafe \$DEFAULT_CXXFLAGS_RUNTIME -u "DEFAULT_CXXFLAGS_${BUILD_KIND}_RUNTIME";
+
+#
+# Default linker flags & variables
+: ${DEFAULT_LDFLAGS_DEBUG:=""};
+: ${DEFAULT_LDFLAGS_DEBUG_HOST:=""};
+: ${DEFAULT_LDFLAGS_DEBUG_RUNTIME:=""};
+: ${DEFAULT_LDFLAGS_RELEASE:=""};
+: ${DEFAULT_LDFLAGS_RELEASE_HOST:=""};
+: ${DEFAULT_LDFLAGS_RELEASE_RUNTIME:=""};
+rtl_get_var_unsafe \$DEFAULT_LDFLAGS -u "DEFAULT_LDFLAGS_${BUILD_KIND}";
+: ${DEFAULT_LDFLAGS_CONFIGURE:=${DEFAULT_LDFLAGS}};
+rtl_get_var_unsafe \$DEFAULT_LDFLAGS_HOST -u "DEFAULT_LDFLAGS_${BUILD_KIND}_HOST";
+rtl_get_var_unsafe \$DEFAULT_LDFLAGS_RUNTIME -u "DEFAULT_LDFLAGS_${BUILD_KIND}_RUNTIME";
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/100.tools.env b/vars.env.d/100.tools.env
new file mode 100644
index 00000000..e3e249c8
--- /dev/null
+++ b/vars.env.d/100.tools.env
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# Default command & tool flags & variables
+: ${DEFAULT_AUTOCONF_CONFIG_GUESS:="copy"};
+: ${DEFAULT_CMAKE_LISTFILE:="CMakeLists.txt"};
+: ${DEFAULT_GIT_ARGS:=""};
+: ${DEFAULT_GITROOT:=git://midipix.org};
+: ${DEFAULT_GITROOT_HEAD:=git://midipix.org};
+: ${DEFAULT_MAKE_INSTALL_VNAME:=DESTDIR};
+: ${DEFAULT_MAKEFLAGS_LOADAVG:="-l${DEFAULT_BUILD_CPUS}"};
+: ${DEFAULT_MAKEFLAGS_PARALLELISE:="-j${DEFAULT_BUILD_CPUS}"};
+: ${DEFAULT_MAKEFLAGS_VERBOSITY:="V=99 VERBOSE=1"};
+: ${DEFAULT_RPM_JOBS_MAX:=1};
+: ${DEFAULT_RPM_JOBS_SEMAPHORE:="${BUILD_WORKDIR}/rpm.jobs"};
+: ${DEFAULT_RPM_JOBS_WAIT:=8};
+: ${DEFAULT_TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"};
+: ${DEFAULT_WGET_ARGS:="--no-check-certificate --timeout=25 --waitretry=16"};
+: ${DEFAULT_ZIPDIST_DEFROOT:="/dev/fs/c/midipix"};
+
+#
+# Default CMake flags & variables
+: ${DEFAULT_CMAKE_ARGS:="
+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
+ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
+ -DCMAKE_INSTALL_PREFIX=
+ -DCMAKE_VERBOSE_MAKEFILE=YES"};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/200.targets.env b/vars.env.d/200.targets.env
new file mode 100644
index 00000000..48a70f3c
--- /dev/null
+++ b/vars.env.d/200.targets.env
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# cross target toolchain defaults
+: ${DEFAULT_CROSS_AR:=${DEFAULT_TARGET}-ar};
+: ${DEFAULT_CROSS_CC:=${DEFAULT_TARGET}-gcc};
+: ${DEFAULT_CROSS_CCLD:=${DEFAULT_TARGET}-gcc};
+: ${DEFAULT_CROSS_CMAKE:=cmake};
+: ${DEFAULT_CROSS_CXX:=${DEFAULT_TARGET}-g++};
+: ${DEFAULT_CROSS_LD:=${DEFAULT_TARGET}-ld};
+: ${DEFAULT_CROSS_LIBTOOL:=slibtool};
+: ${DEFAULT_CROSS_MAKE:=make};
+: ${DEFAULT_CROSS_RANLIB:=${DEFAULT_TARGET}-ranlib};
+
+#
+# host target toolchain defaults
+: ${DEFAULT_HOST_AR:=ar};
+: ${DEFAULT_HOST_CC:=gcc};
+: ${DEFAULT_HOST_CCLD:=gcc};
+: ${DEFAULT_HOST_CMAKE:=cmake};
+: ${DEFAULT_HOST_CXX:=g++};
+: ${DEFAULT_HOST_LD:=ld};
+: ${DEFAULT_HOST_LIBTOOL:=slibtool};
+: ${DEFAULT_HOST_MAKE:=make};
+: ${DEFAULT_HOST_PKG_CONFIG:=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config};
+: ${DEFAULT_HOST_PKG_CONFIG_LIBDIR:=${PREFIX}/lib/pkgconfig};
+: ${DEFAULT_HOST_RANLIB:=ranlib};
+
+#
+# native target toolchain defaults
+: ${DEFAULT_NATIVE_AR:=${DEFAULT_TARGET}-ar};
+: ${DEFAULT_NATIVE_CC:=${DEFAULT_TARGET}-gcc};
+: ${DEFAULT_NATIVE_CCLD:=${DEFAULT_TARGET}-gcc};
+: ${DEFAULT_NATIVE_CMAKE:=cmake};
+: ${DEFAULT_NATIVE_CXX:=${DEFAULT_TARGET}-g++};
+: ${DEFAULT_NATIVE_LD:=${DEFAULT_TARGET}-ld};
+: ${DEFAULT_NATIVE_LIBTOOL:=slibtool};
+: ${DEFAULT_NATIVE_MAKE:=make};
+: ${DEFAULT_NATIVE_PKG_CONFIG:=${PREFIX}/bin/${DEFAULT_TARGET}-pkg-config};
+: ${DEFAULT_NATIVE_PKG_CONFIG_LIBDIR:=${PREFIX}/lib/pkgconfig};
+: ${DEFAULT_NATIVE_RANLIB:=${DEFAULT_TARGET}-ranlib};
+
+#
+# native target sofort defaults
+: ${DEFAULT_SOFORT_NATIVE_CC:="${DEFAULT_HOST_CC}"};
+: ${DEFAULT_SOFORT_NATIVE_CFLAGS:="-I${PREFIX}/include"};
+: ${DEFAULT_SOFORT_NATIVE_CXX:="${DEFAULT_HOST_CXX}"};
+: ${DEFAULT_SOFORT_NATIVE_CXXFLAGS:="-I${PREFIX}/include"};
+: ${DEFAULT_SOFORT_NATIVE_LD:="${DEFAULT_HOST_CCLD}"};
+: ${DEFAULT_SOFORT_NATIVE_LDFLAGS:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/300.config.cache.env b/vars.env.d/300.config.cache.env
new file mode 100644
index 00000000..429e7b50
--- /dev/null
+++ b/vars.env.d/300.config.cache.env
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# GNU autotools cache
+: ${DEFAULT_CONFIG_CACHE:="
+ac_cv_buggy_getaddrinfo=no
+ac_cv_file__dev_ptc=no
+ac_cv_file__dev_ptmx=yes
+ac_cv_func_calloc_0_nonnull=yes
+ac_cv_func_chown_works=yes
+ac_cv_func_fork_works=yes
+ac_cv_func_getgroups_works=yes
+ac_cv_func_malloc_0_nonnull=yes
+ac_cv_func_memcmp_working=yes
+ac_cv_func_mmap_fixed_mapped=yes
+ac_cv_func_realloc_0_nonnull=yes
+ac_cv_func_strcoll_works=yes
+ac_cv_func_strnlen_working=yes
+ac_cv_func_working_mktime=yes
+gl_cv_func_gettimeofday_clobber=no
+gl_cv_func_tzset_clobber=no
+ac_cv_func_lstat_dereferences_slashed_symlink=yes
+gt_cv_int_divbyzero_sigfpe=yes
+libffi_cv_hidden_visibility_attribute=yes
+xorg_cv_malloc0_returns_null=yes"};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars.env.d/300.config.cache.gnulib.env b/vars.env.d/300.config.cache.gnulib.env
new file mode 100644
index 00000000..7ebd89e1
--- /dev/null
+++ b/vars.env.d/300.config.cache.gnulib.env
@@ -0,0 +1,161 @@
+#
+# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de>
+#
+# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ')
+# characters in any of the variables below save for MAKEFLAGS,
+# PATH, and TIMESTAMP_FMT.
+#
+# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR}
+# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx.
+# The variables mentioned should not be forward slash-terminated.
+#
+
+#
+# Gnulib GNU autotools cache
+: ${CONFIG_CACHE_GNULIB:="
+gl_cv_double_slash_root=no
+ac_cv_func___fseterr=yes
+am_cv_func_working_getline=yes
+gl_cv_C_locale_sans_EILSEQ=yes
+gl_cv_func_cbrtl_ieee=yes
+gl_cv_func_ceilf_ieee=yes
+gl_cv_func_ceil_ieee=yes
+gl_cv_func_ceill_ieee=yes
+gl_cv_func_chown_ctime_works=yes
+gl_cv_func_chown_follows_symlink=yes
+gl_cv_func_chown_slash_works=yes
+gl_cv_func_exp2l_ieee=yes
+gl_cv_func_expm1_ieee=yes
+gl_cv_func_fclose_stdin=yes
+gl_cv_func_fchmodat_works=yes
+gl_cv_func_fchownat_empty_filename_works=yes
+gl_cv_func_fchownat_nofollow_works=yes
+gl_cv_func_fcntl_f_dupfd_cloexec=yes
+gl_cv_func_fcntl_f_dupfd_works=yes
+gl_cv_func_fdopendir_works=yes
+gl_cv_func_fflush_stdin=yes
+gl_cv_func_floorf_ieee=yes
+gl_cv_func_fmaf_works=yes
+gl_cv_func_fmal_works=yes
+gl_cv_func_fma_works=yes
+gl_cv_func_fmodf_ieee=yes
+gl_cv_func_fmod_ieee=yes
+gl_cv_func_fmodl_ieee=yes
+gl_cv_func_fopen_mode_e=yes
+gl_cv_func_fopen_mode_x=yes
+gl_cv_func_fpurge_works=yes
+gl_cv_func_fseeko=yes
+gl_cv_func_futimens_works=yes
+gl_cv_func_futimesat_works=yes
+gl_cv_func_getcwd_null=yes
+gl_cv_func_getgroups_works=yes
+gl_cv_func_gettimeofday_clobber=no
+gl_cv_func_hypotf_ieee=yes
+gl_cv_func_hypot_ieee=yes
+gl_cv_func_hypotl_ieee=yes
+gl_cv_func_isfinitel_works=yes
+gl_cv_func_isnanl_works=yes
+gl_cv_func_iswcntrl_works=yes
+gl_cv_func_linkat_nofollow=yes
+gl_cv_func_linkat_slash=yes
+gl_cv_func_link_follows_symlink=no
+gl_cv_func_link_works=yes
+gl_cv_func_log10f_ieee=yes
+gl_cv_func_log10_ieee=yes
+gl_cv_func_log1pf_ieee=yes
+gl_cv_func_log1p_ieee=yes
+gl_cv_func_log1pl_ieee=yes
+gl_cv_func_log2f_ieee=yes
+gl_cv_func_log2_ieee=yes
+gl_cv_func_logf_ieee=yes
+gl_cv_func_log_ieee=yes
+gl_cv_func_lstat_dereferences_slashed_symlink=yes
+gl_cv_func_mbrlen_empty_input=yes
+gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes
+gl_cv_func_mbrtowc_empty_input=yes
+gl_cv_func_memchr_works=yes
+gl_cv_func_memmem_works_fast=yes
+gl_cv_func_mkdir_trailing_dot_works=yes
+gl_cv_func_mkdir_trailing_slash_works=yes
+gl_cv_func_mkfifo_works=yes
+gl_cv_func_mknod_works=yes
+gl_cv_func_modff_ieee=yes
+gl_cv_func_modf_ieee=yes
+gl_cv_func_modfl_ieee=yes
+gl_cv_func_nanosleep=yes
+gl_cv_func_open_directory_works=yes
+gl_cv_func_perror_works=yes
+gl_cv_func_posix_memalign_works=yes
+gl_cv_func_printf_directive_a=yes
+gl_cv_func_printf_directive_f=yes
+gl_cv_func_printf_directive_n=yes
+gl_cv_func_printf_enomem=yes
+gl_cv_func_printf_flag_zero=yes
+gl_cv_func_printf_infinite_long_double=yes
+gl_cv_func_printf_infinite=yes
+gl_cv_func_printf_sizes_c99=yes
+gl_cv_func_pselect_detects_ebadf=yes
+gl_cv_func_ptsname_sets_errno=yes
+gl_cv_func_readlink_works=yes
+gl_cv_func_readlink_trailing_slash=yes
+gl_cv_func_readlink_truncate=yes
+gl_cv_func_realpath_works=yes
+gl_cv_func_remainderf_ieee=yes
+gl_cv_func_remainder_ieee=yes
+gl_cv_func_remainderl_ieee=yes
+gl_cv_func_rename_dest_works=yes
+gl_cv_func_rename_link_works=yes
+gl_cv_func_rename_slash_dst_works=yes
+gl_cv_func_rename_slash_src_works=yes
+gl_cv_func_rmdir_works=yes
+gl_cv_func_roundf_ieee=yes
+gl_cv_func_round_ieee=yes
+gl_cv_func_select_detects_ebadf=yes
+gl_cv_func_setenv_works=yes
+gl_cv_func_signbit_gcc=yes
+gl_cv_func_signbit=yes
+gl_cv_func_signbit_builtins=yes
+gl_cv_func_sleep_works=yes
+gl_cv_func_snprintf_directive_n=yes
+gl_cv_func_snprintf_retval_c99=yes
+gl_cv_func_snprintf_truncation_c99=yes
+gl_cv_func_stat_dir_slash=yes
+gl_cv_func_stat_file_slash=yes
+gl_cv_func_stpncpy=yes
+gl_cv_func_strcasestr_linear=yes
+gl_cv_func_strchrnul_works=yes
+gl_cv_func_strerror_0_works=yes
+gl_cv_func_strstr_linear=yes
+gl_cv_func_strtod_works=yes
+gl_cv_func_strtold_works=yes
+gl_cv_func_strtoll_works=yes
+gl_cv_func_strtoull_works=yes
+gl_cv_func_svid_putenv=yes
+gl_cv_func_symlink_works=yes
+gl_cv_func_symlinkat_works=yes
+gl_cv_func_tdelete_works=yes
+gl_cv_func_truncf_ieee=yes
+gl_cv_func_trunc_ieee=yes
+gl_cv_func_truncl_ieee=yes
+gl_cv_func_tzset_clobber=no
+gl_cv_func_ungetc_works=yes
+gl_cv_func_unlink_busy_text=yes
+gl_cv_func_unlink_honors_slashes=yes
+gl_cv_func_unsetenv_works=yes
+gl_cv_func_usleep_works=yes
+gl_cv_func_utime_file_slash=yes
+gl_cv_func_utimensat_works=yes
+gl_cv_func_vsnprintf_posix=yes
+gl_cv_func_vsnprintf_zerosize_c99=yes
+gl_cv_func_vsprintf_posix=yes
+gl_cv_func_wcwidth_works=yes
+gl_cv_func_working_getdelim=yes
+gl_cv_func_working_mkstemp=yes
+gl_cv_func_working_mktime=yes
+gl_cv_func_working_strerror=yes
+gl_cv_func_working_utimes=yes
+gl_cv_struct_dirent_d_ino=yes
+gl_cv_func_getopt_gnu=yes
+gl_cv_pthread_rwlock_rdlock_prefer_writer=no"};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars/bash_minipix.vars b/vars/bash_minipix.vars
deleted file mode 120000
index f4e9402f..00000000
--- a/vars/bash_minipix.vars
+++ /dev/null
@@ -1 +0,0 @@
-bash.vars \ No newline at end of file
diff --git a/vars/binutils.vars b/vars/binutils.vars
index a6907df4..0f99bb23 100644
--- a/vars/binutils.vars
+++ b/vars/binutils.vars
@@ -14,7 +14,7 @@ pkg_binutils_host_configure_patch_post() {
pkg_binutils_configure_patch_post "${@}";
};
-pkg_binutils_host_mingw32_configure_patch_post() {
+pkg_binutils_cross_configure_patch_post() {
pkg_binutils_configure_patch_post "${@}";
};
@@ -22,4 +22,12 @@ pkg_binutils_mingw32_configure_patch_post() {
pkg_binutils_configure_patch_post "${@}";
};
+pkg_binutils_host_mingw32_configure_patch_post() {
+ pkg_binutils_configure_patch_post "${@}";
+};
+
+pkg_binutils_cross_mingw32_configure_patch_post() {
+ pkg_binutils_configure_patch_post "${@}";
+};
+
# vim:filetype=sh textwidth=0
diff --git a/vars/ca_certificates.vars b/vars/ca_certificates.vars
index dfe0c9bd..32603348 100644
--- a/vars/ca_certificates.vars
+++ b/vars/ca_certificates.vars
@@ -17,11 +17,12 @@ pkg_ca_certificates_install_make_post() {
};
pkg_ca_certificates_host_configure_patch_post() {
- local _vname="" _vspec="" _vval="";
+ local _vname="" _vspec="" _vpsec_="" _vval="";
for _vspec in \
CERTSCONF:/etc/ca-certificates.conf \
ETCCERTSDIR:/etc/ssl/certs/; do
- set -- $(rtl_llift "${_vspec}" : " "); _vname="${1}"; _vval="${2}";
+ rtl_llift2 \$_vspec \$_vspec_ : " ";
+ set -- ${_vspec_}; _vname="${1}"; _vval="${2}";
sed -i"" -e's,^#define '"${_vname}"' ".\+"$,#define '"${_vname}"' "'"${PKG_DESTDIR%/}${_vval}"'",' update-ca.c;
done;
sed -i"" -e's,^#define CERTSDIR ".\+"$,#define CERTSDIR "../../../usr/share/ca-certificates/",' update-ca.c;
diff --git a/vars/cparser.vars b/vars/cparser.vars
deleted file mode 120000
index ee930081..00000000
--- a/vars/cparser.vars
+++ /dev/null
@@ -1 +0,0 @@
-libfirm.vars \ No newline at end of file
diff --git a/vars/gcc.vars b/vars/gcc.vars
index 388b7adc..96070e6e 100644
--- a/vars/gcc.vars
+++ b/vars/gcc.vars
@@ -1,23 +1,28 @@
#
# set +o errexit -o noglob -o nounset is assumed.
-# Order: stage1_host, runtime_host, libstdcpp_v3_host, full_host, full
+# Order: stage1_cross, runtime_cross, libstdcpp_v3_cross, full_cross
+# Order: stage1_host, runtime_host, libstdcpp_v3_host, full_host
+# Order: stage1, runtime, libstdcpp_v3, full
# Order: stage1_mingw32, native_mingw32
#
#
# Private subroutines
#
-pkgp_gcc_build_dir() { PKG_BUILD_DIR="${1}-${2}-${PKG_TARGET}"; };
+
+pkgp_gcc_build_dir() { PKG_BUILD_DIR="${1}-${2}-${PKG_TARGET}"; return 0; };
pkgp_gcc_state_set() {
- printf "step unknown %s %s\n" "${PKG_NAME}" "${1}" >&3;
+ ex_pkg_dispatch_send "step" "unknown" "${PKG_NAME}" "${1}";
ex_pkg_state_set "${PKG_NAME}" "${1}" ${2:+"${2}"};
+ return 0;
};
pkgp_gcc_configure() {
if ! rtl_fileop rm "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" \
|| ! rtl_fileop mkdir "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" \
|| ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" \
- || ! "../cbb-gcc-${PKG_VERSION}/configure" "${@}" \
+ || ! CC="${PKG_CC}" CXX="${PKG_CXX}" \
+ "../cbb-gcc-${PKG_VERSION}/configure" "${@}" \
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
@@ -43,10 +48,12 @@ pkgp_gcc_configure() {
else
pkgp_gcc_state_set "configure" "build";
fi;
+ return 0;
};
pkgp_gcc_setup_env() {
local _vname="";
+
for _vname in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD \
CXXFLAGS CXXFLAGS_FOR_BUILD; do
export "${_vname}=${GCCFLAGS}";
@@ -59,70 +66,169 @@ pkgp_gcc_setup_env() {
cbb_cflags_for_stage3 cbb_cflags_for_stage4; do
export "${_vname}=${CFLAGS_FOR_BUILD}" ;
done;
+ return 0;
};
pkgp_gcc_setup_vars() {
local _unwind_midipix_h="";
export cbb_target="${PKG_TARGET}" MAKE="make LIBTOOL=slibtool";
_unwind_midipix_h="$(readlink -f "${PKG_BASE_DIR}/cbb-gcc-${PKG_VERSION}/gcc/unwind-midipix.h")";
+
case "${PKG_NAME}" in
+
gcc_full)
- GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "--include=${_unwind_midipix_h}")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "-DTARGET_PERSONALITY_FUNCTION")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "${DEFAULT_CFLAGS_DEBUG_RUNTIME}")";
- export cbb_ldflags_for_target=--sysroot="${PKG_PREFIX}" \
- cbb_sysroot_for_libgcc="${PKG_PREFIX}" \
- cbb_xgcc_for_specs="${PKG_TARGET}-gcc" \
- sysroot_headers_suffix="${PKG_PREFIX}"; ;;
- gcc_stage1_cross_mingw32)
- GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_MINGW32} -midata";
- export cbb_ldflags_for_target=--sysroot="${PREFIX_MINGW32}" \
- cbb_neutral_libiberty=no \
- cbb_sysroot_for_libgcc="${PREFIX_MINGW32}" \
- cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc"; ;;
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD";
+ rtl_lconcat \$GCCTARGET_FLAGS "--include=${_unwind_midipix_h}";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX";
+ rtl_lconcat \$GCCTARGET_FLAGS "${DEFAULT_CFLAGS_DEBUG_RUNTIME}";
+ export cbb_ldflags_for_target="--sysroot=${PREFIX_NATIVE}" \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_NATIVE}" \
+ cbb_xgcc_for_specs=${PREFIX}/bin/${PKG_TARGET}-gcc;
+ ;;
+
+ gcc_full_host)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD";
+ rtl_lconcat \$GCCTARGET_FLAGS "--include=${_unwind_midipix_h}";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX";
+ rtl_lconcat \$GCCTARGET_FLAGS "${DEFAULT_CFLAGS_DEBUG_RUNTIME}";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_NATIVE}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc";
+ ;;
+
gcc_stage1_host)
- GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_CROSS}";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "--include=${_unwind_midipix_h}")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "-DTARGET_PERSONALITY_FUNCTION")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX")";
- GCCTARGET_FLAGS="$(rtl_lconcat "${GCCTARGET_FLAGS}" "${DEFAULT_CFLAGS_DEBUG_RUNTIME}")";
- export cbb_ldflags_for_target="--sysroot=${PREFIX_CROSS}" \
- cbb_neutral_libiberty="no" \
- cbb_sysroot_for_libgcc="${PREFIX_CROSS}" \
- cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc" \
- LDFLAGS="${PKG_LDFLAGS_CONFIGURE}"; ;;
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD";
+ rtl_lconcat \$GCCTARGET_FLAGS "--include=${_unwind_midipix_h}";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX";
+ rtl_lconcat \$GCCTARGET_FLAGS "${DEFAULT_CFLAGS_DEBUG_RUNTIME}";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_NATIVE}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc" \
+ LDFLAGS="${PKG_LDFLAGS_CONFIGURE}";
+ ;;
+
+ gcc_full_cross)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD";
+ rtl_lconcat \$GCCTARGET_FLAGS "--include=${_unwind_midipix_h}";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX";
+ rtl_lconcat \$GCCTARGET_FLAGS "${DEFAULT_CFLAGS_DEBUG_RUNTIME}";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_CROSS}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc";
+ ;;
+
+ gcc_stage1_cross)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD";
+ rtl_lconcat \$GCCTARGET_FLAGS "--include=${_unwind_midipix_h}";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION";
+ rtl_lconcat \$GCCTARGET_FLAGS "-DTARGET_PERSONALITY_FUNCTION_MIDIPIX";
+ rtl_lconcat \$GCCTARGET_FLAGS "${DEFAULT_CFLAGS_DEBUG_RUNTIME}";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_CROSS}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc" \
+ LDFLAGS="${PKG_LDFLAGS_CONFIGURE}";
+ ;;
+
+ # FIXME: shouldn't we have PREFIX_NATIVE_MINGW32
gcc_stage1_native_mingw32)
- GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX} -midata";
- export cbb_ldflags_for_target=--sysroot="${PKG_PREFIX}" \
- cbb_neutral_libiberty=no \
- cbb_sysroot_for_libgcc="${PKG_PREFIX}" \
- cbb_xgcc_for_specs="${PKG_TARGET}-gcc"; ;;
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD -midata";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty=no \
+ cbb_sysroot_for_libgcc="${PREFIX_MINGW32}" \
+ cbb_xgcc_for_specs="${PKG_TARGET}-gcc";
+ ;;
+
+ gcc_stage1_host_mingw32)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD -midata";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_MINGW32}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc" \
+ LDFLAGS="${PKG_LDFLAGS_CONFIGURE}";
+ ;;
+
+ gcc_stage1_cross_mingw32)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD -midata";
+ export cbb_ldflags_for_target= \
+ cbb_neutral_libiberty="no" \
+ cbb_sysroot_for_libgcc="${PREFIX_LOCAL_CROSS_MINGW32}" \
+ cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc" \
+ LDFLAGS="${PKG_LDFLAGS_CONFIGURE}";
+ ;;
+
esac;
- GCCFLAGS="$(rtl_lconcat "${PKG_CFLAGS_CONFIGURE}" \
- "--include $(readlink -f "${PKG_BASE_DIR}/cbb-gcc-${PKG_VERSION}/libc/cbb-musl-pe.h")")";
+
+ rtl_lconcat2 \
+ \$GCCFLAGS \
+ \$PKG_CFLAGS_CONFIGURE \
+ "--include $(readlink -f "${PKG_BASE_DIR}/cbb-gcc-${PKG_VERSION}/libc/cbb-musl-pe.h")";
};
pkgp_gcc_stage1_all() {
- local _restart_at="${1}" _rc=0;
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _rc=0;
+
case "${PKG_NAME}" in
+
gcc_stage1_cross_mingw32)
- pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" mingw32; ;;
- gcc_stage1_host)
- if ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross;
+ ;;
+
+ gcc_stage1_host_mingw32)
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" host;
+ ;;
+
+ gcc_stage1_cross)
+ if ! rtl_fileop mkdir . "${PREFIX_LOCAL_CROSS}"\
+ || ! rtl_fileop ln_symbolic . "${PREFIX_LOCAL_CROSS}/usr"\
+ || ! rtl_fileop mkdir "${PREFIX_LOCAL_CROSS}/usr/include"\
+ || ! rtl_fileop mkdir "${PREFIX_CROSS}"\
+ || ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\
|| ! rtl_fileop mkdir "${PREFIX_CROSS}/usr/include"\
|| ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross; then
_rc=1;
- fi; ;;
+ fi;
+ ;;
+
+ gcc_stage1_host)
+ if ! rtl_fileop mkdir . "${PREFIX_CROSS}"\
+ || ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\
+ || ! rtl_fileop mkdir "${PREFIX_CROSS}/usr/include"\
+ || ! rtl_fileop mkdir . "${PREFIX_NATIVE}"\
+ || ! rtl_fileop ln_symbolic . "${PREFIX_NATIVE}/usr"\
+ || ! rtl_fileop mkdir "${PREFIX_NATIVE}/usr/include"\
+ || ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" host; then
+ _rc=1;
+ fi;
+ ;;
+
gcc_stage1_native_mingw32)
- pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native; ;;
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native;
+ ;;
+
esac;
+
if [ "${_rc}" -ne 0 ]; then
return 1;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}"; then
- if ! pkg_fetch_download_dlcache_subdir; then
+
+ if rtl_lmatch \$_restart_at "ALL,fetch_clean,fetch_download,fetch_extract" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}" );
+ then
+ if ! rtl_fetch_dlcache_subdir \
+ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \
+ "${PKG_INHERIT_FROM:-}";
+ then
return 1;
elif ! rtl_fetch_urls_git \
"${BUILD_DLCACHEDIR}/${PKG_NAME}" "${DEFAULT_GIT_ARGS}" "${PKG_BASE_DIR}" \
@@ -133,16 +239,27 @@ pkgp_gcc_stage1_all() {
pkgp_gcc_state_set "fetch" "patch";
fi;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}"; then
+
+ if rtl_lmatch \$_restart_at "ALL,configure_patch" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}" );
+ then
if [ -e "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" ]; then
patch -b -d "${PKG_BASE_DIR}" -p0 < "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" || return 1;
fi;
pkgp_gcc_state_set "patch" "configure";
fi;
- pkgp_gcc_setup_vars; pkgp_gcc_setup_env;
- if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then
+
+ pkgp_gcc_setup_vars;
+ pkgp_gcc_setup_env;
+
+ if rtl_lmatch \$_restart_at "ALL,configure" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}" );
+ then
case "${PKG_NAME}" in
- gcc_stage1_cross_mingw32)
+
+ gcc_stage1_host_mingw32)
pkgp_gcc_configure \
--enable-sjlj-exceptions \
--prefix="${PREFIX}" \
@@ -150,7 +267,20 @@ pkgp_gcc_stage1_all() {
--with-mpc="${PREFIX}" \
--with-mpfr="${PREFIX}" \
--with-sysroot="${PREFIX_MINGW32}" \
- --without-headers; ;;
+ --without-headers;
+ ;;
+
+ gcc_stage1_cross_mingw32)
+ pkgp_gcc_configure \
+ --enable-sjlj-exceptions \
+ --prefix="${PREFIX}" \
+ --with-gmp="${PREFIX}" \
+ --with-mpc="${PREFIX}" \
+ --with-mpfr="${PREFIX}" \
+ --with-sysroot="${PREFIX_LOCAL_CROSS_MINGW32}" \
+ --without-headers;
+ ;;
+
gcc_stage1_host)
pkgp_gcc_configure \
--disable-sjlj-exceptions \
@@ -158,7 +288,19 @@ pkgp_gcc_stage1_all() {
--with-gmp="${PREFIX}" \
--with-mpc="${PREFIX}" \
--with-mpfr="${PREFIX}" \
- --with-sysroot="${PREFIX_CROSS}"; ;;
+ --with-sysroot="${PREFIX_NATIVE}";
+ ;;
+
+ gcc_stage1_cross)
+ pkgp_gcc_configure \
+ --disable-sjlj-exceptions \
+ --prefix="${PREFIX}" \
+ --with-gmp="${PREFIX}" \
+ --with-mpc="${PREFIX}" \
+ --with-mpfr="${PREFIX}" \
+ --with-sysroot="${PREFIX_CROSS}";
+ ;;
+
gcc_stage1_native_mingw32)
pkgp_gcc_configure \
--build=x86_64-unknown-linux-gnu \
@@ -170,33 +312,59 @@ pkgp_gcc_stage1_all() {
--with-mpc="${PKG_PREFIX}" \
--with-mpfr="${PKG_PREFIX}" \
--with-sysroot= \
- --without-headers; ;;
+ --without-headers;
+ ;;
+
esac;
+
if [ "${?}" -ne 0 ]; then
return 1;
fi;
- else rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1;
+ elif [ "${_restart_at:+1}" != 1 ]\
+ || rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then
+ rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "all-gcc" || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,build" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "all-gcc" || return 1;
pkgp_gcc_state_set "build" "install_subdirs";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
- pkg_install_subdirs || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" );
+ then
+ pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install_subdirs" "install_make";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
+
+ if rtl_lmatch \$_restart_at "ALL,install_make" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" );
+ then
case "${PKG_NAME}" in
+
gcc_stage1_cross_mingw32)
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+
gcc_stage1_host)
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+
+ gcc_stage1_cross)
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+
gcc_stage1_native_mingw32)
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-gcc"; ;;
+
esac;
+
if [ "${?}" -ne 0 ]; then
return 1;
- else case "$(uname -s)" in
+ else
+ case "$(uname -s)" in
CYGWIN_*)
if ! rtl_fileop ln_symbolic "${PKG_DESTDIR}/libexec/gcc/${PKG_TARGET}/${PKG_VERSION}/liblto_plugin.dll.a"\
|| ! rtl_fileop ln_symbolic "${PKG_DESTDIR}/libexec/gcc/${PKG_TARGET}/${PKG_VERSION}/liblto_plugin.so"; then
@@ -206,20 +374,36 @@ pkgp_gcc_stage1_all() {
pkgp_gcc_state_set "install_make" "install";
fi;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- pkg_install || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" );
+ then
+ pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install";
fi;
+
pkgp_gcc_state_set "finish";
+
+ return 0;
};
pkg_gcc_full_all() {
- local _restart_at="${1}" _configure_host="" _vis_hide="vis_hide=-fvisibility=hidden";
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _configure_host="" _vis_hide="vis_hide=-fvisibility=hidden";
export MAKE="make LIBTOOL=slibtool ${_vis_hide}";
+
pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native;
- if ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}"; then
- if ! pkg_fetch_download_dlcache_subdir; then
+
+ if rtl_lmatch \$_restart_at "ALL,fetch_clean,fetch_download,fetch_extract" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}" );
+ then
+ if ! rtl_fetch_dlcache_subdir \
+ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \
+ "${PKG_INHERIT_FROM:-}";
+ then
return 1;
elif ! rtl_fetch_urls_git \
"${BUILD_DLCACHEDIR}/${PKG_NAME}" "${DEFAULT_GIT_ARGS}" \
@@ -231,22 +415,34 @@ pkg_gcc_full_all() {
pkgp_gcc_state_set "fetch" "patch";
fi;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}"; then
+
+ if rtl_lmatch \$_restart_at "ALL,configure_patch" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}" );
+ then
if [ -e "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" ]; then
patch -b -d "${PKG_BASE_DIR}" -p0 < "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" || return 1;
fi;
pkgp_gcc_state_set "patch" "configure";
fi;
- pkgp_gcc_setup_vars; pkgp_gcc_setup_env;
- if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then
+
+ pkgp_gcc_setup_vars;
+ pkgp_gcc_setup_env;
+
+ if rtl_lmatch \$_restart_at "ALL,configure" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}" );
+ then
rtl_fileop mkdir "${PKG_PREFIX}/${PKG_TARGET}" || return 1;
if [ \! -d "${PKG_PREFIX}/${PKG_TARGET}/usr" ]; then
rtl_fileop ln_symbolic . "${PKG_PREFIX}/${PKG_TARGET}/usr" || return 1;
fi;
+
case "${ARCH}" in
nt32) _configure_host="i686-nt32-midipix"; ;;
nt64) _configure_host="x86_64-nt64-midipix"; ;;
esac;
+
pkgp_gcc_configure \
--disable-sjlj-exceptions \
--host="${_configure_host}" \
@@ -256,137 +452,270 @@ pkg_gcc_full_all() {
--with-mpc="${PKG_PREFIX}" \
--with-mpfr="${PKG_PREFIX}" \
--with-sysroot="" || return 1;
- else rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1;
+ elif [ "${_restart_at:+1}" != 1 ]\
+ || rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then
+ rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
- if ! make ${PKG_MAKEFLAGS_BUILD} "all-gcc"\
- || ! make ${PKG_MAKEFLAGS_BUILD} "all-target-libgcc" ${_vis_hide}\
- || ! make ${PKG_MAKEFLAGS_BUILD} "all-target-libstdc++-v3"\
- || ! make ${PKG_MAKEFLAGS_BUILD} "all-target-libgfortran"\
- || ! make ${PKG_MAKEFLAGS_BUILD} "all"; then
+
+ if rtl_lmatch \$_restart_at "ALL,build" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" );
+ then
+ if ! make ${PKG_MAKEFLAGS_BUILD:-} "all-gcc"\
+ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libgcc" ${_vis_hide}\
+ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libstdc++-v3"\
+ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libgfortran"\
+ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all"; then
return 1;
else pkgp_gcc_state_set "build" "install_subdirs";
fi;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
- pkg_install_subdirs || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" );
+ then
+ pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install_subdirs" "install_make";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install" || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_make" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install" || return 1;
pkgp_gcc_state_set "install_make" "install";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- pkg_install || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" );
+ then
+ pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install";
fi;
+
pkgp_gcc_state_set "finish";
+
+ return 0;
};
pkg_gcc_full_host_all() {
- local _restart_at="${1}";
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _toolchain_type="${4:-host}"
export MAKE="make LIBTOOL=slibtool";
- if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross\
+
+ if [ "${_restart_at:+1}" = 1 ]\
+ && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then
+ if rtl_lmatch \$_restart_at "finish" ","; then
+ pkgp_gcc_state_set "finish";
+ fi;
+ return 0;
+ fi;
+
+ if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \
|| ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then
return 1;
- else if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} || return 1;
+ else
+ if rtl_lmatch \$_restart_at "ALL,build" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} || return 1;
pkgp_gcc_state_set "build" "install_subdirs";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
- pkg_install_subdirs || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" );
+ then
+ pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install_subdirs" "install_make";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install" || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_make" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install" || return 1;
pkgp_gcc_state_set "install_make" "install";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- pkg_install || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" );
+ then
+ pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install";
fi;
+
pkgp_gcc_state_set "finish";
fi;
+
+ return 0;
+};
+
+pkg_gcc_full_cross_all() {
+ pkg_gcc_full_host_all "${@}" cross
};
pkg_gcc_libstdcpp_v3_host_all() {
- local _restart_at="${1}";
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _toolchain_type="${4:-host}"
export MAKE="make LIBTOOL=slibtool";
- if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross\
+
+ if [ "${_restart_at:+1}" = 1 ]\
+ && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then
+ if rtl_lmatch \$_restart_at "finish" ","; then
+ pkgp_gcc_state_set "finish";
+ fi;
+ return 0;
+ fi;
+
+ if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \
|| ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then
return 1;
- else if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "all-target-libstdc++-v3" || return 1;
+ else
+ if rtl_lmatch \$_restart_at "ALL,build" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libstdc++-v3" || return 1;
pkgp_gcc_state_set "build" "install_subdirs";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
- pkg_install_subdirs || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" );
+ then
+ pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install_subdirs" "install_make";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install-target-libstdc++-v3" || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_make" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-target-libstdc++-v3" || return 1;
pkgp_gcc_state_set "install_make" "install";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- pkg_install || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" );
+ then
+ pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install";
fi;
+
pkgp_gcc_state_set "finish";
fi;
+
+ return 0;
+};
+
+pkg_gcc_libstdcpp_v3_cross_all() {
+ pkg_gcc_libstdcpp_v3_host_all "${@}" cross
};
pkg_gcc_runtime_host_all() {
- local _restart_at="${1}" _vis_hide="vis_hide=-fvisibility=hidden";
+ local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" \
+ _toolchain_type="${4:-host}" \
+ _vis_hide="vis_hide=-fvisibility=hidden";
export MAKE="make LIBTOOL=slibtool ${_vis_hide}";
- if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross\
+
+ if [ "${_restart_at:+1}" = 1 ]\
+ && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then
+ if rtl_lmatch \$_restart_at "finish" ","; then
+ pkgp_gcc_state_set "finish";
+ fi;
+ return 0;
+ fi;
+
+ if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \
|| ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then
return 1;
- else if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "all-target-libgcc" ${_vis_hide} || return 1;
+ else
+ if rtl_lmatch \$_restart_at "ALL,build" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libgcc" ${_vis_hide} || return 1;
pkgp_gcc_state_set "build" "install_subdirs";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
- pkg_install_subdirs || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" );
+ then
+ pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install_subdirs" "install_make";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" "install-target-libgcc" || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install_make" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" );
+ then
+ make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-target-libgcc" || return 1;
pkgp_gcc_state_set "install_make" "install";
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- pkg_install || return 1;
+
+ if rtl_lmatch \$_restart_at "ALL,install" ","\
+ || ( [ "${_restart_at:+1}" != 1 ]\
+ && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" );
+ then
+ pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1;
pkgp_gcc_state_set "install";
fi;
+
pkgp_gcc_state_set "finish";
fi;
+
+ return 0;
+};
+
+pkg_gcc_runtime_cross_all() {
+ pkg_gcc_runtime_host_all "${@}" cross
};
pkg_gcc_stage1_all() {
pkgp_gcc_stage1_all "${@}";
};
-pkg_gcc_stage1_cross_mingw32_all() {
- if ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\
+pkg_gcc_stage1_host_mingw32_all() {
+ if ! rtl_fileop mkdir . "${PKG_PREFIX}/x86_64-w64-mingw32"\
+ || ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\
|| ! rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32"\
|| ! rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw"\
|| ! rtl_fileop mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include"\
|| ! pkgp_gcc_stage1_all "${@}"; then
return 1;
fi;
+ return 0;
+};
+
+pkg_gcc_stage1_cross_mingw32_all() {
+ pkg_gcc_stage1_host_mingw32_all "${@}"
};
pkg_gcc_stage1_host_all() {
pkgp_gcc_stage1_all "${@}";
};
+pkg_gcc_stage1_cross_all() {
+ pkgp_gcc_stage1_all "${@}";
+};
+
pkg_gcc_stage1_native_mingw32_all() {
- if ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\
+ if ! rtl_fileop mkdir . "${PKG_PREFIX}/x86_64-w64-mingw32"\
+ || ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\
|| ! rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32"\
|| ! rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw"\
|| ! rtl_fileop mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include"\
|| ! pkgp_gcc_stage1_all "${@}"; then
return 1;
fi;
+ return 0;
};
# vim:filetype=sh textwidth=0
diff --git a/vars/gdk.vars b/vars/gdk.vars
deleted file mode 100644
index 30df95cc..00000000
--- a/vars/gdk.vars
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# set +o errexit -o noglob -o nounset is assumed.
-#
-
-pkg_gdk_install_files_post() {
- local _pc_path="";
- for _pc_path in $(find "${PKG_DESTDIR}"/lib/pkgconfig -name \*.pc); do
- if ! sed -i"" -e '/^Requires:[[:space:]]*gobject-2.0$/s/^.*$/& gio-2.0/' "${_pc_path}"; then
- return 1;
- fi;
- done;
-};
-
-# vim:filetype=sh textwidth=0
diff --git a/vars/git.vars b/vars/git.vars
index bcdda80b..73255a6b 100644
--- a/vars/git.vars
+++ b/vars/git.vars
@@ -5,7 +5,7 @@
pkg_git_install_make_post() {
local _fname="" _fname_new="";
for _fname in $(find "${PKG_DESTDIR}" -name "Git*::*" -type f); do
- _fname_new="$(rtl_subst "${_fname}" "::" ".")";
+ rtl_subst2 \$_fname \$_fname_new "::" ".";
if ! rtl_fileop mv "${_fname}" "${_fname_new}"; then
return 1;
fi;
diff --git a/vars/glib_host.vars b/vars/glib_host.vars
deleted file mode 120000
index e3369ea4..00000000
--- a/vars/glib_host.vars
+++ /dev/null
@@ -1 +0,0 @@
-glib.vars \ No newline at end of file
diff --git a/vars/libfirm.vars b/vars/libfirm.vars
index 47886b8e..f08d718a 100644
--- a/vars/libfirm.vars
+++ b/vars/libfirm.vars
@@ -7,11 +7,11 @@ pkg_cparser_configure_pre() {
};
pkg_cparser_install_make() {
- make ${PKG_MAKEFLAGS_BUILD} DESTDIR="${PKG_DESTDIR}" install;
+ make ${PKG_MAKEFLAGS_BUILD:-} DESTDIR="${PKG_DESTDIR}" install;
};
pkg_libfirm_install_make() {
- make ${PKG_MAKEFLAGS_BUILD} DESTDIR="${PKG_DESTDIR}" install;
+ make ${PKG_MAKEFLAGS_BUILD:-} DESTDIR="${PKG_DESTDIR}" install;
};
# vim:filetype=sh textwidth=0
diff --git a/vars/musl.vars b/vars/musl.vars
index 313704d9..d6c069f9 100644
--- a/vars/musl.vars
+++ b/vars/musl.vars
@@ -7,11 +7,19 @@ pkg_musl_full_fetch_download_post() {
};
pkg_musl_full_host_fetch_download_post() {
- rtl_fileop mv "${PKG_BASE_DIR}/mmglue" "${PKG_BASE_DIR}/build/mmglue";
+ pkg_musl_full_fetch_download_post "${@}"
+};
+
+pkg_musl_full_cross_fetch_download_post() {
+ pkg_musl_full_fetch_download_post "${@}"
};
pkg_musl_no_complex_host_fetch_download_post() {
- rtl_fileop mv "${PKG_BASE_DIR}/mmglue" "${PKG_BASE_DIR}/build/mmglue";
+ pkg_musl_full_fetch_download_post "${@}"
+};
+
+pkg_musl_no_complex_cross_fetch_download_post() {
+ pkg_musl_full_fetch_download_post "${@}"
};
# vim:filetype=sh textwidth=0
diff --git a/vars/nasm.vars b/vars/nasm.vars
new file mode 100644
index 00000000..caaa38cc
--- /dev/null
+++ b/vars/nasm.vars
@@ -0,0 +1,9 @@
+#
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_nasm_build_pre() {
+ mkdir include
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars/nasm_cross.vars b/vars/nasm_cross.vars
new file mode 100644
index 00000000..398d314e
--- /dev/null
+++ b/vars/nasm_cross.vars
@@ -0,0 +1,9 @@
+#
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_nasm_cross_build_pre() {
+ mkdir include
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars/nasm_host.vars b/vars/nasm_host.vars
new file mode 100644
index 00000000..25e536e2
--- /dev/null
+++ b/vars/nasm_host.vars
@@ -0,0 +1,9 @@
+#
+# set +o errexit -o noglob -o nounset is assumed.
+#
+
+pkg_nasm_host_build_pre() {
+ mkdir include
+};
+
+# vim:filetype=sh textwidth=0
diff --git a/vars/perl.vars b/vars/perl.vars
index 3ff7b94d..b634a3e7 100644
--- a/vars/perl.vars
+++ b/vars/perl.vars
@@ -3,7 +3,7 @@
#
pkg_perl_fetch_extract_post() {
- local _cflag="" _fname_dst="" _fname_src="";
+ local _cflag="" _dname_dst="" _fname_dst="" _fname_src="";
if ! ( if ! rtl_fileop cd "${PKG_BASE_DIR}"; then
return 1;
else
@@ -14,8 +14,9 @@ pkg_perl_fetch_extract_post() {
return 1;
fi;
fi;
- if [ ! -d "$(rtl_dirname "${_fname_dst}")" ]; then
- if ! rtl_fileop mkdir "$(rtl_dirname "${_fname_dst}")"; then
+ rtl_dirname2 \$_fname_dst \$_dname_dst;
+ if ! [ -d "${_dname_dst}" ]; then
+ if ! rtl_fileop mkdir "${_dname_dst}"; then
return 1;
fi;
fi;
@@ -27,7 +28,7 @@ pkg_perl_fetch_extract_post() {
return 1;
else
for _cflag in ${PKG_CFLAGS_CONFIGURE}; do
- PKG_CONFIGURE_ARGS="$(rtl_lconcat "${PKG_CONFIGURE_ARGS}" "-A ccflags=${_cflag}")";
+ rtl_lconcat \$PKG_CONFIGURE_ARGS "-A ccflags=${_cflag}";
done;
fi;
};
diff --git a/vars/psxstub_host.vars b/vars/psxstub_host.vars
index 07d69305..41d0d603 100644
--- a/vars/psxstub_host.vars
+++ b/vars/psxstub_host.vars
@@ -6,7 +6,7 @@ pkg_psxstub_install_make() {
if [ "${PKG_TARGET}" = "i686-nt32-midipix" ]\
|| [ "${PKG_TARGET}" = "x86_64-nt64-midipix" ]; then
if ! rtl_fileop cd "${PKG_BASE_DIR}/psxstub"\
- || ! make ${PKG_MAKEFLAGS_BUILD} "DESTDIR=${PKG_PREFIX}" "TARGET=${PKG_TARGET}" install; then
+ || ! make ${PKG_MAKEFLAGS_BUILD:-} "DESTDIR=${PKG_PREFIX}" "TARGET=${PKG_TARGET}" install; then
return 1;
elif [ -e "${PKG_PREFIX}/lib/libpsxscl.a" ]\
&& ! rtl_fileop rm "${PKG_PREFIX}/lib/libpsxscl.a"; then
diff --git a/vars/ruby_host.vars b/vars/ruby_host.vars
deleted file mode 120000
index 3205f288..00000000
--- a/vars/ruby_host.vars
+++ /dev/null
@@ -1 +0,0 @@
-ruby.vars \ No newline at end of file
diff --git a/vars/texinfo.vars b/vars/texinfo.vars
index a23f8642..08e73c1d 100644
--- a/vars/texinfo.vars
+++ b/vars/texinfo.vars
@@ -3,17 +3,21 @@
#
pkg_texinfo_build_pre() {
- if ! rtl_run_cmd_unsplit make \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- ${PKG_LIBTOOL:+"LIBTOOL=${PKG_LIBTOOL}"} \
- -C tools \
- || ! rtl_run_cmd_unsplit make \
- ${PKG_MAKEFLAGS_BUILD:-} \
- ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
- ${PKG_LIBTOOL:+"LIBTOOL=${PKG_LIBTOOL}"} \
- LDFLAGS="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib" LIBS="-ltinfo" \
- -C "tools/info"; then
+ if ! rtl_run_cmdlineV ":" "${PKG_MAKE}" \
+ ${PKG_MAKEFLAGS_BUILD:-} \
+ ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
+ ${PKG_MAKEFLAGS_PARALLELISE:-} \
+ ${PKG_LIBTOOL:+"LIBTOOL=${PKG_LIBTOOL}"} \
+ -C tools \
+ || ! rtl_run_cmdlineV ":" "${PKG_MAKE}" \
+ ${PKG_MAKEFLAGS_BUILD:-} \
+ ${PKG_MAKEFLAGS_BUILD_EXTRA:-} \
+ ${PKG_MAKEFLAGS_PARALLELISE:-} \
+ ${PKG_LIBTOOL:+"LIBTOOL=${PKG_LIBTOOL}"} \
+ LDFLAGS="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib" \
+ LIBS="-ltinfo" \
+ -C "tools/info";
+ then
return 1;
fi;
};
diff --git a/vars/vim_minipix.vars b/vars/vim_minipix.vars
deleted file mode 120000
index a51668a5..00000000
--- a/vars/vim_minipix.vars
+++ /dev/null
@@ -1 +0,0 @@
-vim.vars \ No newline at end of file